Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jgraph/drawio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benson [draw.io] <david@jgraph.com>2021-05-04 20:22:02 +0300
committerDavid Benson [draw.io] <david@jgraph.com>2021-05-04 20:22:02 +0300
commitd76e39477bdf230ba6728dc488bd5896afb08425 (patch)
tree413a59491c825c4aea03cccf74a92299346a032a
parenteae3f13f9f20402bfc02aca2dd643f22c14e92f4 (diff)
14.6.10 releasev14.6.10
-rw-r--r--ChangeLog19
-rw-r--r--VERSION2
-rw-r--r--src/main/java/com/mxgraph/online/AbsAuthServlet.java20
-rw-r--r--src/main/java/com/mxgraph/online/DropboxAuthServlet.java88
-rw-r--r--src/main/webapp/WEB-INF/dropbox_client_id1
-rw-r--r--src/main/webapp/WEB-INF/dropbox_client_secret1
-rw-r--r--src/main/webapp/WEB-INF/web.xml10
-rw-r--r--src/main/webapp/js/app.min.js1963
-rw-r--r--src/main/webapp/js/diagramly/App.js8
-rw-r--r--src/main/webapp/js/diagramly/DropboxClient.js233
-rw-r--r--src/main/webapp/js/diagramly/Editor.js11
-rw-r--r--src/main/webapp/js/diagramly/EditorUi.js16
-rw-r--r--src/main/webapp/js/diagramly/Extensions.js1
-rw-r--r--src/main/webapp/js/diagramly/Init.js1
-rw-r--r--src/main/webapp/js/diagramly/Menus.js3
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js88
-rw-r--r--src/main/webapp/js/diagramly/sidebar/Sidebar-BPMN.js102
-rw-r--r--src/main/webapp/js/extensions.min.js1330
-rw-r--r--src/main/webapp/js/grapheditor/Actions.js14
-rw-r--r--src/main/webapp/js/grapheditor/Dialogs.js29
-rw-r--r--src/main/webapp/js/grapheditor/EditorUi.js16
-rw-r--r--src/main/webapp/js/grapheditor/Format.js6
-rw-r--r--src/main/webapp/js/grapheditor/Sidebar.js43
-rw-r--r--src/main/webapp/js/viewer-static.min.js2410
-rw-r--r--src/main/webapp/js/viewer.min.js2410
-rw-r--r--src/main/webapp/mxgraph/mxClient.js17
-rw-r--r--src/main/webapp/resources/dia_ar.txt42
-rw-r--r--src/main/webapp/resources/dia_es.txt14
-rw-r--r--src/main/webapp/resources/dia_eu.txt10
-rw-r--r--src/main/webapp/resources/dia_it.txt214
-rw-r--r--src/main/webapp/resources/dia_ru.txt52
-rw-r--r--src/main/webapp/resources/dia_th.txt10
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
34 files changed, 4763 insertions, 4425 deletions
diff --git a/ChangeLog b/ChangeLog
index a83fedc9..aadc9e4f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+04-MAY-2021: 14.6.10
+
+- Adds zoomFactor config option
+- Fixes links on custom shapes in Lucid import
+- Adds ctrl/cmd+dblclick to change cell ID
+- Adds containers to general sidebar
+- Fixes pointer events for text shapes
+- Fixes selected style in dark mode
+- Moves Dropbox auth from implicit grant to server-side flow
+- Adds XML option to import menu in minimal and sketch theme
+- Adds Shift+Click on clear waypoints button to clear fixed anchor points
+- Fixes overridden default font in sidebar thumbnails
+- Fixes ignored default styles for shapes dialog and inserted templates
+- Fixes NPE for sketch UI in embed mode
+- Adds enabledChanged event to graph
+- Separates clear waypoints and clear anchor points
+- Disables file API in Opera
+- Fixes anchor points behavior for Choreography shapes in BPMN
+
29-APR-2021: 14.6.9
- Corrects GitHub app ID
diff --git a/VERSION b/VERSION
index 077c998a..1e3a6bcb 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-14.6.9 \ No newline at end of file
+14.6.10 \ No newline at end of file
diff --git a/src/main/java/com/mxgraph/online/AbsAuthServlet.java b/src/main/java/com/mxgraph/online/AbsAuthServlet.java
index 7ac37767..e6596374 100644
--- a/src/main/java/com/mxgraph/online/AbsAuthServlet.java
+++ b/src/main/java/com/mxgraph/online/AbsAuthServlet.java
@@ -64,6 +64,7 @@ abstract public class AbsAuthServlet extends HttpServlet
protected int postType = X_WWW_FORM_URLENCODED;
protected String cookiePath = "/";
protected boolean withRedirectUrl = true;
+ protected boolean withRedirectUrlInRefresh = true;
protected boolean withAcceptJsonHeader = false;
static public class Config
@@ -421,24 +422,29 @@ abstract public class AbsAuthServlet extends HttpServlet
urlParameters.append("client_id=");
urlParameters.append(client);
-
- if (withRedirectUrl)
- {
- urlParameters.append("&redirect_uri=");
- urlParameters.append(redirectUri);
- }
-
urlParameters.append("&client_secret=");
urlParameters.append(secret);
if (code != null)
{
+ if (withRedirectUrl)
+ {
+ urlParameters.append("&redirect_uri=");
+ urlParameters.append(redirectUri);
+ }
+
urlParameters.append("&code=");
urlParameters.append(code);
urlParameters.append("&grant_type=authorization_code");
}
else
{
+ if (withRedirectUrlInRefresh)
+ {
+ urlParameters.append("&redirect_uri=");
+ urlParameters.append(redirectUri);
+ }
+
urlParameters.append("&refresh_token=");
urlParameters.append(refreshToken);
urlParameters.append("&grant_type=refresh_token");
diff --git a/src/main/java/com/mxgraph/online/DropboxAuthServlet.java b/src/main/java/com/mxgraph/online/DropboxAuthServlet.java
new file mode 100644
index 00000000..f95fa100
--- /dev/null
+++ b/src/main/java/com/mxgraph/online/DropboxAuthServlet.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2006-2019, JGraph Ltd
+ */
+package com.mxgraph.online;
+
+import java.io.IOException;
+
+@SuppressWarnings("serial")
+public class DropboxAuthServlet extends AbsAuthServlet
+{
+ public static String CLIENT_SECRET_FILE_PATH = "/WEB-INF/dropbox_client_secret";
+ public static String CLIENT_ID_FILE_PATH = "/WEB-INF/dropbox_client_id";
+
+ private static Config CONFIG = null;
+
+ protected Config getConfig()
+ {
+ if (CONFIG == null)
+ {
+ String clientSerets, clientIds;
+
+ try
+ {
+ clientSerets = Utils
+ .readInputStream(getServletContext()
+ .getResourceAsStream(CLIENT_SECRET_FILE_PATH))
+ .replaceAll("\n", "");
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException("Client secrets path invalid");
+ }
+
+ try
+ {
+ clientIds = Utils
+ .readInputStream(getServletContext()
+ .getResourceAsStream(CLIENT_ID_FILE_PATH))
+ .replaceAll("\n", "");
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException("Client IDs path invalid");
+ }
+
+ CONFIG = new Config(clientIds, clientSerets);
+ CONFIG.AUTH_SERVICE_URL = "https://api.dropboxapi.com/oauth2/token";
+ CONFIG.REDIRECT_PATH = "/dropbox";
+ }
+
+ return CONFIG;
+ }
+
+ public DropboxAuthServlet()
+ {
+ super();
+ cookiePath = "/dropbox";
+ withRedirectUrlInRefresh = false;
+ }
+
+ protected String processAuthResponse(String authRes, boolean jsonResponse)
+ {
+ StringBuffer res = new StringBuffer();
+
+ if (!jsonResponse)
+ {
+ res.append("<!DOCTYPE html><html><head><script type=\"text/javascript\">");
+ res.append("(function() { var authInfo = "); //The following is a json containing access_token
+ }
+
+ res.append(authRes);
+
+ if (!jsonResponse)
+ {
+ res.append(";");
+ res.append("if (window.opener != null && window.opener.onDropboxCallback != null)");
+ res.append("{");
+ res.append(" window.opener.onDropboxCallback(authInfo, window);");
+ res.append("} else {");
+ res.append(" onDropboxCallback(authInfo);");
+ res.append("}");
+ res.append("})();</script>");
+ res.append("</head><body></body></html>");
+ }
+
+ return res.toString();
+ }
+}
diff --git a/src/main/webapp/WEB-INF/dropbox_client_id b/src/main/webapp/WEB-INF/dropbox_client_id
new file mode 100644
index 00000000..f0c6e674
--- /dev/null
+++ b/src/main/webapp/WEB-INF/dropbox_client_id
@@ -0,0 +1 @@
+Replace_with_your_own_dropbox_client_id \ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/dropbox_client_secret b/src/main/webapp/WEB-INF/dropbox_client_secret
new file mode 100644
index 00000000..42085124
--- /dev/null
+++ b/src/main/webapp/WEB-INF/dropbox_client_secret
@@ -0,0 +1 @@
+Replace_with_your_own_dropbox_client_secret \ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 28814914..62b81dae 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -153,6 +153,16 @@
<servlet-name>GitlabAuthServlet</servlet-name>
<url-pattern>/gitlab</url-pattern>
</servlet-mapping>
+ <servlet>
+ <description/>
+ <display-name>DropboxAuthServlet</display-name>
+ <servlet-name>DropboxAuthServlet</servlet-name>
+ <servlet-class>com.mxgraph.online.DropboxAuthServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>DropboxAuthServlet</servlet-name>
+ <url-pattern>/dropbox</url-pattern>
+ </servlet-mapping>
<mime-mapping>
<extension>css</extension>
<mime-type>text/css</mime-type>
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index e46d4bfd..9adad299 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -228,9 +228,10 @@ var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456
"");l<a.length;)d=this._keyStr.indexOf(a.charAt(l++)),e=this._keyStr.indexOf(a.charAt(l++)),g=this._keyStr.indexOf(a.charAt(l++)),k=this._keyStr.indexOf(a.charAt(l++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|k,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=k&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):(127<d&&2048>d?b+=
String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){var b="",c=0,d;for(c1=c2=0;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.mxLoadSettings=window.mxLoadSettings||"1"!=urlParams.configure;window.isSvgBrowser=!0;window.DRAWIO_BASE_URL=window.DRAWIO_BASE_URL||(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)?window.location.protocol+"//"+window.location.hostname:"https://app.diagrams.net");window.DRAWIO_LIGHTBOX_URL=window.DRAWIO_LIGHTBOX_URL||"https://viewer.diagrams.net";
window.EXPORT_URL=window.EXPORT_URL||"https://convert.diagrams.net/node/export";window.PLANT_URL=window.PLANT_URL||"https://plant-aws.diagrams.net";window.DRAW_MATH_URL=window.DRAW_MATH_URL||window.DRAWIO_BASE_URL+"/math";window.VSD_CONVERT_URL=window.VSD_CONVERT_URL||"https://convert.diagrams.net/VsdConverter/api/converter";window.EMF_CONVERT_URL=window.EMF_CONVERT_URL||"https://convert.diagrams.net/emf2png/convertEMF";window.REALTIME_URL=window.REALTIME_URL||"cache";
-window.DRAWIO_GITLAB_URL=window.DRAWIO_GITLAB_URL||"https://gitlab.com";window.DRAWIO_GITLAB_ID=window.DRAWIO_GITLAB_ID||"c9b9d3fcdce2dec7abe3ab21ad8123d89ac272abb7d0883f08923043e80f3e36";window.DRAWIO_GITHUB_URL=window.DRAWIO_GITHUB_URL||"https://github.com";window.DRAWIO_GITHUB_API_URL=window.DRAWIO_GITHUB_API_URL||"https://api.github.com";window.DRAWIO_GITHUB_ID=window.DRAWIO_GITHUB_ID||"4f88e2ec436d76c2ee6e";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"import";
-window.PROXY_URL=window.PROXY_URL||"proxy";window.DRAWIO_VIEWER_URL=window.DRAWIO_VIEWER_URL||null;window.NOTIFICATIONS_URL=window.NOTIFICATIONS_URL||"https://www.draw.io/notifications";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||((null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev)&&"file:"!=window.location.protocol?"iconSearch":window.DRAWIO_BASE_URL+"/iconSearch");
-window.TEMPLATE_PATH=window.TEMPLATE_PATH||"templates";window.NEW_DIAGRAM_CATS_PATH=window.NEW_DIAGRAM_CATS_PATH||"newDiagramCats";window.PLUGINS_BASE_PATH=window.PLUGINS_BASE_PATH||"";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_CONFIG=window.DRAWIO_CONFIG||null;window.mxLoadResources=window.mxLoadResources||!1;
+window.DRAWIO_GITLAB_URL=window.DRAWIO_GITLAB_URL||"https://gitlab.com";window.DRAWIO_GITLAB_ID=window.DRAWIO_GITLAB_ID||"c9b9d3fcdce2dec7abe3ab21ad8123d89ac272abb7d0883f08923043e80f3e36";window.DRAWIO_GITHUB_URL=window.DRAWIO_GITHUB_URL||"https://github.com";window.DRAWIO_GITHUB_API_URL=window.DRAWIO_GITHUB_API_URL||"https://api.github.com";window.DRAWIO_GITHUB_ID=window.DRAWIO_GITHUB_ID||"4f88e2ec436d76c2ee6e";window.DRAWIO_DROPBOX_ID=window.DRAWIO_DROPBOX_ID||"libwls2fa9szdji";
+window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"import";window.PROXY_URL=window.PROXY_URL||"proxy";window.DRAWIO_VIEWER_URL=window.DRAWIO_VIEWER_URL||null;window.NOTIFICATIONS_URL=window.NOTIFICATIONS_URL||"https://www.draw.io/notifications";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";
+window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||((null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev)&&"file:"!=window.location.protocol?"iconSearch":window.DRAWIO_BASE_URL+"/iconSearch");window.TEMPLATE_PATH=window.TEMPLATE_PATH||"templates";window.NEW_DIAGRAM_CATS_PATH=window.NEW_DIAGRAM_CATS_PATH||"newDiagramCats";window.PLUGINS_BASE_PATH=window.PLUGINS_BASE_PATH||"";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";
+window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_CONFIG=window.DRAWIO_CONFIG||null;window.mxLoadResources=window.mxLoadResources||!1;
window.mxLanguage=window.mxLanguage||function(){var a=urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).language||null);if(!a&&window.mxIsElectron&&(a=require("electron").remote.app.getLocale(),null!=a)){var c=a.indexOf("-");0<=c&&(a=a.substring(0,c));a=a.toLowerCase()}}catch(d){isLocalStorage=!1}return a}();
window.mxLanguageMap=window.mxLanguageMap||{i18n:"",id:"Bahasa Indonesia",ms:"Bahasa Melayu",bs:"Bosanski",bg:"Bulgarian",ca:"Català",cs:"Čeština",da:"Dansk",de:"Deutsch",et:"Eesti",en:"English",es:"Español",eu:"Euskara",fil:"Filipino",fr:"Français",gl:"Galego",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski","pt-br":"Português (Brasil)",pt:"Português (Portugal)",ro:"Română",fi:"Suomi",sv:"Svenska",vi:"Tiếng Việt",tr:"Türkçe",el:"Ελληνικά",ru:"Русский",sr:"Српски",uk:"Українська",
he:"עברית",ar:"العربية",fa:"فارسی",th:"ไทย",ko:"한국어",ja:"日本語",zh:"简体中文","zh-tw":"繁體中文"};"undefined"===typeof window.mxBasePath&&(window.mxBasePath="mxgraph",window.mxImageBasePath="mxgraph/images");if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap)"en"!=lang&&window.mxLanguages.push(lang)}window.location.hostname==DRAWIO_LIGHTBOX_URL.substring(DRAWIO_LIGHTBOX_URL.indexOf("//")+2)&&(urlParams.lightbox="1");"1"==urlParams.lightbox&&(urlParams.chrome="0");
@@ -239,7 +240,7 @@ function setCurrentXml(a,b){null!=window.parent&&null!=window.parent.openFile&&w
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);0==b&&(urlParams.splash="0")}catch(d){}a=urlParams["export"];null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),EXPORT_URL=a);a=urlParams.gitlab;null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];
null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=window.location.host;if("test.draw.io"!=a){var c="diagrams.net",b=a.length-c.length,c=a.lastIndexOf(c,b);-1!==c&&c===b?window.DRAWIO_LOG_URL="https://log.diagrams.net":(c="draw.io",b=a.length-c.length,c=a.lastIndexOf(c,b),-1!==c&&c===b&&(window.DRAWIO_LOG_URL="https://log.draw.io"))}})();
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";"trello"==urlParams.mode&&(urlParams.tr="1");"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.8",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.9",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -2084,11 +2085,11 @@ Editor.prototype.setFilename=function(a){this.filename=a};
Editor.prototype.createUndoManager=function(){var a=this.graph,c=new mxUndoManager;this.undoListener=function(a,d){c.undoableEditHappened(d.getProperty("edit"))};var d=mxUtils.bind(this,function(a,c){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,d);a.getView().addListener(mxEvent.UNDO,d);d=function(b,c){var d=a.getSelectionCellsForChanges(c.getProperty("edit").changes,function(a){return!(a instanceof mxChildChange)});if(0<d.length){a.getModel();for(var f=[],g=0;g<
d.length;g++)null!=a.view.getState(d[g])&&f.push(d[g]);a.setSelectionCells(f)}};c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,c,d,b,f,e,k,g,h,l,m){var p=d,n=b,r=mxUtils.getDocumentSize();null!=window.innerHeight&&(r.height=window.innerHeight);var t=r.height,u=Math.max(1,Math.round((r.width-d-64)/2)),v=Math.max(1,Math.round((t-b-a.footerHeight)/3));c.style.maxHeight="100%";d=null!=document.body?Math.min(d,document.body.scrollWidth-64):d;b=Math.min(b,t-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=
-Dialog.backdropColor,this.bg.style.height=t+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));r=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=r.x+"px";this.bg.style.top=r.y+"px";u+=r.x;v+=r.y;f&&document.body.appendChild(this.bg);var w=a.createDiv(h?"geTransDialog":"geDialog");f=this.getPosition(u,v,d,b);u=f.x;v=f.y;w.style.width=d+"px";w.style.height=b+"px";w.style.left=u+"px";w.style.top=v+"px";w.style.zIndex=this.zIndex;
-w.appendChild(c);document.body.appendChild(w);!g&&c.clientHeight>w.clientHeight-64&&(c.style.overflowY="auto");if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=v+14+"px",e.style.left=u+d+38-0+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!m)){var x=!1;mxEvent.addGestureListeners(this.bg,
-mxUtils.bind(this,function(a){x=!0}),null,mxUtils.bind(this,function(b){x&&(a.hideDialog(!0),x=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var e=l();null!=e&&(p=d=e.w,n=b=e.h)}e=mxUtils.getDocumentSize();t=e.height;this.bg.style.height=t+"px";u=Math.max(1,Math.round((e.width-d-64)/2));v=Math.max(1,Math.round((t-b-a.footerHeight)/3));d=null!=document.body?Math.min(p,document.body.scrollWidth-64):p;b=Math.min(n,t-64);e=this.getPosition(u,v,d,b);u=e.x;v=e.y;w.style.left=u+"px";
-w.style.top=v+"px";w.style.width=d+"px";w.style.height=b+"px";!g&&c.clientHeight>w.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=v+14+"px",this.dialogImg.style.left=u+d+38-0+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=w;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
+function Dialog(a,c,d,b,f,e,k,g,h,l,m){var p=d,n=b,q=mxUtils.getDocumentSize();null!=window.innerHeight&&(q.height=window.innerHeight);var t=q.height,u=Math.max(1,Math.round((q.width-d-64)/2)),v=Math.max(1,Math.round((t-b-a.footerHeight)/3));c.style.maxHeight="100%";d=null!=document.body?Math.min(d,document.body.scrollWidth-64):d;b=Math.min(b,t-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=
+Dialog.backdropColor,this.bg.style.height=t+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));q=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=q.x+"px";this.bg.style.top=q.y+"px";u+=q.x;v+=q.y;f&&document.body.appendChild(this.bg);var x=a.createDiv(h?"geTransDialog":"geDialog");f=this.getPosition(u,v,d,b);u=f.x;v=f.y;x.style.width=d+"px";x.style.height=b+"px";x.style.left=u+"px";x.style.top=v+"px";x.style.zIndex=this.zIndex;
+x.appendChild(c);document.body.appendChild(x);!g&&c.clientHeight>x.clientHeight-64&&(c.style.overflowY="auto");if(e&&(e=document.createElement("img"),e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("close")),e.className="geDialogClose",e.style.top=v+14+"px",e.style.left=u+d+38-0+"px",e.style.zIndex=this.zIndex,mxEvent.addListener(e,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(e),this.dialogImg=e,!m)){var y=!1;mxEvent.addGestureListeners(this.bg,
+mxUtils.bind(this,function(a){y=!0}),null,mxUtils.bind(this,function(b){y&&(a.hideDialog(!0),y=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var e=l();null!=e&&(p=d=e.w,n=b=e.h)}e=mxUtils.getDocumentSize();t=e.height;this.bg.style.height=t+"px";u=Math.max(1,Math.round((e.width-d-64)/2));v=Math.max(1,Math.round((t-b-a.footerHeight)/3));d=null!=document.body?Math.min(p,document.body.scrollWidth-64):p;b=Math.min(n,t-64);e=this.getPosition(u,v,d,b);u=e.x;v=e.y;x.style.left=u+"px";
+x.style.top=v+"px";x.style.width=d+"px";x.style.height=b+"px";!g&&c.clientHeight>x.clientHeight-64&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=v+14+"px",this.dialogImg.style.left=u+d+38-0+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=k;this.container=x;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":
IMAGE_PATH+"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
@@ -2098,8 +2099,8 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,c){return new mxPoint(a,c)};Dialog.prototype.close=function(a,c){if(null!=this.onDialogClose){if(0==this.onDialogClose(a,c))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
var ErrorDialog=function(a,c,d,b,f,e,k,g,h,l,m){h=null!=h?h:!0;var p=document.createElement("div");p.style.textAlign="center";if(null!=c){var n=document.createElement("div");n.style.padding="0px";n.style.margin="0px";n.style.fontSize="18px";n.style.paddingBottom="16px";n.style.marginBottom="10px";n.style.borderBottom="1px solid #c0c0c0";n.style.color="gray";n.style.whiteSpace="nowrap";n.style.textOverflow="ellipsis";n.style.overflow="hidden";mxUtils.write(n,c);n.setAttribute("title",c);p.appendChild(n)}c=
-document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=d;p.appendChild(c);d=document.createElement("div");d.style.marginTop="12px";d.style.textAlign="center";null!=e&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();e()}),c.className="geBtn",d.appendChild(c),d.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=m&&m()}),l.className="geBtn",d.appendChild(l));var r=mxUtils.button(b,function(){h&&a.hideDialog();null!=f&&f()});
-r.className="geBtn";d.appendChild(r);null!=k&&(b=mxUtils.button(k,function(){h&&a.hideDialog();null!=g&&g()}),b.className="geBtn gePrimaryBtn",d.appendChild(b));this.init=function(){r.focus()};p.appendChild(d);this.container=p},PrintDialog=function(a,c){this.create(a,c)};
+document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=d;p.appendChild(c);d=document.createElement("div");d.style.marginTop="12px";d.style.textAlign="center";null!=e&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();e()}),c.className="geBtn",d.appendChild(c),d.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=m&&m()}),l.className="geBtn",d.appendChild(l));var q=mxUtils.button(b,function(){h&&a.hideDialog();null!=f&&f()});
+q.className="geBtn";d.appendChild(q);null!=k&&(b=mxUtils.button(k,function(){h&&a.hideDialog();null!=g&&g()}),b.className="geBtn gePrimaryBtn",d.appendChild(b));this.init=function(){q.focus()};p.appendChild(d);this.container=p},PrintDialog=function(a,c){this.create(a,c)};
PrintDialog.prototype.create=function(a){function c(a){var b=g.checked||l.checked,c=parseInt(p.value)/100;isNaN(c)&&(c=1,p.value="100%");var c=.75*c,e=d.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,f=1/d.pageScale;if(b){var k=g.checked?1:parseInt(m.value);isNaN(k)||(f=mxUtils.getScaleForPageCount(k,d,e))}d.getGraphBounds();var h=k=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*c);e.height=Math.ceil(e.height*c);f*=c;!b&&d.pageVisible?(c=d.getPageLayout(),k-=c.x*e.width,h-=c.y*e.height):
b=!0;b=PrintDialog.createPrintPreview(d,f,e,0,k,h,b);b.open();a&&PrintDialog.printPreview(b)}var d=a.editor.graph,b,f,e=document.createElement("table");e.style.width="100%";e.style.height="100%";var k=document.createElement("tbody");b=document.createElement("tr");var g=document.createElement("input");g.setAttribute("type","checkbox");f=document.createElement("td");f.setAttribute("colspan","2");f.style.fontSize="10pt";f.appendChild(g);var h=document.createElement("span");mxUtils.write(h," "+mxResources.get("fitPage"));
f.appendChild(h);mxEvent.addListener(h,"click",function(a){g.checked=!g.checked;l.checked=!g.checked;mxEvent.consume(a)});mxEvent.addListener(g,"change",function(){l.checked=!g.checked});b.appendChild(f);k.appendChild(b);b=b.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");f=document.createElement("td");f.style.fontSize="10pt";f.appendChild(l);h=document.createElement("span");mxUtils.write(h," "+mxResources.get("posterPrint")+":");f.appendChild(h);mxEvent.addListener(h,
@@ -2109,30 +2110,30 @@ f.style.paddingTop="20px";f.setAttribute("align","right");h=mxUtils.button(mxRes
f.appendChild(h);b.appendChild(f);k.appendChild(b);e.appendChild(k);this.container=e};PrintDialog.printPreview=function(a){try{if(null!=a.wnd){var c=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}}catch(d){}};
PrintDialog.createPrintPreview=function(a,c,d,b,f,e,k){c=new mxPrintPreview(a,c,d,b,f,e);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=k;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";c.backgroundColor=a;var g=c.writeHead;c.writeHead=function(a){g.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return c};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(a){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function d(){null==r?(n.removeAttribute("title"),n.style.fontSize="",n.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(n.setAttribute("title",r.src),n.style.fontSize="11px",n.innerHTML=mxUtils.htmlEntities(r.src.substring(0,42))+"...")}var b=a.editor.graph,f,
+var PageSetupDialog=function(a){function c(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function d(){null==q?(n.removeAttribute("title"),n.style.fontSize="",n.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(n.setAttribute("title",q.src),n.style.fontSize="11px",n.innerHTML=mxUtils.htmlEntities(q.src.substring(0,42))+"...")}var b=a.editor.graph,f,
e,k=document.createElement("table");k.style.width="100%";k.style.height="100%";var g=document.createElement("tbody");f=document.createElement("tr");e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";mxUtils.write(e,mxResources.get("paperSize")+":");f.appendChild(e);e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";var h=PageSetupDialog.addPageFormatPanel(e,"pagesetupdialog",b.pageFormat);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");
e=document.createElement("td");mxUtils.write(e,mxResources.get("background")+":");f.appendChild(e);e=document.createElement("td");e.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="18px";l.style.height="18px";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";var m=b.background;c();mxEvent.addListener(l,"click",function(b){a.pickColor(m||"none",function(a){m=
a;c()});mxEvent.consume(b)});e.appendChild(l);mxUtils.write(e,mxResources.get("gridSize")+":");var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("min","0");p.style.width="40px";p.style.marginLeft="6px";p.value=b.getGridSize();e.appendChild(p);mxEvent.addListener(p,"change",function(){var a=parseInt(p.value);p.value=Math.max(1,isNaN(a)?b.getGridSize():a)});f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");mxUtils.write(e,
-mxResources.get("image")+":");f.appendChild(e);e=document.createElement("td");var n=document.createElement("a");n.style.textDecoration="underline";n.style.cursor="pointer";n.style.color="#a0a0a0";var r=b.backgroundImage;mxEvent.addListener(n,"click",function(b){a.showBackgroundImageDialog(function(a,b){b||(r=a,d())},r);mxEvent.consume(b)});d();e.appendChild(n);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");e.colSpan=2;e.style.paddingTop="16px";e.setAttribute("align",
-"right");var t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&e.appendChild(t);var u=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=parseInt(p.value);isNaN(c)||b.gridSize===c||b.setGridSize(c);c=new ChangePageSetup(a,m,r,h.get());c.ignoreColor=b.background==m;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=r?r.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==
+mxResources.get("image")+":");f.appendChild(e);e=document.createElement("td");var n=document.createElement("a");n.style.textDecoration="underline";n.style.cursor="pointer";n.style.color="#a0a0a0";var q=b.backgroundImage;mxEvent.addListener(n,"click",function(b){a.showBackgroundImageDialog(function(a,b){b||(q=a,d())},q);mxEvent.consume(b)});d();e.appendChild(n);f.appendChild(e);g.appendChild(f);f=document.createElement("tr");e=document.createElement("td");e.colSpan=2;e.style.paddingTop="16px";e.setAttribute("align",
+"right");var t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&e.appendChild(t);var u=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var c=parseInt(p.value);isNaN(c)||b.gridSize===c||b.setGridSize(c);c=new ChangePageSetup(a,m,q,h.get());c.ignoreColor=b.background==m;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=q?q.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==
c.previousFormat.height&&c.ignoreColor&&c.ignoreImage||b.model.execute(c)});u.className="geBtn gePrimaryBtn";e.appendChild(u);a.editor.cancelFirst||e.appendChild(t);f.appendChild(e);g.appendChild(f);k.appendChild(g);this.container=k};
-PageSetupDialog.addPageFormatPanel=function(a,c,d,b){function f(a,b,c){if(c||p!=document.activeElement&&n!=document.activeElement){a=!1;for(b=0;b<t.length;b++)c=t[b],x?"custom"==c.key&&(g.value=c.key,x=!1):null!=c.format&&("a4"==c.key?826==d.width?(d=mxRectangle.fromRectangle(d),d.width=827):826==d.height&&(d=mxRectangle.fromRectangle(d),d.height=827):"a5"==c.key&&(584==d.width?(d=mxRectangle.fromRectangle(d),d.width=583):584==d.height&&(d=mxRectangle.fromRectangle(d),d.height=583)),d.width==c.format.width&&
+PageSetupDialog.addPageFormatPanel=function(a,c,d,b){function f(a,b,c){if(c||p!=document.activeElement&&n!=document.activeElement){a=!1;for(b=0;b<t.length;b++)c=t[b],y?"custom"==c.key&&(g.value=c.key,y=!1):null!=c.format&&("a4"==c.key?826==d.width?(d=mxRectangle.fromRectangle(d),d.width=827):826==d.height&&(d=mxRectangle.fromRectangle(d),d.height=827):"a5"==c.key&&(584==d.width?(d=mxRectangle.fromRectangle(d),d.width=583):584==d.height&&(d=mxRectangle.fromRectangle(d),d.height=583)),d.width==c.format.width&&
d.height==c.format.height?(g.value=c.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1,a=!0):d.width==c.format.height&&d.height==c.format.width&&(g.value=c.key,e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1,k.setAttribute("checked","checked"),k.defaultChecked=!0,a=k.checked=!0));a?(h.style.display="",m.style.display="none"):(p.value=d.width/100,n.value=d.height/100,e.setAttribute("checked","checked"),
g.value="custom",h.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var k=document.createElement("input");k.setAttribute("name",c);k.setAttribute("type","radio");k.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="8px";g.style.width="202px";var h=document.createElement("div");h.style.marginLeft="4px";h.style.width="210px";
h.style.height="24px";e.style.marginRight="6px";h.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));h.appendChild(c);k.style.marginLeft="10px";k.style.marginRight="6px";h.appendChild(k);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));h.appendChild(l);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");
-p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");h.style.display="none";m.style.display="none";for(var r={},t=PageSetupDialog.getFormats(),u=0;u<t.length;u++){var v=t[u];r[v.key]=v;var w=document.createElement("option");w.setAttribute("value",v.key);mxUtils.write(w,v.title);g.appendChild(w)}var x=!1;f();a.appendChild(g);mxUtils.br(a);
-a.appendChild(h);a.appendChild(m);var F=d,D=function(a,c){var e=r[g.value];null!=e.format?(p.value=e.format.width/100,n.value=e.format.height/100,m.style.display="none",h.style.display=""):(h.style.display="none",m.style.display="");e=parseFloat(p.value);if(isNaN(e)||0>=e)p.value=d.width/100;e=parseFloat(n.value);if(isNaN(e)||0>=e)n.value=d.height/100;e=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),Math.floor(100*parseFloat(n.value)));"custom"!=g.value&&k.checked&&(e=new mxRectangle(0,0,
-e.height,e.width));c&&x||e.width==F.width&&e.height==F.height||(F=e,null!=b&&b(F))};mxEvent.addListener(c,"click",function(a){e.checked=!0;D(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){k.checked=!0;D(a);mxEvent.consume(a)});mxEvent.addListener(p,"blur",D);mxEvent.addListener(p,"click",D);mxEvent.addListener(n,"blur",D);mxEvent.addListener(n,"click",D);mxEvent.addListener(k,"change",D);mxEvent.addListener(e,"change",D);mxEvent.addListener(g,"change",function(a){x="custom"==g.value;
-D(a,!0)});D();return{set:function(a){d=a;f(null,null,!0)},get:function(){return F},widthInput:p,heightInput:n}};
+p.setAttribute("size","7");p.style.textAlign="right";m.appendChild(p);mxUtils.write(m," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";m.appendChild(n);mxUtils.write(m," in");h.style.display="none";m.style.display="none";for(var q={},t=PageSetupDialog.getFormats(),u=0;u<t.length;u++){var v=t[u];q[v.key]=v;var x=document.createElement("option");x.setAttribute("value",v.key);mxUtils.write(x,v.title);g.appendChild(x)}var y=!1;f();a.appendChild(g);mxUtils.br(a);
+a.appendChild(h);a.appendChild(m);var G=d,E=function(a,c){var e=q[g.value];null!=e.format?(p.value=e.format.width/100,n.value=e.format.height/100,m.style.display="none",h.style.display=""):(h.style.display="none",m.style.display="");e=parseFloat(p.value);if(isNaN(e)||0>=e)p.value=d.width/100;e=parseFloat(n.value);if(isNaN(e)||0>=e)n.value=d.height/100;e=new mxRectangle(0,0,Math.floor(100*parseFloat(p.value)),Math.floor(100*parseFloat(n.value)));"custom"!=g.value&&k.checked&&(e=new mxRectangle(0,0,
+e.height,e.width));c&&y||e.width==G.width&&e.height==G.height||(G=e,null!=b&&b(G))};mxEvent.addListener(c,"click",function(a){e.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(l,"click",function(a){k.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(p,"blur",E);mxEvent.addListener(p,"click",E);mxEvent.addListener(n,"blur",E);mxEvent.addListener(n,"click",E);mxEvent.addListener(k,"change",E);mxEvent.addListener(e,"change",E);mxEvent.addListener(g,"change",function(a){y="custom"==g.value;
+E(a,!0)});E();return{set:function(a){d=a;f(null,null,!0)},get:function(){return G},widthInput:p,heightInput:n}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
-var FilenameDialog=function(a,c,d,b,f,e,k,g,h,l,m,p){h=null!=h?h:!0;var n,r,t=document.createElement("table"),u=document.createElement("tbody");t.style.marginTop="8px";n=document.createElement("tr");r=document.createElement("td");r.style.whiteSpace="nowrap";r.style.fontSize="10pt";r.style.width=m?"80px":"120px";mxUtils.write(r,(f||mxResources.get("filename"))+":");n.appendChild(r);var v=document.createElement("input");v.setAttribute("value",c||"");v.style.marginLeft="4px";v.style.width=null!=p?p+
-"px":"180px";var w=mxUtils.button(d,function(){if(null==e||e(v.value))h&&a.hideDialog(),b(v.value)});w.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==k)if(v.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?v.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=t.parentNode;if(null!=a){var b=null;mxEvent.addListener(a,"dragleave",function(a){null!=b&&(b.style.backgroundColor="",b=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
-"dragover",mxUtils.bind(this,function(a){null==b&&(!mxClient.IS_IE||10<document.documentMode)&&(b=v,b.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=b&&(b.style.backgroundColor="",b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(v.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),w.click());a.stopPropagation();a.preventDefault()}))}}};r=document.createElement("td");r.style.whiteSpace=
-"nowrap";r.appendChild(v);n.appendChild(r);if(null!=f||null==k)u.appendChild(n),null!=m&&(null!=a.editor.diagramFileTypes&&(n=FilenameDialog.createFileTypes(a,v,a.editor.diagramFileTypes),n.style.marginLeft="6px",n.style.width="74px",r.appendChild(n),v.style.width=null!=p?p-40+"px":"140px"),r.appendChild(FilenameDialog.createTypeHint(a,v,m)));null!=k&&(n=document.createElement("tr"),r=document.createElement("td"),r.colSpan=2,r.appendChild(k),n.appendChild(r),u.appendChild(n));n=document.createElement("tr");
-r=document.createElement("td");r.colSpan=2;r.style.paddingTop="20px";r.style.whiteSpace="nowrap";r.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});m.className="geBtn";a.editor.cancelFirst&&r.appendChild(m);null!=g&&(p=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),p.className="geBtn",r.appendChild(p));mxEvent.addListener(v,"keypress",function(a){13==a.keyCode&&w.click()});r.appendChild(w);a.editor.cancelFirst||
-r.appendChild(m);n.appendChild(r);u.appendChild(n);t.appendChild(u);this.container=t};FilenameDialog.filenameHelpLink=null;
+var FilenameDialog=function(a,c,d,b,f,e,k,g,h,l,m,p){h=null!=h?h:!0;var n,q,t=document.createElement("table"),u=document.createElement("tbody");t.style.marginTop="8px";n=document.createElement("tr");q=document.createElement("td");q.style.whiteSpace="nowrap";q.style.fontSize="10pt";q.style.width=m?"80px":"120px";mxUtils.write(q,(f||mxResources.get("filename"))+":");n.appendChild(q);var v=document.createElement("input");v.setAttribute("value",c||"");v.style.marginLeft="4px";v.style.width=null!=p?p+
+"px":"180px";var x=mxUtils.button(d,function(){if(null==e||e(v.value))h&&a.hideDialog(),b(v.value)});x.className="geBtn gePrimaryBtn";this.init=function(){if(null!=f||null==k)if(v.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?v.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=t.parentNode;if(null!=a){var b=null;mxEvent.addListener(a,"dragleave",function(a){null!=b&&(b.style.backgroundColor="",b=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
+"dragover",mxUtils.bind(this,function(a){null==b&&(!mxClient.IS_IE||10<document.documentMode)&&(b=v,b.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=b&&(b.style.backgroundColor="",b=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(v.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),x.click());a.stopPropagation();a.preventDefault()}))}}};q=document.createElement("td");q.style.whiteSpace=
+"nowrap";q.appendChild(v);n.appendChild(q);if(null!=f||null==k)u.appendChild(n),null!=m&&(null!=a.editor.diagramFileTypes&&(n=FilenameDialog.createFileTypes(a,v,a.editor.diagramFileTypes),n.style.marginLeft="6px",n.style.width="74px",q.appendChild(n),v.style.width=null!=p?p-40+"px":"140px"),q.appendChild(FilenameDialog.createTypeHint(a,v,m)));null!=k&&(n=document.createElement("tr"),q=document.createElement("td"),q.colSpan=2,q.appendChild(k),n.appendChild(q),u.appendChild(n));n=document.createElement("tr");
+q=document.createElement("td");q.colSpan=2;q.style.paddingTop="20px";q.style.whiteSpace="nowrap";q.setAttribute("align","right");m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=l&&l()});m.className="geBtn";a.editor.cancelFirst&&q.appendChild(m);null!=g&&(p=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(g)}),p.className="geBtn",q.appendChild(p));mxEvent.addListener(v,"keypress",function(a){13==a.keyCode&&x.click()});q.appendChild(x);a.editor.cancelFirst||
+q.appendChild(m);n.appendChild(q);u.appendChild(n);t.appendChild(u);this.container=t};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(a,c,d){var b=document.createElement("img");b.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(b,70);var f=function(){b.setAttribute("src",Editor.helpImage);b.setAttribute("title",mxResources.get("help"));for(var a=0;a<d.length;a++)if(0<d[a].ext.length&&c.value.toLowerCase().substring(c.value.length-d[a].ext.length-1)=="."+d[a].ext){b.setAttribute("src",
mxClient.imageBasePath+"/warning.png");b.setAttribute("title",mxResources.get(d[a].title));break}};mxEvent.addListener(c,"keyup",f);mxEvent.addListener(c,"change",f);mxEvent.addListener(b,"click",function(c){var d=b.getAttribute("title");b.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=d&&a.showError(null,d,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
mxEvent.consume(c)});f();return b};
@@ -2146,8 +2147,8 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,b=nul
a.defaultPageBorderColor,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=e,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],e=1;e<this.gridSteps;e++){var f=e*b;d.push("M 0 "+f+" L "+c+" "+f+" M "+f+" 0 L "+f+
" "+c)}return'<svg width="'+c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,c){a.apply(this,arguments);
if(null!=this.shiftPreview1){var d=this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+b,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+c,e))+"px";d.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,e=this.view.translate,g=this.pageFormat,f=d*this.pageScale,k=this.view.getBackgroundPageBounds();
-b=k.width;c=k.height;var h=new mxRectangle(d*e.x,d*e.y,g.width*f,g.height*f),u=(a=a&&Math.min(h.width,h.height)>this.minPageBreakDist)?Math.ceil(c/h.height)-1:0,v=a?Math.ceil(b/h.width)-1:0,w=k.x+b,x=k.y+c;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?u:v,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(k.x),
-Math.round(k.y+(c+1)*h.height)),new mxPoint(Math.round(w),Math.round(k.y+(c+1)*h.height))]:[new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(k.y)),new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(x))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);
+b=k.width;c=k.height;var h=new mxRectangle(d*e.x,d*e.y,g.width*f,g.height*f),u=(a=a&&Math.min(h.width,h.height)>this.minPageBreakDist)?Math.ceil(c/h.height)-1:0,v=a?Math.ceil(b/h.width)-1:0,x=k.x+b,y=k.y+c;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?u:v,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(k.x),
+Math.round(k.y+(c+1)*h.height)),new mxPoint(Math.round(x),Math.round(k.y+(c+1)*h.height))]:[new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(k.y)),new mxPoint(Math.round(k.x+(c+1)*h.width),Math.round(y))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);
a(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,d){for(var e=0;e<b.length;e++){if(this.graph.isTableCell(b[e])||this.graph.isTableRow(b[e]))return!1;if(this.graph.getModel().isVertex(b[e])){var g=this.graph.getCellGeometry(b[e]);if(null!=g&&g.relative)return!1}}return c.apply(this,arguments)};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=
d.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,
e=this.graph.pageScale,f=d.width*e,d=d.height*e,e=Math.floor(Math.min(0,b)/f),n=Math.floor(Math.min(0,c)/d);return new mxRectangle(this.scale*(this.translate.x+e*f),this.scale*(this.translate.y+n*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/f)-e)*f,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-n)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,c){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
@@ -2156,31 +2157,31 @@ function(a,b,c){var d,g=this.graph.model.getParent(a);if(b)d=this.graph.model.is
this.graph.isCellSelected(a)&&!this.graph.isToggleEvent(c.getEvent())||this.graph.isTableCell(a)&&this.graph.isCellSelected(g);return d};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a),d=this.graph.view.getState(c),e=this.graph.isCellSelected(a);null!=d&&(b.isVertex(c)||b.isEdge(c));){var f=this.graph.isCellSelected(c),e=e||f;if(f||!e&&(this.graph.isTableCell(a)||this.graph.isTableRow(a)))a=c;c=b.getParent(c)}return a}})();EditorUi=function(a,c,d){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=c||document.body;var b=this.editor.graph;b.lightbox=d;this.initialDefaultVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.initialDefaultEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=
mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,b.isEnabled=function(){return!1},b.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!b.standalone){var f="rounded shadow glass dashed dashPattern labelBackgroundColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),
e="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=b.view.getState(a);if(null!=c){var d=a.clone();d.style="";var e=b.getCellStyle(d);a=[];var d=[],g;for(g in c.style)e[g]!=c.style[g]&&(a.push(c.style[g]),d.push(g));for(var f=b.getModel().getStyle(c.cell),k=null!=f?f.split(";"):[],f=0;f<k.length;f++){var h=
-k[f],l=h.indexOf("=");if(0<=l){g=h.substring(0,l);var m=h.substring(l+1);null!=e[g]&&"none"==m&&(a.push(m),d.push(g))}}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",a,"cells",[c.cell]))}}catch(R){this.handleError(R)}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
+k[f],l=h.indexOf("=");if(0<=l){g=h.substring(0,l);var m=h.substring(l+1);null!=e[g]&&"none"==m&&(a.push(m),d.push(g))}}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",a,"cells",[c.cell]))}}catch(W){this.handleError(W)}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
"keys",[],"values",[],"cells",[]))};var k=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<k.length;c++)0>mxUtils.indexOf(f,k[c])&&f.push(k[c]);var g="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),h=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],["opacity"],["align"],["html"]];for(c=0;c<h.length;c++)for(d=0;d<h[c].length;d++)f.push(h[c][d]);
-for(c=0;c<e.length;c++)0>mxUtils.indexOf(f,e[c])&&f.push(e[c]);var l=function(a,c,d,g,k){g=null!=g?g:b.currentVertexStyle;k=null!=k?k:b.currentEdgeStyle;d=null!=d?d:b.getModel();d.beginUpdate();try{for(var l=0;l<a.length;l++){var m=a[l],n;if(c)n=["fontSize","fontFamily","fontColor"];else{var p=d.getStyle(m),r=null!=p?p.split(";"):[];n=f.slice();for(var t=0;t<r.length;t++){var v=r[t],u=v.indexOf("=");if(0<=u){var N=v.substring(0,u),w=mxUtils.indexOf(n,N);0<=w&&n.splice(w,1);for(var x=0;x<h.length;x++){var z=
-h[x];if(0<=mxUtils.indexOf(z,N))for(var y=0;y<z.length;y++){var T=mxUtils.indexOf(n,z[y]);0<=T&&n.splice(T,1)}}}}}for(var M=d.isEdge(m),x=M?k:g,E=d.getStyle(m),t=0;t<n.length;t++){var N=n[t],D=x[N];null==D||"shape"==N&&!M||M&&!(0>mxUtils.indexOf(e,N))||(E=mxUtils.setStyle(E,N,D))}Editor.simpleLabels&&(E=mxUtils.setStyle(mxUtils.setStyle(E,"html",null),"whiteSpace",null));d.setStyle(m,E)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){l(b.getProperty("cells"))});b.addListener("textInserted",
-function(a,b){l(b.getProperty("cells"),!0)});this.insertHandler=l;this.createDivs();this.createUi();this.refresh();var m=mxUtils.bind(this,function(a){null==a&&(a=window.event);return b.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=m,this.menubarContainer.onmousedown=m,this.toolbarContainer.onselectstart=m,this.toolbarContainer.onmousedown=m,this.diagramContainer.onselectstart=m,this.diagramContainer.onmousedown=m,this.sidebarContainer.onselectstart=
-m,this.sidebarContainer.onmousedown=m,this.formatContainer.onselectstart=m,this.formatContainer.onmousedown=m,this.footerContainer.onselectstart=m,this.footerContainer.onmousedown=m,null!=this.tabContainer&&(this.tabContainer.onselectstart=m));!this.editor.chromeless||this.editor.editable?(c=function(a){if(null!=a){var b=mxEvent.getSource(a);if("A"==b.nodeName)for(;null!=b;){if("geHint"==b.className)return!0;b=b.parentNode}}return m(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||
-9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(c=b.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=b.graphHandler){var p=b.graphHandler.start;b.graphHandler.start=function(){null!=z.hoverIcons&&z.hoverIcons.reset();p.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,
-"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var n=!1,r=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,b){return n||r.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=
-a.which||b.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(n=!0,this.hoverIcons.reset(),b.container.style.cursor="move",b.isEditing()||mxEvent.getSource(a)!=b.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){b.container.style.cursor="";n=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var t=b.panningHandler.isForcePanningEvent;b.panningHandler.isForcePanningEvent=function(a){return t.apply(this,
-arguments)||n||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var u=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return u.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var v=b.isZoomWheelEvent;
-b.isZoomWheelEvent=function(){return n||v.apply(this,arguments)};var w=!1,x=null,F=null,D=null,E=mxUtils.bind(this,function(){if(null!=this.toolbar&&w!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var d=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));a=d}a=this.toolbar.fontMenu;d=this.toolbar.sizeMenu;if(null==D)this.toolbar.createTextToolbar();else{for(var e=0;e<D.length;e++)this.toolbar.container.appendChild(D[e]);
-this.toolbar.fontMenu=x;this.toolbar.sizeMenu=F}w=b.cellEditor.isContentEditing();x=a;F=d;D=c}}),z=this,G=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){G.apply(this,arguments);E();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=b.getSelectedEditingElement();null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=z.toolbar&&(z.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),z.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},
-0))};mxEvent.addListener(b.cellEditor.textarea,"input",c);mxEvent.addListener(b.cellEditor.textarea,"touchend",c);mxEvent.addListener(b.cellEditor.textarea,"mouseup",c);mxEvent.addListener(b.cellEditor.textarea,"keyup",c);c()}};var y=b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,b){try{y.apply(this,arguments),E()}catch(N){z.handleError(N)}};b.container.setAttribute("tabindex","0");b.container.style.cursor="default";if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(L){}var H=
-b.fireMouseEvent;b.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();H.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};b.connectionHandler.addListener(mxEvent.CONNECT,
-function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));l(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),h=!1,l=!1;if(0<d.length)for(var m=0;m<d.length&&(h=b.getModel().isVertex(d[m])||h,!(l=b.getModel().isEdge(d[m])||l)||!h);m++);else l=h=!0;for(var d=c.getProperty("keys"),n=c.getProperty("values"),m=0;m<d.length;m++){var p=0<=mxUtils.indexOf(k,d[m]);if("strokeColor"!=d[m]||null!=n[m]&&"none"!=
-n[m])if(0<=mxUtils.indexOf(e,d[m]))l||0<=mxUtils.indexOf(g,d[m])?null==n[m]?delete b.currentEdgeStyle[d[m]]:b.currentEdgeStyle[d[m]]=n[m]:h&&0<=mxUtils.indexOf(f,d[m])&&(null==n[m]?delete b.currentVertexStyle[d[m]]:b.currentVertexStyle[d[m]]=n[m]);else if(0<=mxUtils.indexOf(f,d[m])){if(h||p)null==n[m]?delete b.currentVertexStyle[d[m]]:b.currentVertexStyle[d[m]]=n[m];if(l||p||0<=mxUtils.indexOf(g,d[m]))null==n[m]?delete b.currentEdgeStyle[d[m]]:b.currentEdgeStyle[d[m]]=n[m]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||
-Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
-b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape?
-"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
-this.getCssClassForMarker("end",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(b.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=b.currentVertexStyle.fontFamily||"Helvetica",c=String(b.currentVertexStyle.fontSize||"12"),d=b.getView().getState(b.getSelectionCell());null!=d&&(a=d.style[mxConstants.STYLE_FONTFAMILY]||a,c=d.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);
-this.toolbar.setFontSize(c)}),b.getSelectionModel().addListener(mxEvent.CHANGE,a),b.getModel().addListener(mxEvent.CHANGE,a));b.addListener(mxEvent.CELLS_ADDED,function(a,c){var d=c.getProperty("cells"),e=c.getProperty("parent");b.getModel().isLayer(e)&&!b.isCellVisible(e)&&null!=d&&0<d.length&&b.getModel().setVisible(e,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,
-this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,
-"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));b.addListener("gridSizeChanged",mxUtils.bind(this,function(){b.isGridEnabled()&&b.view.validateBackground()}));this.editor.resetGraph()}this.init();b.standalone||this.open()};
-mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;
-EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
+for(c=0;c<e.length;c++)0>mxUtils.indexOf(f,e[c])&&f.push(e[c]);var l=function(a,c,d,g,k,l,m){g=null!=g?g:b.currentVertexStyle;k=null!=k?k:b.currentEdgeStyle;d=null!=d?d:b.getModel();if(m){m=[];for(var n=0;n<a.length;n++)m=m.concat(d.getDescendants(a[n]));a=m}d.beginUpdate();try{for(n=0;n<a.length;n++){var p=a[n],q;if(c)q=["fontSize","fontFamily","fontColor"];else{var t=d.getStyle(p),Z=null!=t?t.split(";"):[];q=f.slice();for(var v=0;v<Z.length;v++){var u=Z[v],N=u.indexOf("=");if(0<=N){var x=u.substring(0,
+N),A=mxUtils.indexOf(q,x);0<=A&&q.splice(A,1);for(m=0;m<h.length;m++){var y=h[m];if(0<=mxUtils.indexOf(y,x))for(var z=0;z<y.length;z++){var aa=mxUtils.indexOf(q,y[z]);0<=aa&&q.splice(aa,1)}}}}}var M=d.isEdge(p);m=M?k:g;for(var Q=d.getStyle(p),v=0;v<q.length;v++){var x=q[v],E=m[x];null!=E&&("shape"!=x||M)&&(!M||l||0>mxUtils.indexOf(e,x))&&(Q=mxUtils.setStyle(Q,x,E))}Editor.simpleLabels&&(Q=mxUtils.setStyle(mxUtils.setStyle(Q,"html",null),"whiteSpace",null));d.setStyle(p,Q)}}finally{d.endUpdate()}};
+b.addListener("cellsInserted",function(a,b){l(b.getProperty("cells"))});b.addListener("textInserted",function(a,b){l(b.getProperty("cells"),!0)});this.insertHandler=l;this.createDivs();this.createUi();this.refresh();var m=mxUtils.bind(this,function(a){null==a&&(a=window.event);return b.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=m,this.menubarContainer.onmousedown=m,this.toolbarContainer.onselectstart=m,this.toolbarContainer.onmousedown=
+m,this.diagramContainer.onselectstart=m,this.diagramContainer.onmousedown=m,this.sidebarContainer.onselectstart=m,this.sidebarContainer.onmousedown=m,this.formatContainer.onselectstart=m,this.formatContainer.onmousedown=m,this.footerContainer.onselectstart=m,this.footerContainer.onmousedown=m,null!=this.tabContainer&&(this.tabContainer.onselectstart=m));!this.editor.chromeless||this.editor.editable?(c=function(a){if(null!=a){var b=mxEvent.getSource(a);if("A"==b.nodeName)for(;null!=b;){if("geHint"==
+b.className)return!0;b=b.parentNode}}return m(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(c=b.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=b.graphHandler){var p=b.graphHandler.start;
+b.graphHandler.start=function(){null!=A.hoverIcons&&A.hoverIcons.reset();p.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var n=!1,q=this.hoverIcons.isResetEvent;
+this.hoverIcons.isResetEvent=function(a,b){return n||q.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||b.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(n=!0,this.hoverIcons.reset(),b.container.style.cursor="move",b.isEditing()||mxEvent.getSource(a)!=b.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){b.container.style.cursor="";n=!1});mxEvent.addListener(document,
+"keyup",this.keyupHandler);var t=b.panningHandler.isForcePanningEvent;b.panningHandler.isForcePanningEvent=function(a){return t.apply(this,arguments)||n||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var u=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return u.apply(this,arguments)||13==a.keyCode&&
+(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var v=b.isZoomWheelEvent;b.isZoomWheelEvent=function(){return n||v.apply(this,arguments)};var x=!1,y=null,G=null,E=null,F=mxUtils.bind(this,function(){if(null!=this.toolbar&&x!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var d=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));
+a=d}a=this.toolbar.fontMenu;d=this.toolbar.sizeMenu;if(null==E)this.toolbar.createTextToolbar();else{for(var e=0;e<E.length;e++)this.toolbar.container.appendChild(E[e]);this.toolbar.fontMenu=y;this.toolbar.sizeMenu=G}x=b.cellEditor.isContentEditing();y=a;G=d;E=c}}),A=this,I=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){I.apply(this,arguments);F();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=b.getSelectedEditingElement();null!=
+c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=A.toolbar&&(A.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),A.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",c);mxEvent.addListener(b.cellEditor.textarea,"touchend",c);mxEvent.addListener(b.cellEditor.textarea,"mouseup",c);mxEvent.addListener(b.cellEditor.textarea,"keyup",c);c()}};var z=b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,b){try{z.apply(this,arguments),F()}catch(N){A.handleError(N)}};
+b.container.setAttribute("tabindex","0");b.container.style.cursor="default";if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(L){}var H=b.fireMouseEvent;b.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();H.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
+function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};b.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));l(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),h=!1,l=!1;if(0<d.length)for(var m=0;m<d.length&&(h=b.getModel().isVertex(d[m])||h,!(l=b.getModel().isEdge(d[m])||
+l)||!h);m++);else l=h=!0;for(var d=c.getProperty("keys"),n=c.getProperty("values"),m=0;m<d.length;m++){var p=0<=mxUtils.indexOf(k,d[m]);if("strokeColor"!=d[m]||null!=n[m]&&"none"!=n[m])if(0<=mxUtils.indexOf(e,d[m]))l||0<=mxUtils.indexOf(g,d[m])?null==n[m]?delete b.currentEdgeStyle[d[m]]:b.currentEdgeStyle[d[m]]=n[m]:h&&0<=mxUtils.indexOf(f,d[m])&&(null==n[m]?delete b.currentVertexStyle[d[m]]:b.currentVertexStyle[d[m]]=n[m]);else if(0<=mxUtils.indexOf(f,d[m])){if(h||p)null==n[m]?delete b.currentVertexStyle[d[m]]:
+b.currentVertexStyle[d[m]]=n[m];if(l||p||0<=mxUtils.indexOf(g,d[m]))null==n[m]?delete b.currentEdgeStyle[d[m]]:b.currentEdgeStyle[d[m]]=n[m]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?
+"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?
+"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=
+this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(b.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=b.currentVertexStyle.fontFamily||
+"Helvetica",c=String(b.currentVertexStyle.fontSize||"12"),d=b.getView().getState(b.getSelectionCell());null!=d&&(a=d.style[mxConstants.STYLE_FONTFAMILY]||a,c=d.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);this.toolbar.setFontSize(c)}),b.getSelectionModel().addListener(mxEvent.CHANGE,a),b.getModel().addListener(mxEvent.CHANGE,a));b.addListener(mxEvent.CELLS_ADDED,function(a,c){var d=c.getProperty("cells"),e=c.getProperty("parent");b.getModel().isLayer(e)&&
+!b.isCellVisible(e)&&null!=d&&0<d.length&&b.getModel().setVisible(e,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=
+mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));this.addListener("backgroundColorChanged",
+mxUtils.bind(this,function(){b.view.validateBackground()}));b.addListener("gridSizeChanged",mxUtils.bind(this,function(){b.isGridEnabled()&&b.view.validateBackground()}));this.editor.resetGraph()}this.init();b.standalone||this.open()};mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;
+EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"!=urlParams["shape-picker"]&&this.installShapePicker();mxEvent.addListener(a.container,"scroll",mxUtils.bind(this,function(){a.tooltipHandler.hide();null!=a.connectionHandler&&null!=a.connectionHandler.constraintHandler&&a.connectionHandler.constraintHandler.reset()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){a.tooltipHandler.hide();var b=a.getRubberband();null!=b&&b.cancel()}));mxEvent.addListener(a.container,
"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));var c=a.setDefaultParent,d=this;this.editor.graph.setDefaultParent=function(){c.apply(this,
arguments);d.updateActionStates()};a.editLink=d.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};
@@ -2205,39 +2206,39 @@ d==mxConstants.ARROW_DIAMOND_THIN?"1"==b?"geSprite geSprite-"+a+"thindiamond":"g
d?"geSprite geSprite-"+a+"eronetoone":"ERmany"==d?"geSprite geSprite-"+a+"ermany":"ERoneToMany"==d?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==d?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==d?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,c=this.actions.get("paste"),d=this.actions.get("pasteHere");c.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));d.setEnabled(c.isEnabled())};
EditorUi.prototype.initClipboard=function(){var a=this,c=mxClipboard.cut;mxClipboard.cut=function(b){b.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):c.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(b){var c=null;if(b.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var c=c||b.getSelectionCells(),c=b.getExportableCells(b.model.getTopmostCells(c)),d={},e=b.createCellLookup(c),f=b.cloneCells(c,null,d),m=new mxGraphModel,p=m.getChildAt(m.getRoot(),
-0),n=0;n<f.length;n++){m.add(p,f[n]);var r=b.view.getState(c[n]);if(null!=r){var t=b.getCellGeometry(f[n]);null!=t&&t.relative&&!m.isEdge(c[n])&&null==e[mxObjectIdentity.get(m.getParent(c[n]))]&&(t.offset=null,t.relative=!1,t.x=r.x/r.view.scale-r.view.translate.x,t.y=r.y/r.view.scale-r.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(d,e),f);mxClipboard.insertCount=1;mxClipboard.setCells(f)}a.updatePasteActionStates();return c};var d=mxClipboard.paste;mxClipboard.paste=function(b){var c=
+0),n=0;n<f.length;n++){m.add(p,f[n]);var q=b.view.getState(c[n]);if(null!=q){var t=b.getCellGeometry(f[n]);null!=t&&t.relative&&!m.isEdge(c[n])&&null==e[mxObjectIdentity.get(m.getParent(c[n]))]&&(t.offset=null,t.relative=!1,t.x=q.x/q.view.scale-q.view.translate.x,t.y=q.y/q.view.scale-q.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(d,e),f);mxClipboard.insertCount=1;mxClipboard.setCells(f)}a.updatePasteActionStates();return c};var d=mxClipboard.paste;mxClipboard.paste=function(b){var c=
null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):c=d.apply(this,arguments);a.updatePasteActionStates();return c};var b=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){b.apply(this,arguments);a.updatePasteActionStates()};var f=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){f.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),b=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,
this.scale*a.height*b.height)};a.getPreferredPageSize=function(a,b,c){a=this.getPageLayout();b=this.getPageSize();return new mxRectangle(0,0,a.width*b.width,a.height*b.height)};var c=null,d=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(b,c,d,e){if(null!=a.container&&!a.isViewer()){d=null!=d?d:0;e=null!=e?e:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),f=mxUtils.hasScrollbars(a.container),k=a.view.translate,h=a.view.scale,m=mxRectangle.fromRectangle(g);
-m.x=m.x/h-k.x;m.y=m.y/h-k.y;m.width/=h;m.height/=h;var k=a.container.scrollTop,l=a.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var p=a.container.offsetWidth-n,n=a.container.offsetHeight-n;b=b?Math.max(.3,Math.min(c||1,p/m.width)):h;c=(p-b*m.width)/2/b;var r=0==this.lightboxVerticalDivider?0:(n-b*m.height)/this.lightboxVerticalDivider/b;f&&(c=Math.max(c,0),r=Math.max(r,0));if(f||g.width<p||g.height<n)a.view.scaleAndTranslate(b,Math.floor(c-
-m.x),Math.floor(r-m.y)),a.container.scrollTop=k*b/h,a.container.scrollLeft=l*b/h;else if(0!=d||0!=e)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/h),Math.floor(g.y+e/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+m.x=m.x/h-k.x;m.y=m.y/h-k.y;m.width/=h;m.height/=h;var k=a.container.scrollTop,l=a.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var p=a.container.offsetWidth-n,n=a.container.offsetHeight-n;b=b?Math.max(.3,Math.min(c||1,p/m.width)):h;c=(p-b*m.width)/2/b;var q=0==this.lightboxVerticalDivider?0:(n-b*m.height)/this.lightboxVerticalDivider/b;f&&(c=Math.max(c,0),q=Math.max(q,0));if(f||g.width<p||g.height<n)a.view.scaleAndTranslate(b,Math.floor(c-
+m.x),Math.floor(q-m.y)),a.container.scrollTop=k*b/h,a.container.scrollLeft=l*b/h;else if(0!=d||0!=e)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/h),Math.floor(g.y+e/h))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(b){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(b){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var f=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var e=mxUtils.bind(this,function(){var b=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top=
"0":this.chromelessToolbar.style.bottom=(null!=b?parseInt(b["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",e);e();var k=0,e=mxUtils.bind(this,function(a,b,c){k++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=c&&d.setAttribute("title",c);a=document.createElement("img");a.setAttribute("border","0");
a.setAttribute("src",b);d.appendChild(a);this.chromelessToolbar.appendChild(d);return d});null!=f.backBtn&&e(mxUtils.bind(this,function(a){window.location.href=f.backBtn.url;mxEvent.consume(a)}),Editor.backLargeImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var g=e(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),h=document.createElement("div");h.style.display="inline-block";
h.style.verticalAlign="top";h.style.fontFamily="Helvetica,Arial";h.style.marginTop="8px";h.style.fontSize="14px";h.style.color="#ffffff";this.chromelessToolbar.appendChild(h);var l=e(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(h.innerHTML="",mxUtils.write(h,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+
this.pages.length))});g.style.paddingLeft="0px";g.style.paddingRight="4px";l.style.paddingLeft="4px";l.style.paddingRight="0px";var p=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(l.style.display="",g.style.display="",h.style.display="inline-block"):(l.style.display="none",g.style.display="none",h.style.display="none");m()});this.editor.addListener("resetGraphView",p);this.editor.addListener("pageSelected",m)}e(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
-mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(b){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(b)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var n=null,r=null,t=mxUtils.bind(this,
-function(a){null!=n&&(window.clearTimeout(n),n=null);null!=r&&(window.clearTimeout(r),r=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;r=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";r=null}),600)}),a||200)}),u=mxUtils.bind(this,function(a){null!=n&&(window.clearTimeout(n),n=null);null!=r&&(window.clearTimeout(r),r=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
+mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");e(mxUtils.bind(this,function(b){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(b)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var n=null,q=null,t=mxUtils.bind(this,
+function(a){null!=n&&(window.clearTimeout(n),n=null);null!=q&&(window.clearTimeout(q),q=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;q=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";q=null}),600)}),a||200)}),u=mxUtils.bind(this,function(a){null!=n&&(window.clearTimeout(n),n=null);null!=q&&(window.clearTimeout(q),q=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
a||30)});if("1"==urlParams.layers){this.layersDialog=null;var v=e(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var c=v.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius",
"5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){v.style.display=1<w.getChildCount(w.root)?"":"none"})}"1"!=urlParams.openInSameWin&&this.addChromelessToolbarItems(e);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||e(mxUtils.bind(this,function(b){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==
-this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(b)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(p=0;p<this.lightboxToolbarActions.length;p++){var x=this.lightboxToolbarActions[p];e(x.fn,x.icon,x.tooltip)}null!=f.refreshBtn&&e(mxUtils.bind(this,function(a){f.refreshBtn.url?window.location.href=f.refreshBtn.url:window.location.reload();mxEvent.consume(a)}),Editor.refreshLargeImage,
+this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")),x=a.getModel();x.addListener(mxEvent.CHANGE,function(){v.style.display=1<x.getChildCount(x.root)?"":"none"})}"1"!=urlParams.openInSameWin&&this.addChromelessToolbarItems(e);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||e(mxUtils.bind(this,function(b){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==
+this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(b)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(p=0;p<this.lightboxToolbarActions.length;p++){var y=this.lightboxToolbarActions[p];e(y.fn,y.icon,y.tooltip)}null!=f.refreshBtn&&e(mxUtils.bind(this,function(a){f.refreshBtn.url?window.location.href=f.refreshBtn.url:window.location.reload();mxEvent.consume(a)}),Editor.refreshLargeImage,
mxResources.get("refresh",null,"Refresh"));null!=f.fullscreenBtn&&window.self!==window.top&&e(mxUtils.bind(this,function(b){f.fullscreenBtn.url?a.openLink(f.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(b)}),Editor.fullscreenLargeImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(f.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&e(mxUtils.bind(this,function(a){"1"==urlParams.close||f.closeBtn?window.close():
(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||u(30),t())}));mxEvent.addListener(this.chromelessToolbar,
-mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?t():u(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?t():u(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||u(30)}));var F=a.getTolerance();a.addMouseListener({startX:0,
-startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<F&&Math.abs(this.scrollTop-a.container.scrollTop)<F&&Math.abs(this.startX-c.getGraphX())<F&&Math.abs(this.startY-c.getGraphY())<F&&(0<parseFloat(d.chromelessToolbar.style.opacity||0)?
-t():u(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var D=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}D.apply(this,arguments)};if(!a.isViewer()){var E=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=
-this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*c.x+b.width*d.width),g=Math.ceil(2*c.y+b.height*d.height),f=a.minimumGraphSize;if(null==f||f.width!=e||f.height!=g)a.minimumGraphSize=new mxRectangle(0,0,e,g);e=c.x-b.x*d.width;c=c.y-b.y*d.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==c?E.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(e,c),a.container.scrollLeft+=
-Math.round((e-b)*a.view.scale),a.container.scrollTop+=Math.round((c-d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var z=a.view.getBackgroundPane(),G=a.view.getDrawPane();a.cumulativeZoomFactor=1;var y=null,H=null,L=null,P=null,N=null,M=function(b){null!=y&&window.clearTimeout(y);window.setTimeout(function(){if(!a.isMouseDown||P)y=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
-null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),G.style.transformOrigin="",z.style.transformOrigin="",mxClient.IS_SF?(G.style.transform="scale(1)",z.style.transform="scale(1)",window.setTimeout(function(){G.style.transform="";z.style.transform=""},0)):(G.style.transform="",z.style.transform=""),a.view.getDecoratorPane().style.opacity="",
+mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?t():u(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?t():u(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||u(30)}));var G=a.getTolerance();a.addMouseListener({startX:0,
+startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<G&&Math.abs(this.scrollTop-a.container.scrollTop)<G&&Math.abs(this.startX-c.getGraphX())<G&&Math.abs(this.startY-c.getGraphY())<G&&(0<parseFloat(d.chromelessToolbar.style.opacity||0)?
+t():u(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var E=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}E.apply(this,arguments)};if(!a.isViewer()){var F=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=
+this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*c.x+b.width*d.width),g=Math.ceil(2*c.y+b.height*d.height),f=a.minimumGraphSize;if(null==f||f.width!=e||f.height!=g)a.minimumGraphSize=new mxRectangle(0,0,e,g);e=c.x-b.x*d.width;c=c.y-b.y*d.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==c?F.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(e,c),a.container.scrollLeft+=
+Math.round((e-b)*a.view.scale),a.container.scrollTop+=Math.round((c-d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var A=a.view.getBackgroundPane(),I=a.view.getDrawPane();a.cumulativeZoomFactor=1;var z=null,H=null,L=null,P=null,N=null,M=function(b){null!=z&&window.clearTimeout(z);window.setTimeout(function(){if(!a.isMouseDown||P)z=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
+null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),I.style.transformOrigin="",A.style.transformOrigin="",mxClient.IS_SF?(I.style.transform="scale(1)",A.style.transform="scale(1)",window.setTimeout(function(){I.style.transform="";A.style.transform=""},0)):(I.style.transform="",A.style.transform=""),a.view.getDecoratorPane().style.opacity="",
a.view.getOverlayPane().style.opacity="");var b=new mxPoint(a.container.scrollLeft,a.container.scrollTop),e=mxUtils.getOffset(a.container),g=a.view.scale,f=0,k=0;null!=H&&(f=a.container.offsetWidth/2-H.x+e.x,k=a.container.offsetHeight/2-H.y+e.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=g&&(null!=L&&(f+=b.x-L.x,k+=b.y-L.y),null!=c&&d.chromelessResize(!1,null,f*(a.cumulativeZoomFactor-1),k*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==f&&0==k||(a.container.scrollLeft-=f*(a.cumulativeZoomFactor-
-1),a.container.scrollTop-=k*(a.cumulativeZoomFactor-1)));null!=N&&G.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=P=H=L=y=null}),null!=b?b:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},T=Date.now();a.lazyZoom=function(b,c,e){(c=c||!a.scrollbars)&&(H=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(!(15>Date.now()-T)){T=Date.now();b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+
+1),a.container.scrollTop-=k*(a.cumulativeZoomFactor-1)));null!=N&&I.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=P=H=L=z=null}),null!=b?b:a.isFastZoomEnabled()?d.wheelZoomDelay:d.lazyZoomDelay)},0)},Q=Date.now();a.lazyZoom=function(b,c,e){(c=c||!a.scrollbars)&&(H=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(!(15>Date.now()-Q)){Q=Date.now();b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+
.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,
-160))/this.view.scale;if(a.isFastZoomEnabled()){null==N&&""!=G.getAttribute("filter")&&(N=G.getAttribute("filter"),G.removeAttribute("filter"));L=new mxPoint(a.container.scrollLeft,a.container.scrollTop);b=c?a.container.scrollLeft+a.container.clientWidth/2:H.x+a.container.scrollLeft-a.container.offsetLeft;var g=c?a.container.scrollTop+a.container.clientHeight/2:H.y+a.container.scrollTop-a.container.offsetTop;G.style.transformOrigin=b+"px "+g+"px";G.style.transform="scale("+this.cumulativeZoomFactor+
-")";z.style.transformOrigin=b+"px "+g+"px";z.style.transform="scale("+this.cumulativeZoomFactor+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(b=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(b.style,"transform-origin",(c?a.container.clientWidth/2+a.container.scrollLeft-b.offsetLeft+"px":H.x+a.container.scrollLeft-b.offsetLeft-a.container.offsetLeft+"px")+" "+(c?a.container.clientHeight/2+a.container.scrollTop-b.offsetTop+"px":H.y+a.container.scrollTop-b.offsetTop-
-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(b.style,"transform","scale("+this.cumulativeZoomFactor+")"));a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=d.hoverIcons&&d.hoverIcons.reset()}M(e)}};mxEvent.addGestureListeners(a.container,function(a){null!=y&&window.clearTimeout(y)},null,function(b){1!=a.cumulativeZoomFactor&&M(0)});mxEvent.addListener(a.container,"scroll",function(b){null==y||a.isMouseDown||1==a.cumulativeZoomFactor||M(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,
+160))/this.view.scale;if(a.isFastZoomEnabled()){null==N&&""!=I.getAttribute("filter")&&(N=I.getAttribute("filter"),I.removeAttribute("filter"));L=new mxPoint(a.container.scrollLeft,a.container.scrollTop);b=c?a.container.scrollLeft+a.container.clientWidth/2:H.x+a.container.scrollLeft-a.container.offsetLeft;var g=c?a.container.scrollTop+a.container.clientHeight/2:H.y+a.container.scrollTop-a.container.offsetTop;I.style.transformOrigin=b+"px "+g+"px";I.style.transform="scale("+this.cumulativeZoomFactor+
+")";A.style.transformOrigin=b+"px "+g+"px";A.style.transform="scale("+this.cumulativeZoomFactor+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(b=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(b.style,"transform-origin",(c?a.container.clientWidth/2+a.container.scrollLeft-b.offsetLeft+"px":H.x+a.container.scrollLeft-b.offsetLeft-a.container.offsetLeft+"px")+" "+(c?a.container.clientHeight/2+a.container.scrollTop-b.offsetTop+"px":H.y+a.container.scrollTop-b.offsetTop-
+a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(b.style,"transform","scale("+this.cumulativeZoomFactor+")"));a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=d.hoverIcons&&d.hoverIcons.reset()}M(e)}};mxEvent.addGestureListeners(a.container,function(a){null!=z&&window.clearTimeout(z)},null,function(b){1!=a.cumulativeZoomFactor&&M(0)});mxEvent.addListener(a.container,"scroll",function(b){null==z||a.isMouseDown||1==a.cumulativeZoomFactor||M(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,
function(b,c,d,e,g){if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!d&&a.isScrollWheelEvent(b))d=a.view.getTranslate(),e=40/a.view.scale,mxEvent.isShiftDown(b)?a.view.setTranslate(d.x+(c?-e:e),d.y):a.view.setTranslate(d.x,d.y+(c?e:-e));else if(d||a.isZoomWheelEvent(b))for(var f=mxEvent.getSource(b);null!=f;){if(f==a.container)return a.tooltipHandler.hideTooltip(),H=null!=e&&null!=g?new mxPoint(e,g):new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b)),P=d,a.lazyZoom(c),mxEvent.consume(b),
!1;f=f.parentNode}}),a.container);a.panningHandler.zoomGraph=function(b){a.cumulativeZoomFactor=b.scale;a.lazyZoom(0<b.scale,!0);mxEvent.consume(b)}};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};
EditorUi.prototype.createTemporaryGraph=function(a){var c=new Graph(document.createElement("div"));c.stylesheet.styles=mxUtils.clone(a.styles);c.resetViewOnRootChange=!1;c.setConnectable(!1);c.gridEnabled=!1;c.autoScroll=!1;c.setTooltips(!1);c.setEnabled(!1);c.container.style.visibility="hidden";c.container.style.position="absolute";c.container.style.overflow="hidden";c.container.style.height="1px";c.container.style.width="1px";return c};
@@ -2353,30 +2354,32 @@ null,e)};Sidebar.prototype.filterTags=function(a){if(null!=a){a=a.split(" ");for
Sidebar.prototype.addSearchPalette=function(a){var c=document.createElement("div");c.style.visibility="hidden";this.container.appendChild(c);var d=document.createElement("div");d.className="geSidebar";d.style.boxSizing="border-box";d.style.overflow="hidden";d.style.width="100%";d.style.padding="8px";d.style.paddingTop="14px";d.style.paddingBottom="0px";a||(d.style.display="none");var b=document.createElement("div");b.style.whiteSpace="nowrap";b.style.textOverflow="clip";b.style.paddingBottom="8px";
b.style.cursor="default";var f=document.createElement("input");f.setAttribute("placeholder",mxResources.get("searchShapes"));f.setAttribute("type","text");f.style.fontSize="12px";f.style.overflow="hidden";f.style.boxSizing="border-box";f.style.border="solid 1px #d5d5d5";f.style.borderRadius="4px";f.style.width="100%";f.style.outline="none";f.style.padding="6px";f.style.paddingRight="20px";b.appendChild(f);var e=document.createElement("img");e.setAttribute("src",Sidebar.prototype.searchImage);e.setAttribute("title",
mxResources.get("search"));e.style.position="relative";e.style.left="-18px";e.style.top="1px";e.style.background="url('"+this.editorUi.editor.transparentImage+"')";var k;b.appendChild(e);d.appendChild(b);var g=document.createElement("center"),h=mxUtils.button(mxResources.get("moreResults"),function(){k()});h.style.display="none";h.style.lineHeight="normal";h.style.fontSize="12px";h.style.padding="6px 12px 6px 12px";h.style.marginTop="4px";h.style.marginBottom="8px";g.style.paddingTop="4px";g.style.paddingBottom=
-"4px";g.appendChild(h);d.appendChild(g);var l="",m=!1,p=!1,n=0,r={},t=12,u=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var a=d.firstChild;null!=a;){var c=a.nextSibling;a!=b&&a!=g&&a.parentNode.removeChild(a);a=c}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),h.style.display="none",l=f.value="",u());f.focus()});k=mxUtils.bind(this,
-function(){t=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=f.value){if(null!=g.parentNode&&(l!=f.value&&(u(),l=f.value,r={},p=!1,n=0),!m&&!p)){h.setAttribute("disabled","true");h.style.display="";h.style.cursor="wait";h.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(l,t,n,mxUtils.bind(this,function(b,c,e,f){if(this.currentSearch==a){b=null!=b?b:[];m=!1;n++;this.insertSearchHint(d,l,t,n,b,c,e,f);
-0==b.length&&1==n&&(l="");null!=g.parentNode&&g.parentNode.removeChild(g);for(c=0;c<b.length;c++)mxUtils.bind(this,function(a){try{var b=a();null==r[b.innerHTML]?(r[b.innerHTML]=null!=a.parentLibraries?a.parentLibraries.slice():[],d.appendChild(b)):null!=a.parentLibraries&&(r[b.innerHTML]=r[b.innerHTML].concat(a.parentLibraries));mxEvent.addGestureListeners(b,null,null,mxUtils.bind(this,function(a){var c=r[b.innerHTML];mxEvent.isPopupTrigger(a)&&this.showPopupMenuForEntry(b,c,a)}));mxEvent.disableContextMenu(b)}catch(G){}})(b[c]);
-e?(h.removeAttribute("disabled"),h.innerHTML=mxResources.get("moreResults")):(h.innerHTML=mxResources.get("reset"),h.style.display="none",p=!0);h.style.cursor="";d.appendChild(g)}}),mxUtils.bind(this,function(){h.style.cursor=""}))}}else u(),l=f.value="",r={},h.style.display="none",p=!1,f.focus()});this.searchShapes=function(a){f.value=a;k()};mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(k(),mxEvent.consume(a))}));mxEvent.addListener(f,"keyup",mxUtils.bind(this,function(a){""==
+"4px";g.appendChild(h);d.appendChild(g);var l="",m=!1,p=!1,n=0,q={},t=12,u=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var a=d.firstChild;null!=a;){var c=a.nextSibling;a!=b&&a!=g&&a.parentNode.removeChild(a);a=c}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),h.style.display="none",l=f.value="",u());f.focus()});k=mxUtils.bind(this,
+function(){t=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=f.value){if(null!=g.parentNode&&(l!=f.value&&(u(),l=f.value,q={},p=!1,n=0),!m&&!p)){h.setAttribute("disabled","true");h.style.display="";h.style.cursor="wait";h.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(l,t,n,mxUtils.bind(this,function(b,c,e,f){if(this.currentSearch==a){b=null!=b?b:[];m=!1;n++;this.insertSearchHint(d,l,t,n,b,c,e,f);
+0==b.length&&1==n&&(l="");null!=g.parentNode&&g.parentNode.removeChild(g);for(c=0;c<b.length;c++)mxUtils.bind(this,function(a){try{var b=a();null==q[b.innerHTML]?(q[b.innerHTML]=null!=a.parentLibraries?a.parentLibraries.slice():[],d.appendChild(b)):null!=a.parentLibraries&&(q[b.innerHTML]=q[b.innerHTML].concat(a.parentLibraries));mxEvent.addGestureListeners(b,null,null,mxUtils.bind(this,function(a){var c=q[b.innerHTML];mxEvent.isPopupTrigger(a)&&this.showPopupMenuForEntry(b,c,a)}));mxEvent.disableContextMenu(b)}catch(I){}})(b[c]);
+e?(h.removeAttribute("disabled"),h.innerHTML=mxResources.get("moreResults")):(h.innerHTML=mxResources.get("reset"),h.style.display="none",p=!0);h.style.cursor="";d.appendChild(g)}}),mxUtils.bind(this,function(){h.style.cursor=""}))}}else u(),l=f.value="",q={},h.style.display="none",p=!1,f.focus()});this.searchShapes=function(a){f.value=a;k()};mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(k(),mxEvent.consume(a))}));mxEvent.addListener(f,"keyup",mxUtils.bind(this,function(a){""==
f.value?(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search"))):(e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("reset")));""==f.value?(p=!0,h.style.display="none"):f.value!=l?(h.style.display="none",p=!1):m||(h.style.display=p?"none":"")}));mxEvent.addListener(f,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(f,"selectstart",function(a){a.stopPropagation&&
a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(d);this.container.appendChild(a);this.palettes.search=[c,a]};
Sidebar.prototype.insertSearchHint=function(a,c,d,b,f,e,k,g){0==f.length&&1==b&&(d=document.createElement("div"),d.className="geTitle",d.style.cssText="background-color:transparent;border-color:transparent;color:gray;padding:6px 0px 0px 0px !important;margin:4px 8px 4px 8px;text-align:center;cursor:default !important",mxUtils.write(d,mxResources.get("noResultsFor",[c])),a.appendChild(d))};
-Sidebar.prototype.addGeneralPalette=function(a){this.setCurrentSearchEntryLibrary("general","general");var c=[this.createVertexTemplateEntry("rounded=0;whiteSpace=wrap;html=1;",120,60,"","Rectangle",null,null,"rect rectangle box"),this.createVertexTemplateEntry("rounded=1;whiteSpace=wrap;html=1;",120,60,"","Rounded Rectangle",null,null,"rounded rect rectangle box"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",
-40,20,"Text","Text",null,null,"text textbox textarea label"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;",190,120,"<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>","Textbox",null,null,"text textbox textarea"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",120,80,"","Ellipse",null,null,
-"oval ellipse state"),this.createVertexTemplateEntry("whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Square",null,null,"square"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Circle",null,null,"circle"),this.createVertexTemplateEntry("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;",120,60,"","Process",null,null,"process task"),this.createVertexTemplateEntry("rhombus;whiteSpace=wrap;html=1;",80,80,"","Diamond",null,null,"diamond rhombus if condition decision conditional question test"),
-this.createVertexTemplateEntry("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60,"","Parallelogram"),this.createVertexTemplateEntry("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80,"","Hexagon",null,null,"hexagon preparation"),this.createVertexTemplateEntry("triangle;whiteSpace=wrap;html=1;",60,80,"","Triangle",null,null,"triangle logic inverter buffer"),this.createVertexTemplateEntry("shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;",
-60,80,"","Cylinder",null,null,"cylinder data database"),this.createVertexTemplateEntry("ellipse;shape=cloud;whiteSpace=wrap;html=1;",120,80,"","Cloud",null,null,"cloud network"),this.createVertexTemplateEntry("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80,"","Document"),this.createVertexTemplateEntry("shape=internalStorage;whiteSpace=wrap;html=1;backgroundOutline=1;",80,80,"","Internal Storage"),this.createVertexTemplateEntry("shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;",
-120,80,"","Cube"),this.createVertexTemplateEntry("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80,"","Step"),this.createVertexTemplateEntry("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60,"","Trapezoid"),this.createVertexTemplateEntry("shape=tape;whiteSpace=wrap;html=1;",120,100,"","Tape"),this.createVertexTemplateEntry("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;",80,100,"","Note"),this.createVertexTemplateEntry("shape=card;whiteSpace=wrap;html=1;",
-80,100,"","Card"),this.createVertexTemplateEntry("shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;",120,80,"","Callout",null,null,"bubble chat thought speech message"),this.createVertexTemplateEntry("shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;",30,60,"Actor","Actor",!1,null,"user person human stickman"),this.createVertexTemplateEntry("shape=xor;whiteSpace=wrap;html=1;",60,80,"","Or",null,null,"logic or"),this.createVertexTemplateEntry("shape=or;whiteSpace=wrap;html=1;",
-60,80,"","And",null,null,"logic and"),this.createVertexTemplateEntry("shape=dataStorage;whiteSpace=wrap;html=1;fixedSize=1;",100,80,"","Data Storage"),this.addEntry("curve",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,50,50),"curved=1;endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,50),!0);a.geometry.setTerminalPoint(new mxPoint(50,0),!1);a.geometry.points=[new mxPoint(50,50),new mxPoint(0,0)];a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],
-a.geometry.width,a.geometry.height,"Curve")})),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;startArrow=classic;html=1;",100,100,"","Bidirectional Arrow",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;html=1;",50,50,"","Arrow",null,"line lines connector connectors connection connections arrow arrows directional directed"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;",
-50,50,"","Dashed Line",null,"line lines connector connectors connection connections arrow arrows dashed undirected no"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;",50,50,"","Dotted Line",null,"line lines connector connectors connection connections arrow arrows dotted undirected no"),this.createEdgeTemplateEntry("endArrow=none;html=1;",50,50,"","Line",null,"line lines connector connectors connection connections arrow arrows simple undirected plain blank no"),
-this.createEdgeTemplateEntry("endArrow=classic;startArrow=classic;html=1;",50,50,"","Bidirectional Connector",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("endArrow=classic;html=1;",50,50,"","Directional Connector",null,"line lines connector connectors connection connections arrow arrows directional directed"),this.createEdgeTemplateEntry("shape=link;html=1;",100,0,"","Link",null,"line lines connector connectors connection connections arrow arrows link"),
-this.addEntry("line lines connector connectors connection connections arrow arrows edge title",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(100,0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("Label",new mxGeometry(0,0,0,0),"edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;
-a.insert(b);return this.createEdgeTemplateFromCells([a],100,0,"Connector with Label")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge title multiplicity",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(160,0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("Label",new mxGeometry(0,0,0,0),"edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;");
-b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);b=new mxCell("Source",new mxGeometry(-1,0,0,0),"edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);return this.createEdgeTemplateFromCells([a],160,0,"Connector with 2 Labels")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge title multiplicity",mxUtils.bind(this,function(){var a=new mxCell("Label",new mxGeometry(0,
-0,0,0),"endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(160,0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("Label",new mxGeometry(0,0,0,0),"edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);b=new mxCell("Source",new mxGeometry(-1,0,0,0),"edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;");b.geometry.relative=!0;b.setConnectable(!1);
-b.vertex=!0;a.insert(b);b=new mxCell("Target",new mxGeometry(1,0,0,0),"edgeLabel;resizable=0;html=1;align=right;verticalAlign=bottom;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);return this.createEdgeTemplateFromCells([a],160,0,"Connector with 3 Labels")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge shape symbol message mail email",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");
-a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(100,0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("",new mxGeometry(0,0,20,14),"shape=message;html=1;outlineConnect=0;");b.geometry.relative=!0;b.vertex=!0;b.geometry.offset=new mxPoint(-10,-7);a.insert(b);return this.createEdgeTemplateFromCells([a],100,0,"Connector with Symbol")}))];this.addPaletteFunctions("general",mxResources.get("general"),null!=a?a:!0,c);this.setCurrentSearchEntryLibrary()};
+Sidebar.prototype.addGeneralPalette=function(a){this.setCurrentSearchEntryLibrary("general","general");var c=this,d=new mxCell("List Item",new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");d.vertex=!0;var b=[this.createVertexTemplateEntry("rounded=0;whiteSpace=wrap;html=1;",120,60,"","Rectangle",null,null,"rect rectangle box"),this.createVertexTemplateEntry("rounded=1;whiteSpace=wrap;html=1;",
+120,60,"","Rounded Rectangle",null,null,"rounded rect rectangle box"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",40,20,"Text","Text",null,null,"text textbox textarea label"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;",190,120,"<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>",
+"Textbox",null,null,"text textbox textarea"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",120,80,"","Ellipse",null,null,"oval ellipse state"),this.createVertexTemplateEntry("whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Square",null,null,"square"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Circle",null,null,"circle"),this.createVertexTemplateEntry("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;",120,60,"","Process",null,
+null,"process task"),this.createVertexTemplateEntry("rhombus;whiteSpace=wrap;html=1;",80,80,"","Diamond",null,null,"diamond rhombus if condition decision conditional question test"),this.createVertexTemplateEntry("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60,"","Parallelogram"),this.createVertexTemplateEntry("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80,"","Hexagon",null,null,"hexagon preparation"),this.createVertexTemplateEntry("triangle;whiteSpace=wrap;html=1;",
+60,80,"","Triangle",null,null,"triangle logic inverter buffer"),this.createVertexTemplateEntry("shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;",60,80,"","Cylinder",null,null,"cylinder data database"),this.createVertexTemplateEntry("ellipse;shape=cloud;whiteSpace=wrap;html=1;",120,80,"","Cloud",null,null,"cloud network"),this.createVertexTemplateEntry("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80,"","Document"),this.createVertexTemplateEntry("shape=internalStorage;whiteSpace=wrap;html=1;backgroundOutline=1;",
+80,80,"","Internal Storage"),this.createVertexTemplateEntry("shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;",120,80,"","Cube"),this.createVertexTemplateEntry("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80,"","Step"),this.createVertexTemplateEntry("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60,"","Trapezoid"),this.createVertexTemplateEntry("shape=tape;whiteSpace=wrap;html=1;",
+120,100,"","Tape"),this.createVertexTemplateEntry("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;",80,100,"","Note"),this.createVertexTemplateEntry("shape=card;whiteSpace=wrap;html=1;",80,100,"","Card"),this.createVertexTemplateEntry("shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;",120,80,"","Callout",null,null,"bubble chat thought speech message"),this.createVertexTemplateEntry("shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;",
+30,60,"Actor","Actor",!1,null,"user person human stickman"),this.createVertexTemplateEntry("shape=xor;whiteSpace=wrap;html=1;",60,80,"","Or",null,null,"logic or"),this.createVertexTemplateEntry("shape=or;whiteSpace=wrap;html=1;",60,80,"","And",null,null,"logic and"),this.createVertexTemplateEntry("shape=dataStorage;whiteSpace=wrap;html=1;fixedSize=1;",100,80,"","Data Storage"),this.createVertexTemplateEntry("swimlane;startSize=0;",200,200,"","Container",null,null,"container swimlane lane pool group"),
+this.createVertexTemplateEntry("swimlane;",200,200,"Vertical Container","Container",null,null,"container swimlane lane pool group"),this.createVertexTemplateEntry("swimlane;horizontal=0;",200,200,"Horizontal Container","Horizontal Container",null,null,"container swimlane lane pool group"),this.addEntry("list group erd table",function(){var a=new mxCell("List",new mxGeometry(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;");
+a.vertex=!0;a.insert(c.cloneCell(d,"Item 1"));a.insert(c.cloneCell(d,"Item 2"));a.insert(c.cloneCell(d,"Item 3"));return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"List")}),this.addEntry("list item entry value group erd table",function(){return c.createVertexTemplateFromCells([c.cloneCell(d,"List Item")],d.geometry.width,d.geometry.height,"List Item")}),this.addEntry("curve",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,50,50),"curved=1;endArrow=classic;html=1;");
+a.geometry.setTerminalPoint(new mxPoint(0,50),!0);a.geometry.setTerminalPoint(new mxPoint(50,0),!1);a.geometry.points=[new mxPoint(50,50),new mxPoint(0,0)];a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],a.geometry.width,a.geometry.height,"Curve")})),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;startArrow=classic;html=1;",100,100,"","Bidirectional Arrow",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;html=1;",
+50,50,"","Arrow",null,"line lines connector connectors connection connections arrow arrows directional directed"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;",50,50,"","Dashed Line",null,"line lines connector connectors connection connections arrow arrows dashed undirected no"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;",50,50,"","Dotted Line",null,"line lines connector connectors connection connections arrow arrows dotted undirected no"),
+this.createEdgeTemplateEntry("endArrow=none;html=1;",50,50,"","Line",null,"line lines connector connectors connection connections arrow arrows simple undirected plain blank no"),this.createEdgeTemplateEntry("endArrow=classic;startArrow=classic;html=1;",50,50,"","Bidirectional Connector",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("endArrow=classic;html=1;",50,50,"","Directional Connector",null,"line lines connector connectors connection connections arrow arrows directional directed"),
+this.createEdgeTemplateEntry("shape=link;html=1;",100,0,"","Link",null,"line lines connector connectors connection connections arrow arrows link"),this.addEntry("line lines connector connectors connection connections arrow arrows edge title",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(100,0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("Label",
+new mxGeometry(0,0,0,0),"edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);return this.createEdgeTemplateFromCells([a],100,0,"Connector with Label")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge title multiplicity",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(160,
+0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("Label",new mxGeometry(0,0,0,0),"edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);b=new mxCell("Source",new mxGeometry(-1,0,0,0),"edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);return this.createEdgeTemplateFromCells([a],160,0,"Connector with 2 Labels")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge title multiplicity",
+mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(160,0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("Label",new mxGeometry(0,0,0,0),"edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);b=new mxCell("Source",new mxGeometry(-1,0,0,0),"edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;");
+b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);b=new mxCell("Target",new mxGeometry(1,0,0,0),"edgeLabel;resizable=0;html=1;align=right;verticalAlign=bottom;");b.geometry.relative=!0;b.setConnectable(!1);b.vertex=!0;a.insert(b);return this.createEdgeTemplateFromCells([a],160,0,"Connector with 3 Labels")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge shape symbol message mail email",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,
+0,0,0),"endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new mxPoint(100,0),!1);a.geometry.relative=!0;a.edge=!0;var b=new mxCell("",new mxGeometry(0,0,20,14),"shape=message;html=1;outlineConnect=0;");b.geometry.relative=!0;b.vertex=!0;b.geometry.offset=new mxPoint(-10,-7);a.insert(b);return this.createEdgeTemplateFromCells([a],100,0,"Connector with Symbol")}))];this.addPaletteFunctions("general",mxResources.get("general"),null!=a?a:!0,b);this.setCurrentSearchEntryLibrary()};
Sidebar.prototype.addMiscPalette=function(a){var c=this;this.setCurrentSearchEntryLibrary("general","misc");var d=[this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;",100,40,"Title","Title",null,null,"text heading title"),this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;",100,80,"<ul><li>Value 1</li><li>Value 2</li><li>Value 3</li></ul>",
"Unordered List"),this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;",100,80,"<ol><li>Value 1</li><li>Value 2</li><li>Value 3</li></ol>","Ordered List"),this.addDataEntry("table",180,120,"Table 1","7ZjJTsMwEIafJleUhZZybVgucAFewDTT2pLjiewpaXl6xolLVQFqWBJArZRKns2xv5H7y4myvFxdW1HJWyxAR9lllOUWkdpRucpB6yiNVRFlF1GaxvyL0qsPokkTjSthwVCXgrQteBJ6Ca2ndTha6+BwUlR+SOLRu6aSSl7mRcLDWiqC+0rMfLzmTbDPkbB0r569K2Z7hoaEMmBDzQy1FpVTzWRthlS6uBFrXNLmNRtrGpYHlmD14RYbV9jfNWAJZNecUquCZMiYtBhiCWohN2WBTSxc61i81m6J8SBAex9g1h0gL5mU0HcwI2EWXVi+ZVVYrB6EXQAFR4XKENjLJ6bhgm+utM5Ro0du0PgXEVYhqGG+qX1EIiyDYQOY10kbKKMpP4wpj09G0Yh3k7OdbG1+fLqlHI0jy432c4BwVIPr3MD0aw08/YH+nfbbP2N89rZ/324NMsq5xppNqYoCTFfG2V7G454Qjw4c8WoX7wDEx0fiO3/wAyA/O+pAbzqw3m3TELIwOZQTdPZrsnB+4IiHl4UkPiIfWheS5CgMfQvDZEBhSD5xY/7fZyjZf63u7dD0fKv++5B/QRwO5ia8h3mP6sDm9tNeE9v58vcC"),
this.addDataEntry("table",180,120,"Table 2","7ZjBbqMwEIafhmuFISTptbTbS/eyrfbuBie2ZDzITEqyT79jMMlGWVTUBlqVSkTyjGeM+SbDLxPEab67t7yQPyETOojvgji1ANiM8l0qtA6iUGVBfBtEUUi/IPrRMcvq2bDgVhjskxA1CS9cb0XjaRwl7rV3lJIXboj82bluJOa0zVtGw0oqFI8FX7n5ih6CfCVyi4/qj3OFZK/AIFdGWJ+zAq15Uap6sSZCKp098D1ssb1Na7nobW4eKL/00Raqf02/f2FR7DoZ1C4P4F5ALtDuKaRSGUofsWw4hVKojWzTPLyQl41jc8g9IqWBp/p/wnF/wrRlVFz/EivkZtMH9jnMzELxxO1GoHcUoAwKe/dCNFpoa6V1ChpcTQwYdyOEwk9qsW5znwER8ha8B3NYtIaS3NBFmNLwKgkSepqUbHa06XLhFlMwJVr6J7g1BC+xEiX2LWD0tgLOLlC/2Vn9ftfDKGQXLaQxLvpYyHfXCIjpWkNFplRZJkxf2PGrsOcDsU46WV+2aT49690p5xHQzzvRx5NEf3j3j8B+8S0Rg0nE/rRMYyjGsrOVZl+0lRYfphjXnayTabEeXzFY2Ml+Pkn2Y0oGY9+aMbRmLEfUDHZ+EG+bafFFm4m9fiofrHvOD+Ut7eXEaH+AbnSfqK+nCX9A4SDz+DGxnjv51vgX"),
@@ -2466,52 +2469,52 @@ a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new
0,"Use","Dependency",null,"uml dependency use"),this.createEdgeTemplateEntry("endArrow=block;endSize=16;endFill=0;html=1;",160,0,"Extends","Generalization",null,"uml generalization extend"),this.createEdgeTemplateEntry("endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;",160,0,"","Association 2",null,"uml association"),this.createEdgeTemplateEntry("endArrow=open;startArrow=circlePlus;endFill=0;startFill=0;endSize=8;html=1;",160,0,"","Inner Class",null,"uml inner class"),this.createEdgeTemplateEntry("endArrow=open;startArrow=cross;endFill=0;startFill=0;endSize=8;startSize=10;html=1;",
160,0,"","Terminate",null,"uml terminate"),this.createEdgeTemplateEntry("endArrow=block;dashed=1;endFill=0;endSize=12;html=1;",160,0,"","Implementation",null,"uml realization implementation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=0;endSize=24;html=1;",160,0,"","Aggregation 2",null,"uml aggregation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=1;endSize=24;html=1;",160,0,"","Composition 2",null,"uml composition"),this.createEdgeTemplateEntry("endArrow=open;endFill=1;endSize=12;html=1;",
160,0,"","Association 3",null,"uml association")];this.addPaletteFunctions("uml",mxResources.get("uml"),a||!1,f);this.setCurrentSearchEntryLibrary()};Sidebar.prototype.createTitle=function(a){var c=document.createElement("a");c.setAttribute("title",mxResources.get("sidebarTooltip"));c.className="geTitle";mxUtils.write(c,a);return c};
-Sidebar.prototype.createThumb=function(a,c,d,b,f,e,k,g,h){this.graph.labelsVisible=null==e||e;e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.view.scaleAndTranslate(1,0,0);a=this.graph.cloneCells(a);this.editorUi.insertHandler(a,null,this.graph.model,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle);this.graph.addCells(a);a=this.graph.getGraphBounds();g=Math.floor(100*Math.min((c-2*this.thumbBorder)/a.width,(d-2*this.thumbBorder)/a.height))/100;
-this.graph.view.scaleAndTranslate(g,Math.floor((c-a.width*g)/2/g-a.x),Math.floor((d-a.height*g)/2/g-a.y));this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO||null==this.graph.view.getCanvas().ownerSVGElement?(g=this.graph.container.cloneNode(!1),g.innerHTML=this.graph.container.innerHTML):g=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0);this.graph.getModel().clear();mxClient.NO_FO=e;g.style.position="relative";g.style.overflow="hidden";g.style.left=this.thumbBorder+"px";g.style.top=
-this.thumbBorder+"px";g.style.width=c+"px";g.style.height=d+"px";g.style.visibility="";g.style.minWidth="";g.style.minHeight="";b.appendChild(g);this.sidebarTitles&&null!=f&&0!=k&&(b.style.height=this.thumbHeight+0+this.sidebarTitleSize+8+"px",c=document.createElement("div"),c.style.fontSize=this.sidebarTitleSize+"px",c.style.color="#303030",c.style.textAlign="center",c.style.whiteSpace="nowrap",mxClient.IS_IE&&(c.style.height=this.sidebarTitleSize+12+"px"),c.style.paddingTop="4px",mxUtils.write(c,
-f),b.appendChild(c));return a};Sidebar.prototype.createSection=function(a){return mxUtils.bind(this,function(){var c=document.createElement("div");c.setAttribute("title",a);c.style.textOverflow="ellipsis";c.style.whiteSpace="nowrap";c.style.textAlign="center";c.style.overflow="hidden";c.style.width="100%";c.style.padding="14px 0";mxUtils.write(c,a);return c})};
-Sidebar.prototype.createItem=function(a,c,d,b,f,e,k,g){g=null!=g?g:!0;var h=document.createElement("a");h.className="geItem";h.style.overflow="hidden";var l=2*this.thumbBorder;h.style.width=this.thumbWidth+l+"px";h.style.height=this.thumbHeight+l+"px";h.style.padding=this.thumbPadding+"px";mxEvent.addListener(h,"click",function(a){mxEvent.consume(a)});this.createThumb(a,this.thumbWidth,this.thumbHeight,h,c,d,b,f,e);var m=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(h,
-this.createDropHandler(a,!0,k,m),this.createDragPreview(f,e),a,m),this.addClickHandler(h,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(h,this.createDropHandler(a,!1,k,m),this.createDragPreview(f,e),a,m),this.addClickHandler(h,b,a));!mxClient.IS_IOS&&g&&mxEvent.addGestureListeners(h,null,mxUtils.bind(this,function(b){mxEvent.isMouseEvent(b)&&this.showTooltip(h,a,m.width,m.height,c,
-d)}));return h};
+Sidebar.prototype.createThumb=function(a,c,d,b,f,e,k,g,h){this.graph.labelsVisible=null==e||e;e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.view.scaleAndTranslate(1,0,0);this.graph.addCells(a);a=this.graph.getGraphBounds();g=Math.floor(100*Math.min((c-2*this.thumbBorder)/a.width,(d-2*this.thumbBorder)/a.height))/100;this.graph.view.scaleAndTranslate(g,Math.floor((c-a.width*g)/2/g-a.x),Math.floor((d-a.height*g)/2/g-a.y));this.graph.dialect!=mxConstants.DIALECT_SVG||
+mxClient.NO_FO||null==this.graph.view.getCanvas().ownerSVGElement?(g=this.graph.container.cloneNode(!1),g.innerHTML=this.graph.container.innerHTML):g=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0);this.graph.getModel().clear();mxClient.NO_FO=e;g.style.position="relative";g.style.overflow="hidden";g.style.left=this.thumbBorder+"px";g.style.top=this.thumbBorder+"px";g.style.width=c+"px";g.style.height=d+"px";g.style.visibility="";g.style.minWidth="";g.style.minHeight="";b.appendChild(g);
+this.sidebarTitles&&null!=f&&0!=k&&(b.style.height=this.thumbHeight+0+this.sidebarTitleSize+8+"px",c=document.createElement("div"),c.style.fontSize=this.sidebarTitleSize+"px",c.style.color="#303030",c.style.textAlign="center",c.style.whiteSpace="nowrap",mxClient.IS_IE&&(c.style.height=this.sidebarTitleSize+12+"px"),c.style.paddingTop="4px",mxUtils.write(c,f),b.appendChild(c));return a};
+Sidebar.prototype.createSection=function(a){return mxUtils.bind(this,function(){var c=document.createElement("div");c.setAttribute("title",a);c.style.textOverflow="ellipsis";c.style.whiteSpace="nowrap";c.style.textAlign="center";c.style.overflow="hidden";c.style.width="100%";c.style.padding="14px 0";mxUtils.write(c,a);return c})};
+Sidebar.prototype.createItem=function(a,c,d,b,f,e,k,g){g=null!=g?g:!0;var h=document.createElement("a");h.className="geItem";h.style.overflow="hidden";var l=2*this.thumbBorder;h.style.width=this.thumbWidth+l+"px";h.style.height=this.thumbHeight+l+"px";h.style.padding=this.thumbPadding+"px";mxEvent.addListener(h,"click",function(a){mxEvent.consume(a)});a=this.graph.cloneCells(a);this.editorUi.insertHandler(a,null,this.graph.model,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,
+!0,!0);this.createThumb(a,this.thumbWidth,this.thumbHeight,h,c,d,b,f,e);var m=new mxRectangle(0,0,f,e);1<a.length||a[0].vertex?(b=this.createDragSource(h,this.createDropHandler(a,!0,k,m),this.createDragPreview(f,e),a,m),this.addClickHandler(h,b,a),b.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(b=this.createDragSource(h,this.createDropHandler(a,!1,k,m),this.createDragPreview(f,e),a,m),this.addClickHandler(h,b,a));
+!mxClient.IS_IOS&&g&&mxEvent.addGestureListeners(h,null,mxUtils.bind(this,function(b){mxEvent.isMouseEvent(b)&&this.showTooltip(h,a,m.width,m.height,c,d)}));return h};
Sidebar.prototype.updateShapes=function(a,c){var d=this.editorUi.editor.graph,b=d.getCellStyle(a),f=[];d.model.beginUpdate();try{for(var e=d.getModel().getStyle(a),k="shadow dashed dashPattern fontFamily fontSize fontColor align startFill startSize endFill endSize strokeColor strokeWidth fillColor gradientColor html part noEdgeStyle edgeStyle elbow childLayout recursiveResize container collapsible connectable comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),g=
0;g<c.length;g++){var h=c[g];if(d.getModel().isVertex(h)==d.getModel().isVertex(a)||d.getModel().isEdge(h)==d.getModel().isEdge(a)){var l=d.getCurrentCellStyle(c[g]);d.getModel().setStyle(h,e);if("1"==mxUtils.getValue(l,"composite","0"))for(var m=d.model.getChildCount(h);0<=m;m--)d.model.remove(d.model.getChildAt(h,m));"umlLifeline"==l[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=b[mxConstants.STYLE_SHAPE]&&(d.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[h]),d.setCellStyles("participant",b[mxConstants.STYLE_SHAPE],
[h]));for(m=0;m<k.length;m++){var p=l[k[m]];null!=p&&d.setCellStyles(k[m],p,[h])}f.push(h)}}}finally{d.model.endUpdate()}return f};
Sidebar.prototype.createDropHandler=function(a,c,d,b){d=null!=d?d:!0;return mxUtils.bind(this,function(f,e,k,g,h,l){for(l=l?null:mxEvent.isTouchEvent(e)||mxEvent.isPenEvent(e)?document.elementFromPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)):mxEvent.getSource(e);null!=l&&l!=this.container;)l=l.parentNode;if(null==l&&f.isEnabled()){a=f.getImportableCells(a);if(0<a.length){f.stopEditing();l=null==k||mxEvent.isAltDown(e)?!1:f.isValidDropTarget(k,a,e);var m=null;null==k||l||(k=null);if(!f.isCellLocked(k||
-f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);h=Math.round(h);if(c&&f.isSplitTarget(k,a,e)){var p=f.view.scale,n=f.view.translate,r=(g+n.x)*p,t=(h+n.y)*p,u=f.cloneCells(a);f.splitEdge(k,u,null,g-b.width/2,h-b.height/2,r,t);m=u}else 0<a.length&&(m=f.importCells(a,g,h,k));if(null!=f.layoutManager){var v=f.layoutManager.getLayout(k);if(null!=v)for(p=f.view.scale,n=f.view.translate,r=(g+n.x)*p,t=(h+n.y)*p,k=0;k<m.length;k++)v.moveCell(m[k],r,t)}!d||null!=e&&mxEvent.isShiftDown(e)||
-f.fireEvent(new mxEventObject("cellsInserted","cells",m))}catch(w){this.editorUi.handleError(w)}finally{f.model.endUpdate()}null!=m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m));f.editAfterInsert&&null!=e&&mxEvent.isMouseEvent(e)&&null!=m&&1==m.length&&window.setTimeout(function(){f.startEditing(m[0])},0)}}mxEvent.consume(e)}})};
+f.getDefaultParent())){f.model.beginUpdate();try{g=Math.round(g);h=Math.round(h);if(c&&f.isSplitTarget(k,a,e)){var p=f.view.scale,n=f.view.translate,q=(g+n.x)*p,t=(h+n.y)*p,u=f.cloneCells(a);f.splitEdge(k,u,null,g-b.width/2,h-b.height/2,q,t);m=u}else 0<a.length&&(m=f.importCells(a,g,h,k));if(null!=f.layoutManager){var v=f.layoutManager.getLayout(k);if(null!=v)for(p=f.view.scale,n=f.view.translate,q=(g+n.x)*p,t=(h+n.y)*p,k=0;k<m.length;k++)v.moveCell(m[k],q,t)}!d||null!=e&&mxEvent.isShiftDown(e)||
+f.fireEvent(new mxEventObject("cellsInserted","cells",m))}catch(x){this.editorUi.handleError(x)}finally{f.model.endUpdate()}null!=m&&0<m.length&&(f.scrollCellToVisible(m[0]),f.setSelectionCells(m));f.editAfterInsert&&null!=e&&mxEvent.isMouseEvent(e)&&null!=m&&1==m.length&&window.setTimeout(function(){f.startEditing(m[0])},0)}}mxEvent.consume(e)}})};
Sidebar.prototype.createDragPreview=function(a,c){var d=document.createElement("div");d.className="geDragPreview";d.style.width=a+"px";d.style.height=c+"px";return d};
-Sidebar.prototype.dropAndConnect=function(a,c,d,b,f){var e=this.getDropAndConnectGeometry(a,c[b],d,c),k=[];if(null!=e){var g=this.editorUi.editor.graph,h=null;g.model.beginUpdate();try{var l=g.getCellGeometry(a),m=g.getCellGeometry(c[b]),p=g.model.getParent(a),n=!0;if(null!=g.layoutManager){var r=g.layoutManager.getLayout(p);null!=r&&r.constructor==mxStackLayout&&(n=!1)}var k=g.model.isEdge(a)?null:g.view.getState(p),t=r=0;if(null!=k){var u=k.origin,r=u.x,t=u.y,v=e.getTerminalPoint(!1);null!=v&&(v.x+=
-u.x,v.y+=u.y)}var w=!g.isTableRow(a)&&!g.isTableCell(a)&&(g.model.isEdge(a)||null!=l&&!l.relative&&n),x=g.getCellAt((e.x+r+g.view.translate.x)*g.view.scale,(e.y+t+g.view.translate.y)*g.view.scale,null,null,null,function(a,b,c){return!g.isContainer(a.cell)});if(null!=x&&x!=p)k=g.view.getState(x),null!=k&&(u=k.origin,p=x,w=!0,g.model.isEdge(a)||(e.x-=u.x-r,e.y-=u.y-t));else if(!n||g.isTableRow(a)||g.isTableCell(a))e.x+=r,e.y+=t;r=m.x;t=m.y;g.model.isEdge(c[b])&&(t=r=0);k=c=g.importCells(c,e.x-(w?r:
-0),e.y-(w?t:0),w?p:null);if(g.model.isEdge(a))g.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(g.model.isEdge(c[b])){g.model.setTerminal(c[b],a,!0);var F=g.getCellGeometry(c[b]);F.points=null;if(null!=F.getTerminalPoint(!1))F.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(w&&g.model.isVertex(p)){var D=g.view.getState(p),u=D.cell!=g.view.currentRoot?D.origin:new mxPoint(0,0);g.cellsMoved(c,u.x,u.y,null,null,!0)}}else m=g.getCellGeometry(c[b]),r=e.x-Math.round(m.x),t=e.y-Math.round(m.y),
-e.x=Math.round(m.x),e.y=Math.round(m.y),g.model.setGeometry(c[b],e),g.cellsMoved(c,r,t,null,null,!0),k=c.slice(),h=1==k.length?k[0]:null,c.push(g.insertEdge(null,null,"",a,c[b],g.createCurrentEdgeStyle()));null!=f&&mxEvent.isShiftDown(f)||g.fireEvent(new mxEventObject("cellsInserted","cells",c))}catch(E){this.editorUi.handleError(E)}finally{g.model.endUpdate()}g.editAfterInsert&&null!=f&&mxEvent.isMouseEvent(f)&&null!=h&&window.setTimeout(function(){g.startEditing(h)},0)}return k};
+Sidebar.prototype.dropAndConnect=function(a,c,d,b,f){var e=this.getDropAndConnectGeometry(a,c[b],d,c),k=[];if(null!=e){var g=this.editorUi.editor.graph,h=null;g.model.beginUpdate();try{var l=g.getCellGeometry(a),m=g.getCellGeometry(c[b]),p=g.model.getParent(a),n=!0;if(null!=g.layoutManager){var q=g.layoutManager.getLayout(p);null!=q&&q.constructor==mxStackLayout&&(n=!1)}var k=g.model.isEdge(a)?null:g.view.getState(p),t=q=0;if(null!=k){var u=k.origin,q=u.x,t=u.y,v=e.getTerminalPoint(!1);null!=v&&(v.x+=
+u.x,v.y+=u.y)}var x=!g.isTableRow(a)&&!g.isTableCell(a)&&(g.model.isEdge(a)||null!=l&&!l.relative&&n),y=g.getCellAt((e.x+q+g.view.translate.x)*g.view.scale,(e.y+t+g.view.translate.y)*g.view.scale,null,null,null,function(a,b,c){return!g.isContainer(a.cell)});if(null!=y&&y!=p)k=g.view.getState(y),null!=k&&(u=k.origin,p=y,x=!0,g.model.isEdge(a)||(e.x-=u.x-q,e.y-=u.y-t));else if(!n||g.isTableRow(a)||g.isTableCell(a))e.x+=q,e.y+=t;q=m.x;t=m.y;g.model.isEdge(c[b])&&(t=q=0);k=c=g.importCells(c,e.x-(x?q:
+0),e.y-(x?t:0),x?p:null);if(g.model.isEdge(a))g.model.setTerminal(a,c[b],d==mxConstants.DIRECTION_NORTH);else if(g.model.isEdge(c[b])){g.model.setTerminal(c[b],a,!0);var G=g.getCellGeometry(c[b]);G.points=null;if(null!=G.getTerminalPoint(!1))G.setTerminalPoint(e.getTerminalPoint(!1),!1);else if(x&&g.model.isVertex(p)){var E=g.view.getState(p),u=E.cell!=g.view.currentRoot?E.origin:new mxPoint(0,0);g.cellsMoved(c,u.x,u.y,null,null,!0)}}else m=g.getCellGeometry(c[b]),q=e.x-Math.round(m.x),t=e.y-Math.round(m.y),
+e.x=Math.round(m.x),e.y=Math.round(m.y),g.model.setGeometry(c[b],e),g.cellsMoved(c,q,t,null,null,!0),k=c.slice(),h=1==k.length?k[0]:null,c.push(g.insertEdge(null,null,"",a,c[b],g.createCurrentEdgeStyle()));null!=f&&mxEvent.isShiftDown(f)||g.fireEvent(new mxEventObject("cellsInserted","cells",c))}catch(F){this.editorUi.handleError(F)}finally{g.model.endUpdate()}g.editAfterInsert&&null!=f&&mxEvent.isMouseEvent(f)&&null!=h&&window.setTimeout(function(){g.startEditing(h)},0)}return k};
Sidebar.prototype.getDropAndConnectGeometry=function(a,c,d,b){var f=this.editorUi.editor.graph,e=f.view,k=1<b.length,g=f.getCellGeometry(a);b=f.getCellGeometry(c);null!=g&&null!=b&&(b=b.clone(),f.model.isEdge(a)?(a=f.view.getState(a),g=a.absolutePoints,c=g[0],f=g[g.length-1],d==mxConstants.DIRECTION_NORTH?(b.x=c.x/e.scale-e.translate.x-b.width/2,b.y=c.y/e.scale-e.translate.y-b.height/2):(b.x=f.x/e.scale-e.translate.x-b.width/2,b.y=f.y/e.scale-e.translate.y-b.height/2)):(g.relative&&(a=f.view.getState(a),
g=g.clone(),g.x=(a.x-e.translate.x)/e.scale,g.y=(a.y-e.translate.y)/e.scale),e=f.defaultEdgeLength,f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=b.getTerminalPoint(!1)?(c=b.getTerminalPoint(!0),f=b.getTerminalPoint(!1),e=f.x-c.x,c=f.y-c.y,e=Math.sqrt(e*e+c*c),b.x=g.getCenterX(),b.y=g.getCenterY(),b.width=1,b.height=1,d==mxConstants.DIRECTION_NORTH?(b.height=e,b.y=g.y-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1)):d==mxConstants.DIRECTION_EAST?(b.width=e,b.x=g.x+g.width,b.setTerminalPoint(new mxPoint(b.x+
b.width,b.y),!1)):d==mxConstants.DIRECTION_SOUTH?(b.height=e,b.y=g.y+g.height,b.setTerminalPoint(new mxPoint(b.x,b.y+b.height),!1)):d==mxConstants.DIRECTION_WEST&&(b.width=e,b.x=g.x-e,b.setTerminalPoint(new mxPoint(b.x,b.y),!1))):(!k&&45<b.width&&45<b.height&&45<g.width&&45<g.height&&(b.width*=g.height/b.height,b.height=g.height),b.x=g.x+g.width/2-b.width/2,b.y=g.y+g.height/2-b.height/2,d==mxConstants.DIRECTION_NORTH?b.y=b.y-g.height/2-b.height/2-e:d==mxConstants.DIRECTION_EAST?b.x=b.x+g.width/2+
b.width/2+e:d==mxConstants.DIRECTION_SOUTH?b.y=b.y+g.height/2+b.height/2+e:d==mxConstants.DIRECTION_WEST&&(b.x=b.x-g.width/2-b.width/2-e),f.model.isEdge(c)&&null!=b.getTerminalPoint(!0)&&null!=c.getTerminal(!1)&&(g=f.getCellGeometry(c.getTerminal(!1)),null!=g&&(d==mxConstants.DIRECTION_NORTH?(b.x-=g.getCenterX(),b.y-=g.getCenterY()+g.height/2):d==mxConstants.DIRECTION_EAST?(b.x-=g.getCenterX()-g.width/2,b.y-=g.getCenterY()):d==mxConstants.DIRECTION_SOUTH?(b.x-=g.getCenterX(),b.y-=g.getCenterY()-g.height/
2):d==mxConstants.DIRECTION_WEST&&(b.x-=g.getCenterX()+g.width/2,b.y-=g.getCenterY()))))));return b};Sidebar.prototype.isDropStyleEnabled=function(a,c){var d=!0;if(null!=c&&1==a.length){var b=this.graph.getCellStyle(a[c]);null!=b&&(d=mxUtils.getValue(b,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(b,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE)}return d};
Sidebar.prototype.isDropStyleTargetIgnored=function(a){return this.graph.isSwimlane(a.cell)||this.graph.isTableCell(a.cell)||this.graph.isTableRow(a.cell)||this.graph.isTable(a.cell)};
-Sidebar.prototype.createDragSource=function(a,c,d,b,f){function e(a,b){var c;c=mxUtils.createImage(a.src);c.style.width=a.width+"px";c.style.height=a.height+"px";null!=b&&c.setAttribute("title",b);mxUtils.setOpacity(c,a==this.refreshTarget?30:20);c.style.position="absolute";c.style.cursor="crosshair";return c}function k(a,b,c,d){null!=d.parentNode&&(mxUtils.contains(c,a,b)?(mxUtils.setOpacity(d,100),M=d):mxUtils.setOpacity(d,d==y?30:20));return c}for(var g=this.editorUi,h=g.editor.graph,l=null,m=
-null,p=this,n=0;n<b.length&&(null==m&&h.model.isVertex(b[n])?m=n:null==l&&h.model.isEdge(b[n])&&null==h.model.getTerminal(b[n],!0)&&(l=n),null==m||null==l);n++);var r=this.isDropStyleEnabled(b,m),t=mxUtils.makeDraggable(a,h,mxUtils.bind(this,function(a,d,e,g,f){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=x&&M==y){var k=a.isCellSelected(x.cell)?a.getSelectionCells():[x.cell],k=this.updateShapes(a.model.isEdge(x.cell)?b[0]:b[m],k);a.setSelectionCells(k)}else null!=
-b&&null!=M&&null!=v&&M!=y?(k=a.model.isEdge(v.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(v.cell,b,N,k,d))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,h.autoscroll,!0,!0);h.addListener(mxEvent.ESCAPE,function(a,b){t.isActive()&&t.reset()});var u=t.mouseDown;t.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(h.stopEditing(),u.apply(this,arguments))};var v=null,w=
-null,x=null,F=!1,D=e(this.triangleUp,mxResources.get("connect")),E=e(this.triangleRight,mxResources.get("connect")),z=e(this.triangleDown,mxResources.get("connect")),G=e(this.triangleLeft,mxResources.get("connect")),y=e(this.refreshTarget,mxResources.get("replace")),H=null,L=e(this.roundDrop),P=e(this.roundDrop),N=mxConstants.DIRECTION_NORTH,M=null,T=t.createPreviewElement;t.createPreviewElement=function(a){var b=T.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents="none");this.previewElementWidth=
-b.style.width;this.previewElementHeight=b.style.height;return b};var aa=t.dragEnter;t.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");aa.apply(this,arguments)};var ba=t.dragExit;t.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");ba.apply(this,arguments)};t.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=M&&this.currentGuide.hide();if(null!=this.previewElement){var d=a.view;if(null!=x&&M==
-y)this.previewElement.style.display=a.model.isEdge(x.cell)?"none":"",this.previewElement.style.left=x.x+"px",this.previewElement.style.top=x.y+"px",this.previewElement.style.width=x.width+"px",this.previewElement.style.height=x.height+"px";else if(null!=v&&null!=M){null!=t.currentHighlight&&null!=t.currentHighlight.state&&t.currentHighlight.hide();var e=a.model.isEdge(v.cell)||null==l?m:l,g=p.getDropAndConnectGeometry(v.cell,b[e],N,b),k=a.model.isEdge(v.cell)?null:a.getCellGeometry(v.cell),h=a.getCellGeometry(b[e]),
-n=a.model.getParent(v.cell),r=d.translate.x*d.scale,u=d.translate.y*d.scale;null!=k&&!k.relative&&a.model.isVertex(n)&&n!=d.currentRoot&&(u=d.getState(n),r=u.x,u=u.y);k=h.x;h=h.y;a.model.isEdge(b[e])&&(h=k=0);this.previewElement.style.left=(g.x-k)*d.scale+r+"px";this.previewElement.style.top=(g.y-h)*d.scale+u+"px";1==b.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.scale+"px");this.previewElement.style.display=""}else null!=t.currentHighlight.state&&
-a.model.isEdge(t.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var U=(new Date).getTime(),S=0,Q=null,R=this.editorUi.editor.graph.getCellStyle(b[0]);
-t.getDropTarget=mxUtils.bind(this,function(a,c,d,e){var g=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d,null,null,null,function(b,c,d){return a.isContainer(b.cell)});if(null!=g&&!this.graph.isCellConnectable(g)&&!this.graph.model.isEdge(g)){var f=this.graph.getModel().getParent(g);this.graph.getModel().isVertex(f)&&this.graph.isCellConnectable(f)&&(g=f)}a.isCellLocked(g)&&(g=null);var h=a.view.getState(g),f=M=null;Q!=h?(U=(new Date).getTime(),S=0,Q=h,null!=this.updateThread&&window.clearTimeout(this.updateThread),
-null!=h&&(this.updateThread=window.setTimeout(function(){null==M&&(Q=h,t.getDropTarget(a,c,d,e))},this.dropTargetDelay+10))):S=(new Date).getTime()-U;if(r&&2500>S&&null!=h&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(h.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(R,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(h.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,
-mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(R,mxConstants.STYLE_SHAPE)||1500<S||a.model.isEdge(h.cell))&&S>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(h)&&(a.model.isVertex(h.cell)&&null!=m||a.model.isEdge(h.cell)&&a.model.isEdge(b[0]))){x=h;var l=a.model.isEdge(h.cell)?a.view.getPoint(h):new mxPoint(h.getCenterX(),h.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);
-y.style.left=Math.floor(l.x)+"px";y.style.top=Math.floor(l.y)+"px";null==H&&(a.container.appendChild(y),H=y.parentNode);k(c,d,l,y)}else null==x||!mxUtils.contains(x,c,d)||1500<S&&!mxEvent.isShiftDown(e)?(x=null,null!=H&&(y.parentNode.removeChild(y),H=null)):null!=x&&null!=H&&(l=a.model.isEdge(x.cell)?a.view.getPoint(x):new mxPoint(x.getCenterX(),x.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),k(c,
-d,l,y));if(F&&null!=v&&!mxEvent.isAltDown(e)&&null==M){f=mxRectangle.fromRectangle(v);if(a.model.isEdge(v.cell)){var n=v.absolutePoints;null!=L.parentNode&&(l=n[0],f.add(k(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=P.parentNode&&(n=n[n.length-1],f.add(k(c,d,new mxRectangle(n.x-this.roundDrop.width/2,n.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),P)))}else l=mxRectangle.fromRectangle(v),
-null!=v.shape&&null!=v.shape.boundingBox&&(l=mxRectangle.fromRectangle(v.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(v.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.height+=n.verticalOffset,null!=n.rotationShape&&null!=n.rotationShape.node&&"hidden"!=n.rotationShape.node.style.visibility&&"none"!=n.rotationShape.node.style.display&&null!=n.rotationShape.boundingBox&&
-l.add(n.rotationShape.boundingBox)),f.add(k(c,d,new mxRectangle(v.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),D)),f.add(k(c,d,new mxRectangle(l.x+l.width,v.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),E)),f.add(k(c,d,new mxRectangle(v.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),z)),f.add(k(c,d,new mxRectangle(l.x-this.triangleLeft.width,
-v.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),G));null!=f&&f.grow(10)}N=mxConstants.DIRECTION_NORTH;M==E?N=mxConstants.DIRECTION_EAST:M==z||M==P?N=mxConstants.DIRECTION_SOUTH:M==G&&(N=mxConstants.DIRECTION_WEST);null!=x&&M==y&&(h=x);l=(null==m||a.isCellConnectable(b[m]))&&(a.model.isEdge(g)&&null!=m||a.model.isVertex(g)&&a.isCellConnectable(g));if(null!=v&&5E3<=S||v!=h&&(null==f||!mxUtils.contains(f,c,d)||500<S&&null==M&&l))if(F=!1,v=5E3>S&&S>this.dropTargetDelay||
-a.model.isEdge(g)?h:null,null!=v&&l){f=[L,P,D,E,z,G];for(l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);a.model.isEdge(g)?(n=h.absolutePoints,null!=n&&(l=n[0],n=n[n.length-1],f=a.tolerance,new mxRectangle(c-f,d-f,2*f,2*f),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",P.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",P.style.top=Math.floor(n.y-this.roundDrop.height/2)+"px",null==a.model.getTerminal(g,
-!0)&&a.container.appendChild(L),null==a.model.getTerminal(g,!1)&&a.container.appendChild(P))):(l=mxRectangle.fromRectangle(h),null!=h.shape&&null!=h.shape.boundingBox&&(l=mxRectangle.fromRectangle(h.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(h.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.height+=n.verticalOffset,null!=n.rotationShape&&null!=n.rotationShape.node&&
-"hidden"!=n.rotationShape.node.style.visibility&&"none"!=n.rotationShape.node.style.display&&null!=n.rotationShape.boundingBox&&l.add(n.rotationShape.boundingBox)),D.style.left=Math.floor(h.getCenterX()-this.triangleUp.width/2)+"px",D.style.top=Math.floor(l.y-this.triangleUp.height)+"px",E.style.left=Math.floor(l.x+l.width)+"px",E.style.top=Math.floor(h.getCenterY()-this.triangleRight.height/2)+"px",z.style.left=D.style.left,z.style.top=Math.floor(l.y+l.height)+"px",G.style.left=Math.floor(l.x-this.triangleLeft.width)+
-"px",G.style.top=E.style.top,"eastwest"!=h.style.portConstraint&&(a.container.appendChild(D),a.container.appendChild(z)),a.container.appendChild(E),a.container.appendChild(G));null!=h&&(w=a.selectionCellsHandler.getHandler(h.cell),null!=w&&null!=w.setHandlesVisible&&w.setHandlesVisible(!1));F=!0}else for(f=[L,P,D,E,z,G],l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);F||null==w||w.setHandlesVisible(!0);g=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=x&&M==y?null:
-mxDragSource.prototype.getDropTarget.apply(this,arguments);f=a.getModel();if(null!=g&&(null!=M||!a.isSplitTarget(g,b,e))){for(;null!=g&&!a.isValidDropTarget(g,b,e)&&f.isVertex(f.getParent(g));)g=f.getParent(g);null!=g&&(a.view.currentRoot==g||!a.isValidRoot(g)&&0==a.getModel().getChildCount(g)||a.isCellLocked(g)||f.isEdge(g)||!a.isValidDropTarget(g,b,e))&&(g=null)}return g});t.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var a=[L,P,y,D,E,z,G],b=0;b<a.length;b++)null!=
-a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=v&&null!=w&&w.reset();M=H=x=v=w=null};return t};
+Sidebar.prototype.createDragSource=function(a,c,d,b,f){function e(a,b){var c;c=mxUtils.createImage(a.src);c.style.width=a.width+"px";c.style.height=a.height+"px";null!=b&&c.setAttribute("title",b);mxUtils.setOpacity(c,a==this.refreshTarget?30:20);c.style.position="absolute";c.style.cursor="crosshair";return c}function k(a,b,c,d){null!=d.parentNode&&(mxUtils.contains(c,a,b)?(mxUtils.setOpacity(d,100),M=d):mxUtils.setOpacity(d,d==z?30:20));return c}for(var g=this.editorUi,h=g.editor.graph,l=null,m=
+null,p=this,n=0;n<b.length&&(null==m&&h.model.isVertex(b[n])?m=n:null==l&&h.model.isEdge(b[n])&&null==h.model.getTerminal(b[n],!0)&&(l=n),null==m||null==l);n++);var q=this.isDropStyleEnabled(b,m),t=mxUtils.makeDraggable(a,h,mxUtils.bind(this,function(a,d,e,g,f){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=b&&null!=y&&M==z){var k=a.isCellSelected(y.cell)?a.getSelectionCells():[y.cell],k=this.updateShapes(a.model.isEdge(y.cell)?b[0]:b[m],k);a.setSelectionCells(k)}else null!=
+b&&null!=M&&null!=v&&M!=z?(k=a.model.isEdge(v.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(v.cell,b,N,k,d))):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),d,0,0,h.autoscroll,!0,!0);h.addListener(mxEvent.ESCAPE,function(a,b){t.isActive()&&t.reset()});var u=t.mouseDown;t.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||(h.stopEditing(),u.apply(this,arguments))};var v=null,x=
+null,y=null,G=!1,E=e(this.triangleUp,mxResources.get("connect")),F=e(this.triangleRight,mxResources.get("connect")),A=e(this.triangleDown,mxResources.get("connect")),I=e(this.triangleLeft,mxResources.get("connect")),z=e(this.refreshTarget,mxResources.get("replace")),H=null,L=e(this.roundDrop),P=e(this.roundDrop),N=mxConstants.DIRECTION_NORTH,M=null,Q=t.createPreviewElement;t.createPreviewElement=function(a){var b=Q.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents="none");this.previewElementWidth=
+b.style.width;this.previewElementHeight=b.style.height;return b};var Z=t.dragEnter;t.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");Z.apply(this,arguments)};var aa=t.dragExit;t.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");aa.apply(this,arguments)};t.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=M&&this.currentGuide.hide();if(null!=this.previewElement){var d=a.view;if(null!=y&&M==z)this.previewElement.style.display=
+a.model.isEdge(y.cell)?"none":"",this.previewElement.style.left=y.x+"px",this.previewElement.style.top=y.y+"px",this.previewElement.style.width=y.width+"px",this.previewElement.style.height=y.height+"px";else if(null!=v&&null!=M){null!=t.currentHighlight&&null!=t.currentHighlight.state&&t.currentHighlight.hide();var e=a.model.isEdge(v.cell)||null==l?m:l,g=p.getDropAndConnectGeometry(v.cell,b[e],N,b),k=a.model.isEdge(v.cell)?null:a.getCellGeometry(v.cell),h=a.getCellGeometry(b[e]),n=a.model.getParent(v.cell),
+q=d.translate.x*d.scale,u=d.translate.y*d.scale;null!=k&&!k.relative&&a.model.isVertex(n)&&n!=d.currentRoot&&(u=d.getState(n),q=u.x,u=u.y);k=h.x;h=h.y;a.model.isEdge(b[e])&&(h=k=0);this.previewElement.style.left=(g.x-k)*d.scale+q+"px";this.previewElement.style.top=(g.y-h)*d.scale+u+"px";1==b.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.scale+"px");this.previewElement.style.display=""}else null!=t.currentHighlight.state&&a.model.isEdge(t.currentHighlight.state.cell)?
+(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-f.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-f.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var T=(new Date).getTime(),S=0,R=null,W=this.editorUi.editor.graph.getCellStyle(b[0]);t.getDropTarget=mxUtils.bind(this,function(a,
+c,d,e){var g=mxEvent.isAltDown(e)||null==b?null:a.getCellAt(c,d,null,null,null,function(b,c,d){return a.isContainer(b.cell)});if(null!=g&&!this.graph.isCellConnectable(g)&&!this.graph.model.isEdge(g)){var f=this.graph.getModel().getParent(g);this.graph.getModel().isVertex(f)&&this.graph.isCellConnectable(f)&&(g=f)}a.isCellLocked(g)&&(g=null);var h=a.view.getState(g),f=M=null;R!=h?(T=(new Date).getTime(),S=0,R=h,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=h&&(this.updateThread=
+window.setTimeout(function(){null==M&&(R=h,t.getDropTarget(a,c,d,e))},this.dropTargetDelay+10))):S=(new Date).getTime()-T;if(q&&2500>S&&null!=h&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(h.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(W,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(h.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(h.style,mxConstants.STYLE_GRADIENTCOLOR,
+mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(W,mxConstants.STYLE_SHAPE)||1500<S||a.model.isEdge(h.cell))&&S>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(h)&&(a.model.isVertex(h.cell)&&null!=m||a.model.isEdge(h.cell)&&a.model.isEdge(b[0]))){y=h;var l=a.model.isEdge(h.cell)?a.view.getPoint(h):new mxPoint(h.getCenterX(),h.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);z.style.left=
+Math.floor(l.x)+"px";z.style.top=Math.floor(l.y)+"px";null==H&&(a.container.appendChild(z),H=z.parentNode);k(c,d,l,z)}else null==y||!mxUtils.contains(y,c,d)||1500<S&&!mxEvent.isShiftDown(e)?(y=null,null!=H&&(z.parentNode.removeChild(z),H=null)):null!=y&&null!=H&&(l=a.model.isEdge(y.cell)?a.view.getPoint(y):new mxPoint(y.getCenterX(),y.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),k(c,d,l,z));if(G&&
+null!=v&&!mxEvent.isAltDown(e)&&null==M){f=mxRectangle.fromRectangle(v);if(a.model.isEdge(v.cell)){var n=v.absolutePoints;null!=L.parentNode&&(l=n[0],f.add(k(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=P.parentNode&&(n=n[n.length-1],f.add(k(c,d,new mxRectangle(n.x-this.roundDrop.width/2,n.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),P)))}else l=mxRectangle.fromRectangle(v),null!=v.shape&&
+null!=v.shape.boundingBox&&(l=mxRectangle.fromRectangle(v.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(v.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.height+=n.verticalOffset,null!=n.rotationShape&&null!=n.rotationShape.node&&"hidden"!=n.rotationShape.node.style.visibility&&"none"!=n.rotationShape.node.style.display&&null!=n.rotationShape.boundingBox&&l.add(n.rotationShape.boundingBox)),
+f.add(k(c,d,new mxRectangle(v.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),E)),f.add(k(c,d,new mxRectangle(l.x+l.width,v.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),F)),f.add(k(c,d,new mxRectangle(v.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),A)),f.add(k(c,d,new mxRectangle(l.x-this.triangleLeft.width,v.getCenterY()-this.triangleLeft.height/
+2,this.triangleLeft.width,this.triangleLeft.height),I));null!=f&&f.grow(10)}N=mxConstants.DIRECTION_NORTH;M==F?N=mxConstants.DIRECTION_EAST:M==A||M==P?N=mxConstants.DIRECTION_SOUTH:M==I&&(N=mxConstants.DIRECTION_WEST);null!=y&&M==z&&(h=y);l=(null==m||a.isCellConnectable(b[m]))&&(a.model.isEdge(g)&&null!=m||a.model.isVertex(g)&&a.isCellConnectable(g));if(null!=v&&5E3<=S||v!=h&&(null==f||!mxUtils.contains(f,c,d)||500<S&&null==M&&l))if(G=!1,v=5E3>S&&S>this.dropTargetDelay||a.model.isEdge(g)?h:null,null!=
+v&&l){f=[L,P,E,F,A,I];for(l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);a.model.isEdge(g)?(n=h.absolutePoints,null!=n&&(l=n[0],n=n[n.length-1],f=a.tolerance,new mxRectangle(c-f,d-f,2*f,2*f),L.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",P.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",P.style.top=Math.floor(n.y-this.roundDrop.height/2)+"px",null==a.model.getTerminal(g,!0)&&a.container.appendChild(L),
+null==a.model.getTerminal(g,!1)&&a.container.appendChild(P))):(l=mxRectangle.fromRectangle(h),null!=h.shape&&null!=h.shape.boundingBox&&(l=mxRectangle.fromRectangle(h.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(h.cell),null!=n&&(l.x-=n.horizontalOffset/2,l.y-=n.verticalOffset/2,l.width+=n.horizontalOffset,l.height+=n.verticalOffset,null!=n.rotationShape&&null!=n.rotationShape.node&&"hidden"!=n.rotationShape.node.style.visibility&&
+"none"!=n.rotationShape.node.style.display&&null!=n.rotationShape.boundingBox&&l.add(n.rotationShape.boundingBox)),E.style.left=Math.floor(h.getCenterX()-this.triangleUp.width/2)+"px",E.style.top=Math.floor(l.y-this.triangleUp.height)+"px",F.style.left=Math.floor(l.x+l.width)+"px",F.style.top=Math.floor(h.getCenterY()-this.triangleRight.height/2)+"px",A.style.left=E.style.left,A.style.top=Math.floor(l.y+l.height)+"px",I.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",I.style.top=F.style.top,
+"eastwest"!=h.style.portConstraint&&(a.container.appendChild(E),a.container.appendChild(A)),a.container.appendChild(F),a.container.appendChild(I));null!=h&&(x=a.selectionCellsHandler.getHandler(h.cell),null!=x&&null!=x.setHandlesVisible&&x.setHandlesVisible(!1));G=!0}else for(f=[L,P,E,F,A,I],l=0;l<f.length;l++)null!=f[l].parentNode&&f[l].parentNode.removeChild(f[l]);G||null==x||x.setHandlesVisible(!0);g=mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)||null!=y&&M==z?null:mxDragSource.prototype.getDropTarget.apply(this,
+arguments);f=a.getModel();if(null!=g&&(null!=M||!a.isSplitTarget(g,b,e))){for(;null!=g&&!a.isValidDropTarget(g,b,e)&&f.isVertex(f.getParent(g));)g=f.getParent(g);null!=g&&(a.view.currentRoot==g||!a.isValidRoot(g)&&0==a.getModel().getChildCount(g)||a.isCellLocked(g)||f.isEdge(g)||!a.isValidDropTarget(g,b,e))&&(g=null)}return g});t.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,arguments);for(var a=[L,P,z,E,F,A,I],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);
+null!=v&&null!=x&&x.reset();M=H=y=v=x=null};return t};
Sidebar.prototype.itemClicked=function(a,c,d,b){b=this.editorUi.editor.graph;b.container.focus();if(mxEvent.isAltDown(d)&&1==b.getSelectionCount()&&b.model.isVertex(b.getSelectionCell())){c=null;for(var f=0;f<a.length&&null==c;f++)b.model.isVertex(a[f])&&(c=f);null!=c&&(b.setSelectionCells(this.dropAndConnect(b.getSelectionCell(),a,mxEvent.isMetaDown(d)||mxEvent.isControlDown(d)?mxEvent.isShiftDown(d)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(d)?mxConstants.DIRECTION_EAST:
mxConstants.DIRECTION_SOUTH,c,d)),b.scrollCellToVisible(b.getSelectionCell()))}else mxEvent.isShiftDown(d)&&!b.isSelectionEmpty()?(this.updateShapes(a[0],b.getSelectionCells()),b.scrollCellToVisible(b.getSelectionCell())):(a=mxEvent.isAltDown(d)?b.getFreeInsertPoint():b.getCenterInsertPoint(b.getBoundingBoxFromGeometry(a,!0)),c.drop(b,d,null,a.x,a.y,!0))};
Sidebar.prototype.addClickHandler=function(a,c,d){var b=c.mouseDown,f=c.mouseMove,e=c.mouseUp,k=this.editorUi.editor.graph.tolerance,g=null,h=this;c.mouseDown=function(c){b.apply(this,arguments);g=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));null!=this.dragElement&&(this.dragElement.style.display="none",mxUtils.setOpacity(a,50))};c.mouseMove=function(b){null!=this.dragElement&&"none"==this.dragElement.style.display&&null!=g&&(Math.abs(g.x-mxEvent.getClientX(b))>k||Math.abs(g.y-mxEvent.getClientY(b))>
@@ -2555,13 +2558,13 @@ e&&c.setCursor(e)}}),mouseUp:mxUtils.bind(this,function(a,b){l=k=g=h=null})})}th
this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var p=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var a=p.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,
d=this.graph.pageScale,e=c.width*d,c=c.height*d,d=this.graph.view.translate,g=this.graph.view.scale,f=this.graph.getPageLayout(),k=0;k<f.width;k++)b.push(new mxRectangle(((f.x+k)*e+d.x)*g,(f.y*c+d.y)*g,e*g,c*g));for(k=1;k<f.height;k++)b.push(new mxRectangle((f.x*e+d.x)*g,((f.y+k)*c+d.y)*g,e*g,c*g));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,b){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=
function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var n=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var b=n.apply(this,arguments),c=new mxDictionary,d=[],e=0;e<b.length;e++){var g=this.graph.isTableCell(a)&&this.graph.isTableCell(b[e])&&this.graph.isCellSelected(b[e])?this.graph.model.getParent(b[e]):this.graph.isTableRow(a)&&this.graph.isTableRow(b[e])&&
-this.graph.isCellSelected(b[e])?b[e]:this.graph.getCompositeParent(b[e]);null==g||c.get(g)||(c.put(g,!0),d.push(g))}return d};var r=this.graphHandler.start;this.graphHandler.start=function(a,b,c,d){var e=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?e=!0:a=this.graph.model.getParent(a));e||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));r.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,b){b=this.graph.getCompositeParent(b);
-return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var t=new mxRubberband(this);this.getRubberband=function(){return t};var u=(new Date).getTime(),v=0,w=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;w.apply(this,arguments);a!=this.currentState?(u=(new Date).getTime(),v=0):v=(new Date).getTime()-u};var x=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=
-this.currentState&&a.getState()==this.currentState&&2E3<v||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&x.apply(this,arguments)};var F=this.isToggleEvent;this.isToggleEvent=function(a){return F.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var D=t.isForceRubberbandEvent;t.isForceRubberbandEvent=function(a){return D.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&
-mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var E=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(E=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=E)}));this.popupMenuHandler.autoExpand=
-!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var z=this.click;this.click=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!b||a.isConsumed())return z.apply(this,arguments);var c=b?a.sourceState.cell:a.getCell();null!=c&&(c=this.getClickableLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&b&&this.clearSelection()};this.tooltipHandler.getStateForEvent=
-function(a){return a.sourceState};var G=this.tooltipHandler.show;this.tooltipHandler.show=function(){G.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),b=0;b<a.length;b++)null!=a[b].getAttribute("href")&&null==a[b].getAttribute("target")&&a[b].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);
-return this.getCursorForCell(b?a.sourceState.cell:a.getCell())};var y=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return y.apply(this,arguments)};this.selectRegion=function(a,b){var c=this.getCells(a.x,a.y,a.width,a.height,null,null,null,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);this.selectCellsForEvent(c,b);return c};var H=
+this.graph.isCellSelected(b[e])?b[e]:this.graph.getCompositeParent(b[e]);null==g||c.get(g)||(c.put(g,!0),d.push(g))}return d};var q=this.graphHandler.start;this.graphHandler.start=function(a,b,c,d){var e=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?e=!0:a=this.graph.model.getParent(a));e||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));q.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,b){b=this.graph.getCompositeParent(b);
+return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var t=new mxRubberband(this);this.getRubberband=function(){return t};var u=(new Date).getTime(),v=0,x=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;x.apply(this,arguments);a!=this.currentState?(u=(new Date).getTime(),v=0):v=(new Date).getTime()-u};var y=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=
+this.currentState&&a.getState()==this.currentState&&2E3<v||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&y.apply(this,arguments)};var G=this.isToggleEvent;this.isToggleEvent=function(a){return G.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var E=t.isForceRubberbandEvent;t.isForceRubberbandEvent=function(a){return E.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&
+mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var F=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(F=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=F)}));this.popupMenuHandler.autoExpand=
+!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var A=this.click;this.click=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!b||a.isConsumed())return A.apply(this,arguments);var c=b?a.sourceState.cell:a.getCell();null!=c&&(c=this.getClickableLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&b&&this.clearSelection()};this.tooltipHandler.getStateForEvent=
+function(a){return a.sourceState};var I=this.tooltipHandler.show;this.tooltipHandler.show=function(){I.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),b=0;b<a.length;b++)null!=a[b].getAttribute("href")&&null==a[b].getAttribute("target")&&a[b].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);
+return this.getCursorForCell(b?a.sourceState.cell:a.getCell())};var z=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return z.apply(this,arguments)};this.selectRegion=function(a,b){var c=this.getCells(a.x,a.y,a.width,a.height,null,null,null,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);this.selectCellsForEvent(c,b);return c};var H=
this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:H.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),"locked","0"))return!0;a=this.model.getParent(a)}return!1};var L=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();L=null==
c||this.isSelectionEmpty()||this.isCellSelected(c.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,b){if(!mxEvent.isMultiTouchEvent(b)){var c=b.getProperty("event"),d=b.getProperty("cell");null==d?(c=mxUtils.convertPoint(this.container,mxEvent.getClientX(c),mxEvent.getClientY(c)),t.start(c.x,c.y)):null!=L?this.addSelectionCells(L):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);L=null;b.consume()}}));this.connectionHandler.selectCells=
function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,b){var c=a.view.graph;return b&&(c.isCellSelected(a.cell)||c.isTableRow(a.cell)&&c.selectionCellsHandler.isHandled(c.model.getParent(a.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));
@@ -2614,8 +2617,8 @@ Graph.prototype.isLabelMovable=function(a){var c=this.getCurrentCellStyle(a);ret
Graph.prototype.getClickableLinkForCell=function(a){do{var c=this.getLinkForCell(a);if(null!=c)return c;a=this.model.getParent(a)}while(null!=a);return null};Graph.prototype.getGlobalVariable=function(a){var c=null;"date"==a?c=(new Date).toLocaleDateString():"time"==a?c=(new Date).toLocaleTimeString():"timestamp"==a?c=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),c=this.formatDate(new Date,a));return c};
Graph.prototype.formatDate=function(a,c,d){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var b=this.dateFormatCache,f=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,k=function(a,b){a=String(a);for(b=b||2;a.length<b;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",h=a[g+"Date"](),l=a[g+"Day"](),m=a[g+"Month"](),p=a[g+"FullYear"](),n=a[g+"Hours"](),r=a[g+"Minutes"](),t=a[g+"Seconds"](),g=a[g+"Milliseconds"](),u=d?0:a.getTimezoneOffset(),v={d:h,dd:k(h),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:m+1,mm:k(m+1),mmm:b.i18n.monthNames[m],mmmm:b.i18n.monthNames[m+
-12],yy:String(p).slice(2),yyyy:p,h:n%12||12,hh:k(n%12||12),H:n,HH:k(n),M:r,MM:k(r),s:t,ss:k(t),l:k(g,3),L:k(99<g?Math.round(g/10):g),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<u?"-":"+")+k(100*Math.floor(Math.abs(u)/60)+Math.abs(u)%60,4),S:["th","st","nd","rd"][3<h%10?0:(10!=h%100-h%10)*h%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in v?v[a]:a.slice(1,
+/\d/.test(a)||(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(b.masks[c]||c||b.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),d=!0);var g=d?"getUTC":"get",h=a[g+"Date"](),l=a[g+"Day"](),m=a[g+"Month"](),p=a[g+"FullYear"](),n=a[g+"Hours"](),q=a[g+"Minutes"](),t=a[g+"Seconds"](),g=a[g+"Milliseconds"](),u=d?0:a.getTimezoneOffset(),v={d:h,dd:k(h),ddd:b.i18n.dayNames[l],dddd:b.i18n.dayNames[l+7],m:m+1,mm:k(m+1),mmm:b.i18n.monthNames[m],mmmm:b.i18n.monthNames[m+
+12],yy:String(p).slice(2),yyyy:p,h:n%12||12,hh:k(n%12||12),H:n,HH:k(n),M:q,MM:k(q),s:t,ss:k(t),l:k(g,3),L:k(99<g?Math.round(g/10):g),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:d?"UTC":(String(a).match(f)||[""]).pop().replace(e,""),o:(0<u?"-":"+")+k(100*Math.floor(Math.abs(u)/60)+Math.abs(u)%60,4),S:["th","st","nd","rd"][3<h%10?0:(10!=h%100-h%10)*h%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in v?v[a]:a.slice(1,
a.length-1)})};
Graph.prototype.createLayersDialog=function(a){var c=document.createElement("div");c.style.position="absolute";for(var d=this.getModel(),b=d.getChildCount(d.root),f=0;f<b;f++)mxUtils.bind(this,function(b){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var g=document.createElement("input");g.style.display="inline-block";g.setAttribute("type","checkbox");d.isVisible(b)&&(g.setAttribute("checked","checked"),
g.defaultChecked=!0);e.appendChild(g);var f=this.convertValueToString(b)||mxResources.get("background")||"Background";e.setAttribute("title",f);mxUtils.write(e,f);c.appendChild(e);mxEvent.addListener(g,"click",function(){null!=g.getAttribute("checked")?g.removeAttribute("checked"):g.setAttribute("checked","checked");d.setVisible(b,g.checked);null!=a&&a(b)})})(d.getChildAt(d.root,f));return c};
@@ -2624,12 +2627,12 @@ null==k&&(k=h.hasAttribute(g)?null!=h.getAttribute(g)?h.getAttribute(g):"":null)
Graph.prototype.selectCellsForConnectVertex=function(a,c,d){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=d&&(mxEvent.isTouchEvent(c)?d.update(d.getState(this.view.getState(a[1]))):d.reset())):this.setSelectionCells(a)};Graph.prototype.isCloneConnectSource=function(a){var c=null;null!=this.layoutManager&&(c=this.layoutManager.getLayout(this.model.getParent(a)));return this.isTableRow(a)||this.isTableCell(a)||null!=c&&c.constructor==mxStackLayout};
Graph.prototype.connectVertex=function(a,c,d,b,f,e,k,g){e=e?e:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var h=this.isCloneConnectSource(a),l=h?a:this.getCompositeParent(a),m=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(l.geometry.x,l.geometry.y);c==mxConstants.DIRECTION_NORTH?(m.x+=l.geometry.width/2,m.y-=d):c==
mxConstants.DIRECTION_SOUTH?(m.x+=l.geometry.width/2,m.y+=l.geometry.height+d):(m.x=c==mxConstants.DIRECTION_WEST?m.x-d:m.x+(l.geometry.width+d),m.y+=l.geometry.height/2);var p=this.view.getState(this.model.getParent(a));d=this.view.scale;var n=this.view.translate,l=n.x*d,n=n.y*d;null!=p&&this.model.isVertex(p.cell)&&(l=p.x,n=p.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(m.x+=a.parent.geometry.x,m.y+=a.parent.geometry.y);e=e?null:(new mxRectangle(l+m.x*d,n+m.y*d)).grow(40);e=null!=e?this.getCells(0,
-0,0,0,null,null,e):null;var r=null!=e&&0<e.length?e.reverse()[0]:null,t=!1;null!=r&&this.model.isAncestor(r,a)&&(t=!0,r=null);null==r&&(e=this.getSwimlaneAt(l+m.x*d,n+m.y*d),null!=e&&(t=!1,r=e));for(e=r;null!=e;){if(this.isCellLocked(e)){r=null;break}e=this.model.getParent(e)}null!=r&&(e=this.view.getState(a),p=this.view.getState(r),null!=e&&null!=p&&mxUtils.intersects(e,p)&&(r=null));var u=!mxEvent.isShiftDown(b)||mxEvent.isControlDown(b)||f;u&&("1"!=urlParams.sketch||f)&&(c==mxConstants.DIRECTION_NORTH?
-m.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=a.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-a.geometry.width/2:m.x+a.geometry.width/2);null==r||this.isCellConnectable(r)||this.isSwimlane(r)||(f=this.getModel().getParent(r),this.getModel().isVertex(f)&&this.isCellConnectable(f)&&(r=f));if(r==a||this.model.isEdge(r)||!this.isCellConnectable(r)&&!this.isSwimlane(r))r=null;var v=[],w=null!=r&&this.isSwimlane(r),x=w?null:r;f=mxUtils.bind(this,function(d){if(null==k||null!=d||
-null==r&&h){this.model.beginUpdate();try{if(null==x&&u){for(var e=null!=d?d:a,f=this.getCellGeometry(e);null!=f&&f.relative;)e=this.getModel().getParent(e),f=this.getCellGeometry(e);e=h?a:this.getCompositeParent(e);x=null!=d?d:this.duplicateCells([e],!1)[0];null!=d&&this.addCells([x],this.model.getParent(a),null,null,null,!0);f=this.getCellGeometry(x);null!=f&&(null!=d&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=f.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=f.height/2:m.x=c==mxConstants.DIRECTION_WEST?
-m.x-f.width/2:m.x+f.width/2),f.x=m.x-f.width/2,f.y=m.y-f.height/2);w?(this.addCells([x],r,null,null,null,!0),r=null):!u||null!=r||t||h||this.addCells([x],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(b)&&mxEvent.isShiftDown(b)&&u||null==r&&h?null:this.insertEdge(this.model.getParent(a),null,"",a,x,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=l.parent;)d=
-this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==l.parent&&(n=d.parent.getIndex(d),this.model.add(d.parent,l,n))}null==r&&null!=x&&null!=a.parent&&h&&c==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,x,n));null!=l&&v.push(l);null==r&&null!=x&&v.push(x);null==x&&null!=l&&l.geometry.setTerminalPoint(m,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=g)g(v);else return v});if(null==k||null!=x||
-!u||null==r&&h)return f(x);k(l+m.x*d,n+m.y*d,f)};Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),c=[],d,b;for(b in this.model.cells)if(d=this.model.cells[b],this.model.isVertex(d)||this.model.isEdge(d))this.isHtmlLabel(d)?(a.innerHTML=this.sanitizeHtml(this.getLabel(d)),d=mxUtils.extractTextWithWhitespace([a])):d=this.getLabel(d),d=mxUtils.trim(d.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<d.length&&c.push(d);return c.join(" ")};
+0,0,0,null,null,e):null;var q=null!=e&&0<e.length?e.reverse()[0]:null,t=!1;null!=q&&this.model.isAncestor(q,a)&&(t=!0,q=null);null==q&&(e=this.getSwimlaneAt(l+m.x*d,n+m.y*d),null!=e&&(t=!1,q=e));for(e=q;null!=e;){if(this.isCellLocked(e)){q=null;break}e=this.model.getParent(e)}null!=q&&(e=this.view.getState(a),p=this.view.getState(q),null!=e&&null!=p&&mxUtils.intersects(e,p)&&(q=null));var u=!mxEvent.isShiftDown(b)||mxEvent.isControlDown(b)||f;u&&("1"!=urlParams.sketch||f)&&(c==mxConstants.DIRECTION_NORTH?
+m.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=a.geometry.height/2:m.x=c==mxConstants.DIRECTION_WEST?m.x-a.geometry.width/2:m.x+a.geometry.width/2);null==q||this.isCellConnectable(q)||this.isSwimlane(q)||(f=this.getModel().getParent(q),this.getModel().isVertex(f)&&this.isCellConnectable(f)&&(q=f));if(q==a||this.model.isEdge(q)||!this.isCellConnectable(q)&&!this.isSwimlane(q))q=null;var v=[],x=null!=q&&this.isSwimlane(q),y=x?null:q;f=mxUtils.bind(this,function(d){if(null==k||null!=d||
+null==q&&h){this.model.beginUpdate();try{if(null==y&&u){for(var e=null!=d?d:a,f=this.getCellGeometry(e);null!=f&&f.relative;)e=this.getModel().getParent(e),f=this.getCellGeometry(e);e=h?a:this.getCompositeParent(e);y=null!=d?d:this.duplicateCells([e],!1)[0];null!=d&&this.addCells([y],this.model.getParent(a),null,null,null,!0);f=this.getCellGeometry(y);null!=f&&(null!=d&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?m.y-=f.height/2:c==mxConstants.DIRECTION_SOUTH?m.y+=f.height/2:m.x=c==mxConstants.DIRECTION_WEST?
+m.x-f.width/2:m.x+f.width/2),f.x=m.x-f.width/2,f.y=m.y-f.height/2);x?(this.addCells([y],q,null,null,null,!0),q=null):!u||null!=q||t||h||this.addCells([y],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(b)&&mxEvent.isShiftDown(b)&&u||null==q&&h?null:this.insertEdge(this.model.getParent(a),null,"",a,y,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=l.parent;)d=
+this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==l.parent&&(n=d.parent.getIndex(d),this.model.add(d.parent,l,n))}null==q&&null!=y&&null!=a.parent&&h&&c==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,y,n));null!=l&&v.push(l);null==q&&null!=y&&v.push(y);null==y&&null!=l&&l.geometry.setTerminalPoint(m,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=g)g(v);else return v});if(null==k||null!=y||
+!u||null==q&&h)return f(y);k(l+m.x*d,n+m.y*d,f)};Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),c=[],d,b;for(b in this.model.cells)if(d=this.model.cells[b],this.model.isVertex(d)||this.model.isEdge(d))this.isHtmlLabel(d)?(a.innerHTML=this.sanitizeHtml(this.getLabel(d)),d=mxUtils.extractTextWithWhitespace([a])):d=this.getLabel(d),d=mxUtils.trim(d.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<d.length&&c.push(d);return c.join(" ")};
Graph.prototype.convertValueToString=function(a){var c=this.model.getValue(a);if(null!=c&&"object"==typeof c){var d=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var c=a.getAttribute("placeholder"),b=a;null==d&&null!=b;)null!=b.value&&"object"==typeof b.value&&(d=b.hasAttribute(c)?null!=b.getAttribute(c)?b.getAttribute(c):"":null),b=this.model.getParent(b);else d=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(d=c.getAttribute("label_"+Graph.diagramLanguage)),
null==d&&(d=c.getAttribute("label")||"");return d||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getLinkTargetForCell=function(a){return null!=a.value&&"object"==typeof a.value?a.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(a){var c=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var d=this.model.getParent(a);this.model.isVertex(d)&&this.isCellCollapsed(a)&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(c[mxConstants.STYLE_HORIZONTAL]=!d.horizontal))}return c};
@@ -2694,18 +2697,18 @@ d){var n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.width+=c,b.setGeometry(
TableLayout.prototype.getSize=function(a,c){for(var d=0,b=0;b<a.length;b++)if(!this.isVertexIgnored(a[b])){var f=this.graph.getCellGeometry(a[b]);null!=f&&(d+=c?f.width:f.height)}return d};TableLayout.prototype.getRowLayout=function(a,c){for(var d=this.graph.model.getChildCells(a,!0),b=this.graph.getActualStartSize(a,!0),f=this.getSize(d,!0),e=c-b.x-b.width,k=[],b=b.x,g=0;g<d.length;g++){var h=this.graph.getCellGeometry(d[g]);null!=h&&(b+=h.width*e/f,k.push(Math.round(b)))}return k};
TableLayout.prototype.layoutRow=function(a,c,d,b){var f=this.graph.getModel(),e=f.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var k=a.x,g=0;null!=c&&(c=c.slice(),c.splice(0,0,a.x));for(var h=0;h<e.length;h++){var l=this.graph.getCellGeometry(e[h]);null!=l&&(l=l.clone(),l.y=a.y,l.height=d-a.y-a.height,null!=c?(l.x=c[h],l.width=c[h+1]-l.x,h==e.length-1&&h<c.length-2&&(l.width=b-l.x-a.x-a.width)):(l.x=k,k+=l.width,h==e.length-1?l.width=b-a.x-a.width-g:g+=l.width),f.setGeometry(e[h],l))}return g};
TableLayout.prototype.execute=function(a){if(null!=a){var c=this.graph.getActualStartSize(a,!0),d=this.graph.getCellGeometry(a),b=this.graph.getCellStyle(a),f="1"==mxUtils.getValue(b,"resizeLastRow","0"),e="1"==mxUtils.getValue(b,"resizeLast","0"),b="1"==mxUtils.getValue(b,"fixedRows","0"),k=this.graph.getModel(),g=0;k.beginUpdate();try{var h=d.height-c.y-c.height,l=d.width-c.x-c.width,m=k.getChildCells(a,!0),p=this.getSize(m,!1);if(0<h&&0<l&&0<m.length&&0<p){if(f){var n=this.graph.getCellGeometry(m[m.length-
-1]);null!=n&&(n=n.clone(),n.height=h-p+n.height,k.setGeometry(m[m.length-1],n))}for(var r=e?null:this.getRowLayout(m[0],l),t=c.y,u=0;u<m.length;u++)n=this.graph.getCellGeometry(m[u]),null!=n&&(n=n.clone(),n.x=c.x,n.width=l,n.y=Math.round(t),t=f||b?t+n.height:t+n.height/p*h,n.height=Math.round(t)-n.y,k.setGeometry(m[u],n)),g=Math.max(g,this.layoutRow(m[u],r,n.height,l));b&&h<p&&(d=d.clone(),d.height=t+c.height,k.setGeometry(a,d));e&&l<g+Graph.minTableColumnWidth&&(d=d.clone(),d.width=g+c.width+c.x+
+1]);null!=n&&(n=n.clone(),n.height=h-p+n.height,k.setGeometry(m[m.length-1],n))}for(var q=e?null:this.getRowLayout(m[0],l),t=c.y,u=0;u<m.length;u++)n=this.graph.getCellGeometry(m[u]),null!=n&&(n=n.clone(),n.x=c.x,n.width=l,n.y=Math.round(t),t=f||b?t+n.height:t+n.height/p*h,n.height=Math.round(t)-n.y,k.setGeometry(m[u],n)),g=Math.max(g,this.layoutRow(m[u],q,n.height,l));b&&h<p&&(d=d.clone(),d.height=t+c.height,k.setGeometry(a,d));e&&l<g+Graph.minTableColumnWidth&&(d=d.clone(),d.width=g+c.width+c.x+
Graph.minTableColumnWidth,k.setGeometry(a,d))}}finally{k.endUpdate()}}};
(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,b){b=null!=b?b:!0;var d=this.getState(a);null!=d&&b&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=c.apply(this,
arguments);null!=d&&b&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var d=mxShape.prototype.paint;mxShape.prototype.paint=function(){d.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var a=this.node.getElementsByTagName("path");if(1<a.length){"1"!=mxUtils.getValue(this.state.style,
mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var b=this.state.view.graph.getFlowAnimationStyle();null!=b&&a[1].setAttribute("class",b.getAttribute("id"))}}};var b=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return b.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var f=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(a){f.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var b=a.absolutePoints;if(Graph.lineJumpsEnabled){var c=null!=a.routedPoints,d=null;if(null!=b&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(b,c,e){var f=new mxPoint(c,e);f.type=b;d.push(f);f=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==f||f.type!=
-b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var k=b[g+1],h=b[g],l=[],m=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,m.x,m.y,k.x,k.y)<1*this.scale*this.scale;)k=m,g++,m=b[g+2];for(var c=e(0,h.x,h.y)||c,E=0;E<this.validEdges.length;E++){var z=this.validEdges[E],G=z.absolutePoints;if(null!=G&&mxUtils.intersects(a,z)&&"1"!=z.style.noJump)for(z=0;z<G.length-1;z++){for(var y=G[z+1],H=G[z],m=G[z+2];z<G.length-2&&mxUtils.ptSegDistSq(H.x,H.y,m.x,m.y,y.x,y.y)<1*this.scale*this.scale;)y=
-m,z++,m=G[z+2];m=mxUtils.intersection(h.x,h.y,k.x,k.y,H.x,H.y,y.x,y.y);if(null!=m&&(Math.abs(m.x-h.x)>f||Math.abs(m.y-h.y)>f)&&(Math.abs(m.x-k.x)>f||Math.abs(m.y-k.y)>f)&&(Math.abs(m.x-H.x)>f||Math.abs(m.y-H.y)>f)&&(Math.abs(m.x-y.x)>f||Math.abs(m.y-y.y)>f)){y=m.x-h.x;H=m.y-h.y;m={distSq:y*y+H*H,x:m.x,y:m.y};for(y=0;y<l.length;y++)if(l[y].distSq>m.distSq){l.splice(y,0,m);m=null;break}null==m||0!=l.length&&l[l.length-1].x===m.x&&l[l.length-1].y===m.y||l.push(m)}}}for(z=0;z<l.length;z++)c=e(1,l[z].x,
-l[z].y)||c}m=b[b.length-1];c=e(0,m.x,m.y)||c}a.routedPoints=d;return c}return!1};var e=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,b,c){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)e.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),k=!0,h=null,l=null,m=[],n=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var z=this.state.routedPoints[p],G=new mxPoint(z.x/this.scale,z.y/this.scale);0==p?G=b[0]:p==this.state.routedPoints.length-1&&(G=b[b.length-1]);var y=!1;if(null!=h&&1==z.type){var H=this.state.routedPoints[p+1],z=H.x/this.scale-G.x,H=H.y/this.scale-G.y,z=z*z+H*H;null==n&&(n=new mxPoint(G.x-h.x,G.y-h.y),
-l=Math.sqrt(n.x*n.x+n.y*n.y),0<l?(n.x=n.x*f/l,n.y=n.y*f/l):n=null);z>f*f&&0<l&&(z=h.x-G.x,H=h.y-G.y,z=z*z+H*H,z>f*f&&(y=new mxPoint(G.x-n.x,G.y-n.y),z=new mxPoint(G.x+n.x,G.y+n.y),m.push(y),this.addPoints(a,m,c,d,!1,null,k),m=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(y.x-n.y*m,y.y+n.x*m),a.lineTo(z.x-n.y*m,z.y+n.x*m),a.lineTo(z.x,z.y)):"arc"==g?(m*=1.3,a.curveTo(y.x-n.y*m,y.y+n.x*m,z.x-n.y*m,z.y+n.x*m,z.x,z.y)):(a.moveTo(z.x,z.y),k=!0),m=[z],y=!0))}else n=
-null;y||(m.push(G),h=G)}this.addPoints(a,m,c,d,!1,null,k);a.stroke()}};var k=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,b,c,d){return null!=b&&"centerPerimeter"==b.style[mxConstants.STYLE_PERIMETER]?new mxPoint(b.getCenterX(),b.getCenterY()):k.apply(this,arguments)};var g=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)g.apply(this,
+b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var k=b[g+1],h=b[g],l=[],m=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(h.x,h.y,m.x,m.y,k.x,k.y)<1*this.scale*this.scale;)k=m,g++,m=b[g+2];for(var c=e(0,h.x,h.y)||c,F=0;F<this.validEdges.length;F++){var A=this.validEdges[F],I=A.absolutePoints;if(null!=I&&mxUtils.intersects(a,A)&&"1"!=A.style.noJump)for(A=0;A<I.length-1;A++){for(var z=I[A+1],H=I[A],m=I[A+2];A<I.length-2&&mxUtils.ptSegDistSq(H.x,H.y,m.x,m.y,z.x,z.y)<1*this.scale*this.scale;)z=
+m,A++,m=I[A+2];m=mxUtils.intersection(h.x,h.y,k.x,k.y,H.x,H.y,z.x,z.y);if(null!=m&&(Math.abs(m.x-h.x)>f||Math.abs(m.y-h.y)>f)&&(Math.abs(m.x-k.x)>f||Math.abs(m.y-k.y)>f)&&(Math.abs(m.x-H.x)>f||Math.abs(m.y-H.y)>f)&&(Math.abs(m.x-z.x)>f||Math.abs(m.y-z.y)>f)){z=m.x-h.x;H=m.y-h.y;m={distSq:z*z+H*H,x:m.x,y:m.y};for(z=0;z<l.length;z++)if(l[z].distSq>m.distSq){l.splice(z,0,m);m=null;break}null==m||0!=l.length&&l[l.length-1].x===m.x&&l[l.length-1].y===m.y||l.push(m)}}}for(A=0;A<l.length;A++)c=e(1,l[A].x,
+l[A].y)||c}m=b[b.length-1];c=e(0,m.x,m.y)||c}a.routedPoints=d;return c}return!1};var e=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,b,c){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)e.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),k=!0,h=null,l=null,m=[],n=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var A=this.state.routedPoints[p],I=new mxPoint(A.x/this.scale,A.y/this.scale);0==p?I=b[0]:p==this.state.routedPoints.length-1&&(I=b[b.length-1]);var z=!1;if(null!=h&&1==A.type){var H=this.state.routedPoints[p+1],A=H.x/this.scale-I.x,H=H.y/this.scale-I.y,A=A*A+H*H;null==n&&(n=new mxPoint(I.x-h.x,I.y-h.y),
+l=Math.sqrt(n.x*n.x+n.y*n.y),0<l?(n.x=n.x*f/l,n.y=n.y*f/l):n=null);A>f*f&&0<l&&(A=h.x-I.x,H=h.y-I.y,A=A*A+H*H,A>f*f&&(z=new mxPoint(I.x-n.x,I.y-n.y),A=new mxPoint(I.x+n.x,I.y+n.y),m.push(z),this.addPoints(a,m,c,d,!1,null,k),m=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(z.x-n.y*m,z.y+n.x*m),a.lineTo(A.x-n.y*m,A.y+n.x*m),a.lineTo(A.x,A.y)):"arc"==g?(m*=1.3,a.curveTo(z.x-n.y*m,z.y+n.x*m,A.x-n.y*m,A.y+n.x*m,A.x,A.y)):(a.moveTo(A.x,A.y),k=!0),m=[A],z=!0))}else n=
+null;z||(m.push(I),h=I)}this.addPoints(a,m,c,d,!1,null,k);a.stroke()}};var k=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,b,c,d){return null!=b&&"centerPerimeter"==b.style[mxConstants.STYLE_PERIMETER]?new mxPoint(b.getCenterX(),b.getCenterY()):k.apply(this,arguments)};var g=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)g.apply(this,
arguments);else{b=this.getTerminalPort(a,b,d);var e=this.getNextPoint(a,c,d),f=this.graph.isOrthogonal(a),k=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),h=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=k)var l=Math.cos(-k),m=Math.sin(-k),e=mxUtils.getRotatedPoint(e,l,m,h);l=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);l+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);e=this.getPerimeterPoint(b,
e,0==k&&f,l);0!=k&&(l=Math.cos(k),m=Math.sin(k),e=mxUtils.getRotatedPoint(e,l,m,h));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,e),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(b,a[f]);if(null!=g){var k=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||k<d)c=g,d=k}}null!=c&&(e=c)}return e};var h=mxStencil.prototype.evaluateTextAttribute;
mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=h.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var l=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=b&&"string"===typeof b&&"stencil("==b.substring(0,8))try{var c=b.substring(8,b.length-
@@ -2735,8 +2738,8 @@ Graph.prototype.isExtendParent=function(a){var b=this.model.getParent(a);if(null
mxConstants.NONE,[a]);var n=this.model.getTerminal(c,!1);if(null!=n){var Y=this.getCurrentCellStyle(n);null!=Y&&"1"==Y.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,b,c){if(b||c)l.apply(this,arguments);
else{var d=this.getSelectionCell(),e=null,f=[],g=mxUtils.bind(this,function(b){if(null!=this.view.getState(b)&&(this.model.isVertex(b)||this.model.isEdge(b)))if(f.push(b),b==d)e=f.length-1;else if(a&&null==d&&0<f.length||null!=e&&a&&f.length>e||!a&&0<e)return;for(var c=0;c<this.model.getChildCount(b);c++)g(this.model.getChildAt(b,c))});g(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(a?1:-1),f.length):0,this.setSelectionCell(f[e]))}};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=
function(a,b,c,d,e,f,g){g=null!=g?g:{};if(this.isTable(e)){for(var k=[],h=0;h<a.length;h++)this.isTable(a[h])?k=k.concat(this.model.getChildCells(a[h],!0).reverse()):k.push(a[h]);a=k}this.model.beginUpdate();try{k=[];for(h=0;h<a.length;h++)if(null!=e&&this.isTableRow(a[h])){var K=this.model.getParent(a[h]),l=this.getCellGeometry(a[h]);this.isTable(K)&&k.push(K);if(null!=K&&null!=l&&this.isTable(K)&&this.isTable(e)&&(d||K!=e)){if(!d){var n=this.getCellGeometry(K);null!=n&&(n=n.clone(),n.height-=l.height,
-this.model.setGeometry(K,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=l.height,this.model.setGeometry(e,n));var Y=this.model.getChildCells(e,!0);if(0<Y.length){a[h]=d?this.cloneCell(a[h]):a[h];var Z=this.model.getChildCells(a[h],!0),p=this.model.getChildCells(Y[0],!0),V=p.length-Z.length;if(0<V)for(var r=0;r<V;r++){var ia=this.cloneCell(Z[Z.length-1]);null!=ia&&(ia.value="",this.model.add(a[h],ia))}else if(0>V)for(r=0;r>V;r--)this.model.remove(Z[Z.length+r-1]);Z=this.model.getChildCells(a[h],
-!0);for(r=0;r<p.length;r++){var t=this.getCellGeometry(p[r]),la=this.getCellGeometry(Z[r]);null!=t&&null!=la&&(la=la.clone(),la.width=t.width,this.model.setGeometry(Z[r],la))}}}}for(var u=m.apply(this,arguments),h=0;h<k.length;h++)!d&&this.model.contains(k[h])&&0==this.model.getChildCount(k[h])&&this.model.remove(k[h]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),u)}finally{this.model.endUpdate()}return u};var p=Graph.prototype.removeCells;Graph.prototype.removeCells=
+this.model.setGeometry(K,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=l.height,this.model.setGeometry(e,n));var Y=this.model.getChildCells(e,!0);if(0<Y.length){a[h]=d?this.cloneCell(a[h]):a[h];var ba=this.model.getChildCells(a[h],!0),p=this.model.getChildCells(Y[0],!0),U=p.length-ba.length;if(0<U)for(var q=0;q<U;q++){var ia=this.cloneCell(ba[ba.length-1]);null!=ia&&(ia.value="",this.model.add(a[h],ia))}else if(0>U)for(q=0;q>U;q--)this.model.remove(ba[ba.length+q-1]);ba=this.model.getChildCells(a[h],
+!0);for(q=0;q<p.length;q++){var t=this.getCellGeometry(p[q]),la=this.getCellGeometry(ba[q]);null!=t&&null!=la&&(la=la.clone(),la.width=t.width,this.model.setGeometry(ba[q],la))}}}}for(var u=m.apply(this,arguments),h=0;h<k.length;h++)!d&&this.model.contains(k[h])&&0==this.model.getChildCount(k[h])&&this.model.remove(k[h]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),u)}finally{this.model.endUpdate()}return u};var p=Graph.prototype.removeCells;Graph.prototype.removeCells=
function(a,b){var c=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var e=this.model.getParent(a[d]),f=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f)&&c.push(f):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(f=this.model.getParent(a[d]),0>mxUtils.indexOf(a,f)&&0>mxUtils.indexOf(c,f))){for(var g=this.model.getChildCells(f,!0),k=0,h=0;h<g.length;h++)0<=mxUtils.indexOf(a,
g[h])&&k++;k==g.length&&c.push(f)}c.push(a[d])}c=p.apply(this,[c,b])}finally{this.model.endUpdate()}return c};Graph.prototype.updateCustomLinks=function(a,b){for(var c=0;c<b.length;c++)null!=b[c]&&this.updateCustomLinksForCell(a,b[c])};Graph.prototype.updateCustomLinksForCell=function(a,b){};Graph.prototype.getAllConnectionConstraints=function(a,b){if(null!=a){var c=mxUtils.getValue(a.style,"points",null);if(null!=c){var d=[];try{for(var e=JSON.parse(c),c=0;c<e.length;c++){var f=e[c];d.push(new mxConnectionConstraint(new mxPoint(f[0],
f[1]),2<f.length?"0"!=f[2]:!0,null,3<f.length?f[3]:0,4<f.length?f[4]:0))}}catch(Ba){}return d}if(null!=a.shape&&null!=a.shape.bounds){f=a.shape.direction;e=a.shape.bounds;c=a.shape.scale;d=e.width/c;e=e.height/c;if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=d,d=e,e=f;c=a.shape.getConstraints(a.style,d,e);if(null!=c)return c;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;if(null!=a.shape.constraints)return a.shape.constraints}}return null};
@@ -2744,9 +2747,9 @@ Graph.prototype.flipEdge=function(a){if(null!=a){var b=this.getCurrentCellStyle(
c||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,b,c){for(var d=this.getCurrentCellStyle(a),e=!0,f=!0,g=0;g<b.length&&f;g++)e=e&&this.isTable(b[g]),f=f&&this.isTableRow(b[g]);return("1"!=mxUtils.getValue(d,"part","0")||this.isContainer(a))&&"0"!=mxUtils.getValue(d,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(a))&&!this.isTableRow(a)&&(!this.isTable(a)||f||e)};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,
arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var b=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(b&&null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b=!1))}return b};Graph.prototype.getPreferredSizeForCell=function(a){var b=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=b&&(b.width+=10,b.height+=4,this.gridEnabled&&
(b.width=this.snap(b.width),b.height=this.snap(b.height)));return b};Graph.prototype.turnShapes=function(a,b){var c=this.getModel(),d=[];c.beginUpdate();try{for(var e=0;e<a.length;e++){var f=a[e];if(c.isEdge(f)){var g=c.getTerminal(f,!0),k=c.getTerminal(f,!1);c.setTerminal(f,k,!0);c.setTerminal(f,g,!1);var h=c.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();var K=h.getTerminalPoint(!0),l=h.getTerminalPoint(!1);h.setTerminalPoint(K,!1);h.setTerminalPoint(l,!0);c.setGeometry(f,
-h);var m=this.view.getState(f),n=this.view.getState(g),Y=this.view.getState(k);if(null!=m){var p=null!=n?this.getConnectionConstraint(m,n,!0):null,r=null!=Y?this.getConnectionConstraint(m,Y,!1):null;this.setConnectionConstraint(f,g,!0,r);this.setConnectionConstraint(f,k,!1,p);var t=mxUtils.getValue(m.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(m.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
-t,[f])}d.push(f)}}else if(c.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var u=h.width;h.width=h.height;h.height=u;c.setGeometry(f,h)}var v=this.view.getState(f);if(null!=v){var y=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],z=mxUtils.getValue(v.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);
-this.setCellStyles(mxConstants.STYLE_DIRECTION,y[mxUtils.mod(mxUtils.indexOf(y,z)+(b?-1:1),y.length)],[f])}d.push(f)}}}finally{c.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var n=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&
+h);var m=this.view.getState(f),n=this.view.getState(g),Y=this.view.getState(k);if(null!=m){var p=null!=n?this.getConnectionConstraint(m,n,!0):null,q=null!=Y?this.getConnectionConstraint(m,Y,!1):null;this.setConnectionConstraint(f,g,!0,q);this.setConnectionConstraint(f,k,!1,p);var t=mxUtils.getValue(m.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(m.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
+t,[f])}d.push(f)}}else if(c.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){h=h.clone();h.x+=h.width/2-h.height/2;h.y+=h.height/2-h.width/2;var u=h.width;h.width=h.height;h.height=u;c.setGeometry(f,h)}var v=this.view.getState(f);if(null!=v){var A=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],z=mxUtils.getValue(v.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);
+this.setCellStyles(mxConstants.STYLE_DIRECTION,A[mxUtils.mod(mxUtils.indexOf(A,z)+(b?-1:1),A.length)],[f])}d.push(f)}}}finally{c.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var n=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&
(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var b=a.cell;this.isTableCell(b)&&(b=this.model.getParent(b));this.isTableRow(b)&&(b=this.model.getParent(b));var c=this.view.getState(b);null!=c&&null!=c.shape&&(this.view.invalidate(b),c.shape.bounds=null)}n.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
function(a){a=this.model.getDescendants(a);if(0<a.length)for(var b=0;b<a.length;b++){var c=this.view.getState(a[b]);null!=c&&null!=c.shape&&null!=c.shape.stencil&&this.stencilHasPlaceholders(c.shape.stencil)?this.removeStateForCell(a[b]):this.isReplacePlaceholders(a[b])&&this.view.invalidate(a[b],!1,!1)}};Graph.prototype.replaceElement=function(a,b){for(var c=a.ownerDocument.createElement(null!=b?b:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)c.setAttribute(attr.nodeName,attr.nodeValue);
c.innerHTML=a.innerHTML;a.parentNode.replaceChild(c,a)};Graph.prototype.processElements=function(a,b){if(null!=a)for(var c=a.getElementsByTagName("*"),d=0;d<c.length;d++)b(c[d])};Graph.prototype.updateLabelElements=function(a,b,c){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),e=0;e<a.length;e++)if(this.isHtmlLabel(a[e])){var f=this.convertValueToString(a[e]);if(null!=f&&0<f.length){d.innerHTML=f;for(var g=d.getElementsByTagName(null!=c?c:"*"),h=0;h<g.length;h++)b(g[h]);
@@ -2754,8 +2757,8 @@ d.innerHTML!=f&&this.cellLabelChanged(a[e],d.innerHTML)}}};Graph.prototype.cellL
Graph.translateDiagram&&null!=Graph.diagramLanguage&&f.hasAttribute("label_"+Graph.diagramLanguage)?f.setAttribute("label_"+Graph.diagramLanguage,b):f.setAttribute("label",b);b=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);for(var d=[],c=0;c<a.length;c++){var e=this.model.getParent(a[c]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}for(c=0;c<
d.length;c++)if(e=this.view.getState(d[c]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var f=!0,g=0;g<this.model.getChildCount(e.cell)&&f;g++)b.get(this.model.getChildAt(e.cell,g))||(f=!1);f&&a.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(a){for(var b=[],c=0;c<a.length;c++)this.isCellDeletable(a[c])&&this.isTransparentState(this.view.getState(a[c]))&&
b.push(a[c]);a=b;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,b){this.setAttributeForCell(a,"link",b)};Graph.prototype.setTooltipForCell=function(a,b){var c="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(a.value)&&a.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(c="tooltip_"+Graph.diagramLanguage);this.setAttributeForCell(a,c,b)};Graph.prototype.getAttributeForCell=function(a,b,c){a=null!=a.value&&
-"object"===typeof a.value?a.value.getAttribute(b):null;return null!=a?a:c};Graph.prototype.setAttributeForCell=function(a,b,c){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=c?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,d)};var r=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;
-for(var e=0;e<a.length;e++)if(this.model.isEdge(this.model.getParent(a[e])))return null;for(var f=r.apply(this,arguments),g=!0,e=0;e<a.length&&g;e++)g=g&&this.isTableRow(a[e]);g&&(this.isTableCell(f)&&(f=this.model.getParent(f)),this.isTableRow(f)&&(f=this.model.getParent(f)),this.isTable(f)||(f=null));return f};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,b){this.isEnabled()&&
+"object"===typeof a.value?a.value.getAttribute(b):null;return null!=a?a:c};Graph.prototype.setAttributeForCell=function(a,b,c){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=c?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,d)};var q=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;
+for(var e=0;e<a.length;e++)if(this.model.isEdge(this.model.getParent(a[e])))return null;for(var f=q.apply(this,arguments),g=!0,e=0;e<a.length&&g;e++)g=g&&this.isTableRow(a[e]);g&&(this.isTableCell(f)&&(f=this.model.getParent(f)),this.isTableRow(f)&&(f=this.model.getParent(f)),this.isTable(f)||(f=null));return f};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,b){this.isEnabled()&&
(b=this.insertTextForEvent(a,b),mxGraph.prototype.dblClick.call(this,a,b))};Graph.prototype.insertTextForEvent=function(a,b){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(b)){var d=this.model.isEdge(b)?this.view.getState(b):null,e=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!=e||null!=d&&null!=d.text&&null!=d.text.node&&null!=d.text.boundingBox&&(mxUtils.contains(d.text.boundingBox,c.x,c.y)||mxUtils.isAncestorNode(d.text.node,
mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)||(null==d&&(d=this.view.getState(this.getCellAt(c.x,c.y))),b=this.addText(c.x,c.y,d))}return b};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),b=this.container.scrollLeft/this.view.scale-this.view.translate.x,c=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=
this.getPageLayout(),e=this.getPageSize(),b=Math.max(b,d.x*e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.round(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.getCenterInsertPoint=
@@ -2775,12 +2778,12 @@ c);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.text
b[0].firstChild;)c.insertBefore(b[0].firstChild,b[0]);c.removeChild(b[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.getCurrentCellStyle(a);return!this.isTableCell(a)&&!this.isTableRow(a)&&(b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());
if(null!=b&&1<b.length){for(var c=[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,e=null!=e?Math.min(e,h):h;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;h=this.view.scale;e=e/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var k=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var l=this.view.getState(this.model.getParent(c[f].cell)),
m=this.getCellGeometry(c[f].cell),d=d+k;null!=m&&null!=l&&(m=m.clone(),a?m.x=Math.round(d-m.width/2)-l.origin.x:m.y=Math.round(d-m.height/2)-l.origin.y,this.getModel().setGeometry(c[f].cell,m))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});
-return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r){var K=null;if(null!=r)for(K=new mxDictionary,m=0;m<r.length;m++)K.put(r[m],!0);if(r=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;var Y="page"==p?this.view.getBackgroundPageBounds():f&&null==K||d||"diagram"==p?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==Y)throw Error(mxResources.get("drawingEmpty"));
-var Z=this.view.scale,t=mxUtils.createXmlDocument(),V=null!=t.createElementNS?t.createElementNS(mxConstants.NS_SVG,"svg"):t.createElement("svg");null!=a&&(null!=V.style?V.style.backgroundColor=a:V.setAttribute("style","background-color:"+a));null==t.createElementNS?(V.setAttribute("xmlns",mxConstants.NS_SVG),V.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):V.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/Z;var u=Math.max(1,Math.ceil(Y.width*a)+2*c)+(l?5:
-0),v=Math.max(1,Math.ceil(Y.height*a)+2*c)+(l?5:0);V.setAttribute("version","1.1");V.setAttribute("width",u+"px");V.setAttribute("height",v+"px");V.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+u+" "+v);t.appendChild(V);var ia=null!=t.createElementNS?t.createElementNS(mxConstants.NS_SVG,"g"):t.createElement("g");V.appendChild(ia);var y=this.createSvgCanvas(ia);y.foOffset=e?-.5:0;y.textOffset=e?-.5:0;y.imageOffset=e?-.5:0;y.translate(Math.floor((c/b-Y.x)/Z),Math.floor((c/b-Y.y)/Z));var z=document.createElement("div"),
-x=y.getAlternateText;y.getAlternateText=function(a,b,c,d,e,f,g,h,k,l,m,n,K){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(z.innerHTML=f,f=mxUtils.extractTextWithWhitespace(z.childNodes));for(var q=Math.ceil(2*d/this.state.fontSize),J=[],A=0,B=0;(0==q||A<q)&&B<f.length;){var C=f.charCodeAt(B);if(10==C||13==C){if(0<A)break}else J.push(f.charAt(B)),255>C&&A++;B++}J.length<f.length&&1<f.length-J.length&&(f=mxUtils.trim(J.join(""))+"...");return f}catch(I){return x.apply(this,
-arguments)}else return x.apply(this,arguments)};var R=this.backgroundImage;if(null!=R){b=Z/b;var w=this.view.translate,H=new mxRectangle(w.x*b,w.y*b,R.width*b,R.height*b);mxUtils.intersects(Y,H)&&y.image(w.x,w.y,R.width,R.height,R.src,!0)}y.scale(a);y.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var la=h.drawCellState,E=h.getLinkForCellState;h.getLinkForCellState=function(a,b){var c=E.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};h.getLinkTargetForCellState=function(a,
-b){return a.view.graph.getLinkTargetForCell(a.cell)};h.drawCellState=function(a,b){for(var c=a.view.graph,d=null!=K?K.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==K||d)&&null!=e;)d=null!=K?K.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==K||d)&&la.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),y);this.updateSvgLinks(V,k,!0);this.addForeignObjectWarning(y,V);return V}finally{r&&(this.useCssTransforms=!0,this.view.revalidate(),
+return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q){var K=null;if(null!=q)for(K=new mxDictionary,m=0;m<q.length;m++)K.put(q[m],!0);if(q=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{b=null!=b?b:1;c=null!=c?c:0;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;var Y="page"==p?this.view.getBackgroundPageBounds():f&&null==K||d||"diagram"==p?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==Y)throw Error(mxResources.get("drawingEmpty"));
+var ba=this.view.scale,t=mxUtils.createXmlDocument(),U=null!=t.createElementNS?t.createElementNS(mxConstants.NS_SVG,"svg"):t.createElement("svg");null!=a&&(null!=U.style?U.style.backgroundColor=a:U.setAttribute("style","background-color:"+a));null==t.createElementNS?(U.setAttribute("xmlns",mxConstants.NS_SVG),U.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):U.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/ba;var u=Math.max(1,Math.ceil(Y.width*a)+2*c)+(l?
+5:0),v=Math.max(1,Math.ceil(Y.height*a)+2*c)+(l?5:0);U.setAttribute("version","1.1");U.setAttribute("width",u+"px");U.setAttribute("height",v+"px");U.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+u+" "+v);t.appendChild(U);var ia=null!=t.createElementNS?t.createElementNS(mxConstants.NS_SVG,"g"):t.createElement("g");U.appendChild(ia);var A=this.createSvgCanvas(ia);A.foOffset=e?-.5:0;A.textOffset=e?-.5:0;A.imageOffset=e?-.5:0;A.translate(Math.floor((c/b-Y.x)/ba),Math.floor((c/b-Y.y)/ba));var z=document.createElement("div"),
+W=A.getAlternateText;A.getAlternateText=function(a,b,c,d,e,f,g,h,k,l,m,n,K){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(z.innerHTML=f,f=mxUtils.extractTextWithWhitespace(z.childNodes));for(var r=Math.ceil(2*d/this.state.fontSize),w=[],B=0,C=0;(0==r||B<r)&&C<f.length;){var D=f.charCodeAt(C);if(10==D||13==D){if(0<B)break}else w.push(f.charAt(C)),255>D&&B++;C++}w.length<f.length&&1<f.length-w.length&&(f=mxUtils.trim(w.join(""))+"...");return f}catch(J){return W.apply(this,
+arguments)}else return W.apply(this,arguments)};var x=this.backgroundImage;if(null!=x){b=ba/b;var H=this.view.translate,I=new mxRectangle(H.x*b,H.y*b,x.width*b,x.height*b);mxUtils.intersects(Y,I)&&A.image(H.x,H.y,x.width,x.height,x.src,!0)}A.scale(a);A.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var y=h.drawCellState,la=h.getLinkForCellState;h.getLinkForCellState=function(a,b){var c=la.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};h.getLinkTargetForCellState=
+function(a,b){return a.view.graph.getLinkTargetForCell(a.cell)};h.drawCellState=function(a,b){for(var c=a.view.graph,d=null!=K?K.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==K||d)&&null!=e;)d=null!=K?K.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==K||d)&&y.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),A);this.updateSvgLinks(U,k,!0);this.addForeignObjectWarning(A,U);return U}finally{q&&(this.useCssTransforms=!0,this.view.revalidate(),
this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,b){if("0"!=urlParams["svg-warning"]&&0<b.getElementsByTagName("foreignObject").length){var c=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=a.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||b.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),
e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=a.createElement("text");f.setAttribute("text-anchor","middle");f.setAttribute("font-size","10px");f.setAttribute("x","50%");f.setAttribute("y","100%");mxUtils.write(f,Graph.foreignObjectWarningText);c.appendChild(d);e.appendChild(f);c.appendChild(e);b.appendChild(c)}};Graph.prototype.updateSvgLinks=function(a,b,c){a=
a.getElementsByTagName("a");for(var d=0;d<a.length;d++)if(null==a[d].getAttribute("target")){var e=a[d].getAttribute("href");null==e&&(e=a[d].getAttribute("xlink:href"));null!=e&&(null!=b&&/^https?:\/\//.test(e)?a[d].setAttribute("target",b):c&&this.isCustomLink(e)&&a[d].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=
@@ -2800,30 +2803,30 @@ this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,funct
b.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return b};var b=!1,c=!1,d=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(a,f,g){a==mxEvent.MOUSE_DOWN&&(f=this.updateMouseEvent(f),b=this.isCellSelected(f.getCell()),c=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,e){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&
(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(e.getEvent())&&(c&&null==e.getCell()&&this.isSelectionEmpty()||b&&this.isCellSelected(e.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",
this.textarea)};mxCellEditor.prototype.alignText=function(a,b){var c=null!=b&&mxEvent.isShiftDown(b);if(c||null!=window.getSelection&&null!=window.getSelection().containsNode){var d=!0;this.graph.processElements(this.textarea,function(a){c||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),a.style.textAlign=null):d=!1});d&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=
-window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(V){}};var t=mxCellRenderer.prototype.initializeLabel;
+window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var b=[],c=0,d=a.rangeCount;c<d;++c)b.push(a.getRangeAt(c));return b}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var b=0,c=a.length;b<c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()}catch(U){}};var t=mxCellRenderer.prototype.initializeLabel;
mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));t.apply(this,arguments)};var u=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?u.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=
!1;var v=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){a=this.graph.getStartEditingCell(a,b);v.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);if(this.graph.getModel().isEdge(c)&&null!=
-d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var w=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=
+d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var x=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode=a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else for(a=a.firstChild,b=b.firstChild;null!=a;){var e=
a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
-a.removeAttribute("border"))):a.parentNode.removeChild(a)}w.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?c(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}x.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?c(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),
0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(b?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,
mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,h=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
h.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&h.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=h.join(" ");this.textarea.style.fontWeight=f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=
b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var k=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(k=mxUtils.replaceTrailingNewlines(k,
"<div><br></div>"));k=this.graph.sanitizeHtml(b?k.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):k,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=
-mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()}};var x=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&
+mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()}};var y=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&
null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=
Math.round((this.bounds.width-4)/c)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/c)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/c)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*c);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/c)+(this.textarea.offsetWidth-
-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*c);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",x.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,b){if("0"==mxUtils.getValue(a.style,
+this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*c);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",y.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,b){if("0"==mxUtils.getValue(a.style,
"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var c=this.graph.getEditingValue(a.cell,b);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>"));return c=this.graph.sanitizeHtml(c,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var b=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);
-return b="1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var F=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();F.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(K){}};var D=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();
-try{D.apply(this,arguments),""==b&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=
+return b="1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var G=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();G.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(K){}};var E=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();
+try{E.apply(this,arguments),""==b&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=
mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(b=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(a,b){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&
!mxEvent.isAltDown(b.getEvent)};mxGraphView.prototype.formatUnitText=function(a){return a?c(a,this.unit):a};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/e-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/e-d.y);e=this.graph.view.unit;this.hint.innerHTML=
-c(b,e)+", "+c(d,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var E=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,b){E.apply(this,arguments);var c=this.graph.getCellStyle(a);if(null==
-c.childLayout){var d=this.graph.model.getParent(a),e=null!=d?this.graph.getCellGeometry(d):null;if(null!=e&&(c=this.graph.getCellStyle(d),"stackLayout"==c.childLayout)){var f=parseFloat(mxUtils.getValue(c,"stackBorder",mxStackLayout.prototype.border)),c="1"==mxUtils.getValue(c,"horizontalStack","1"),g=this.graph.getActualStartSize(d),e=e.clone();c?e.height=b.height+g.y+g.height+2*f:e.width=b.width+g.x+g.width+2*f;this.graph.model.setGeometry(d,e)}}};var z=mxSelectionCellsHandler.prototype.getHandledSelectionCells;
-mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){c.get(a)||(c.put(a,!0),e.push(a))}for(var b=z.apply(this,arguments),c=new mxDictionary,d=this.graph.model,e=[],f=0;f<b.length;f++){var g=b[f];this.graph.isTableCell(g)?a(d.getParent(d.getParent(g))):this.graph.isTableRow(g)&&a(d.getParent(g));a(g)}return e};var G=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var b=G.apply(this,arguments);b.stroke=
-"#C0C0C0";b.strokewidth=1;return b};var y=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var b=y.apply(this,arguments);b.stroke="#C0C0C0";b.strokewidth=1;return b};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-
+c(b,e)+", "+c(d,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var F=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,b){F.apply(this,arguments);var c=this.graph.getCellStyle(a);if(null==
+c.childLayout){var d=this.graph.model.getParent(a),e=null!=d?this.graph.getCellGeometry(d):null;if(null!=e&&(c=this.graph.getCellStyle(d),"stackLayout"==c.childLayout)){var f=parseFloat(mxUtils.getValue(c,"stackBorder",mxStackLayout.prototype.border)),c="1"==mxUtils.getValue(c,"horizontalStack","1"),g=this.graph.getActualStartSize(d),e=e.clone();c?e.height=b.height+g.y+g.height+2*f:e.width=b.width+g.x+g.width+2*f;this.graph.model.setGeometry(d,e)}}};var A=mxSelectionCellsHandler.prototype.getHandledSelectionCells;
+mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){c.get(a)||(c.put(a,!0),e.push(a))}for(var b=A.apply(this,arguments),c=new mxDictionary,d=this.graph.model,e=[],f=0;f<b.length;f++){var g=b[f];this.graph.isTableCell(g)?a(d.getParent(d.getParent(g))):this.graph.isTableRow(g)&&a(d.getParent(g));a(g)}return e};var I=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var b=I.apply(this,arguments);b.stroke=
+"#C0C0C0";b.strokewidth=1;return b};var z=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var b=z.apply(this,arguments);b.stroke="#C0C0C0";b.strokewidth=1;return b};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-
a.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return this.graph.isRecursiveVertexResize(a)&&!mxEvent.isControlDown(b.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent())};
var H=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return H.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var L=mxVertexHandler.prototype.isParentHighlightVisible;
mxVertexHandler.prototype.isParentHighlightVisible=function(){return L.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var P=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||P.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?
@@ -2832,16 +2835,16 @@ a&&(a=[]);var g=b.view.getCellStates(c.getChildCells(this.state.cell,!0));if(0<g
this.shape&&null!=this.state.shape){var a=b.getActualStartSize(d.cell);this.shape.stroke=0==m?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+this.state.width+m*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=d.y+(c==h.length-1?0:a.y*this.graph.view.scale);this.shape.bounds.height=d.height-(c==h.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var n=!1;l.setPosition=function(a,c,d){m=Math.max(Graph.minTableColumnWidth-a.width,c.x-a.x-a.width);n=
mxEvent.isShiftDown(d.getEvent());null==k||n||(m=Math.min((k.x+k.width-g.x-g.width)/b.view.scale-Graph.minTableColumnWidth,m))};l.execute=function(a){if(0!=m)b.setTableColumnWidth(this.state.cell,m,n);else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}m=0};l.reset=function(){m=0};a.push(l)})(c);for(c=0;c<g.length;c++)mxUtils.bind(this,function(c){c=g[c];var h=new mxLine(new mxRectangle,mxConstants.NONE,1);h.isDashed=e.isDashed;
h.svgStrokeTolerance++;c=new mxHandle(c,"row-resize",null,h);c.tableHandle=!0;var k=0;c.shape.node.parentNode.insertBefore(c.shape.node,c.shape.node.parentNode.firstChild);c.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==k?mxConstants.NONE:e.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+k*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};c.setPosition=function(a,
-b,c){k=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height)};c.execute=function(a){if(0!=k)b.setTableRowHeight(this.state.cell,k,!mxEvent.isShiftDown(a.getEvent()));else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}k=0};c.reset=function(){k=0};a.push(c)})(c)}}return null!=a?a.reverse():null};var T=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){T.apply(this,arguments);
+b,c){k=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height)};c.execute=function(a){if(0!=k)b.setTableRowHeight(this.state.cell,k,!mxEvent.isShiftDown(a.getEvent()));else if(!f.blockDelayedSelection){var c=b.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;b.graphHandler.selectCellForEvent(c,a)}k=0};c.reset=function(){k=0};a.push(c)})(c)}}return null!=a?a.reverse():null};var Q=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){Q.apply(this,arguments);
if(null!=this.moveHandles)for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(b=0;b<this.cornerHandles.length;b++)this.cornerHandles[b].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var a=this.graph.model;if(null!=this.moveHandles){for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].parentNode.removeChild(this.moveHandles[b]);this.moveHandles=null}this.moveHandles=[];for(b=
0;b<a.getChildCount(this.state.cell);b++)mxUtils.bind(this,function(b){if(null!=b&&a.isVertex(b.cell)){var c=mxUtils.createImage(Editor.rowMoveImage);c.style.position="absolute";c.style.cursor="pointer";c.style.width="7px";c.style.height="4px";c.style.padding="4px 2px 4px 2px";c.rowState=b;mxEvent.addGestureListeners(c,mxUtils.bind(this,function(a){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(a)&&this.graph.isCellSelected(b.cell)||this.graph.selectCellForEvent(b.cell,
a);mxEvent.isPopupTrigger(a)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0);mxEvent.consume(a)}),null,mxUtils.bind(this,function(a){mxEvent.isPopupTrigger(a)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(a),mxEvent.getClientY(a),b.cell,a),mxEvent.consume(a))}));this.moveHandles.push(c);this.graph.container.appendChild(c)}})(this.graph.view.getState(a.getChildAt(this.state.cell,
-b)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var a=0;a<this.customHandles.length;a++)this.customHandles[a].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var aa=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance,c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&mxStencilRegistry.getStencil(c);
+b)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var a=0;a<this.customHandles.length;a++)this.customHandles[a].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var Z=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance,c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&mxStencilRegistry.getStencil(c);
c=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!c&&null!=this.customHandles)for(var d=0;d<this.customHandles.length;d++)if(null!=this.customHandles[d].shape&&null!=this.customHandles[d].shape.bounds){var e=this.customHandles[d].shape.bounds,f=e.getCenterX(),g=e.getCenterY();if(Math.abs(this.state.x-f)<e.width/2||Math.abs(this.state.y-g)<e.height/2||Math.abs(this.state.x+this.state.width-f)<e.width/2||Math.abs(this.state.y+this.state.height-g)<e.height/
-2){c=!0;break}}c&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,this.graph.isTable(this.state.cell)&&(b+=7),a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=aa.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{b=
+2){c=!0;break}}c&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,this.graph.isTable(this.state.cell)&&(b+=7),a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=Z.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{b=
this.state.view.scale;var d=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/b),d)+" x "+c(this.roundLength(this.bounds.height/b),d)}b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==b&&(b=this.bounds);this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=b.y+b.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};
-mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var ba=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){ba.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var U=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
-function(a,b){U.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(b,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(d.x/f-e.x),e=this.roundLength(d.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=c(g,f)+", "+c(e,f);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
+mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var aa=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){aa.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var T=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(a,b){T.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(b,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,f=this.graph.view.scale,g=this.roundLength(d.x/f-e.x),e=this.roundLength(d.y/f-e.y),f=this.graph.view.unit;this.hint.innerHTML=c(g,f)+", "+c(e,f);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(g=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*g.x)+"%, "+Math.round(100*g.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),d.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=
mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=
mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+
@@ -2860,7 +2863,7 @@ this.graph.view.getState(h[c]),l=this.graph.getCellGeometry(h[c]);null!=k&&null!
var d=b.getX()+c.x,c=b.getY()+c.y,e=this.first.x-d,f=this.first.y-c,g=this.graph.tolerance;if(null!=this.div||Math.abs(e)>g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=
0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=c-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=
this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null)),b.consume()}};var Q=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Q.apply(this,arguments)};var R=(new Date).getTime(),fa=0,na=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){na.apply(this,arguments);c!=this.currentTerminalState?(R=(new Date).getTime(),fa=0):fa=(new Date).getTime()-R;this.currentTerminalState=
+this.secondDiv=null)),b.consume()}};var R=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);R.apply(this,arguments)};var W=(new Date).getTime(),fa=0,na=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){na.apply(this,arguments);c!=this.currentTerminalState?(W=(new Date).getTime(),fa=0):fa=(new Date).getTime()-W;this.currentTerminalState=
c};var oa=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<fa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&oa.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-
1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&--c;return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,
mxConstants.HANDLE_STROKECOLOR)};var pa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return pa.apply(this,arguments)};var da=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
@@ -2906,9 +2909,9 @@ p.style.display="none";mxUtils.write(m,mxResources.get("style"));d.appendChild(m
d.appendChild(b),this.panels.push(new TextFormatPanel(this,a,d))):(b.style.backgroundColor=Format.inactiveTabBackgroundColor,b.style.borderLeftWidth="1px",b.style.cursor="pointer",b.style.width=f?"50%":"33.3%",m=b.cloneNode(!1),l=m.cloneNode(!1),m.style.backgroundColor=Format.inactiveTabBackgroundColor,l.style.backgroundColor=Format.inactiveTabBackgroundColor,f?m.style.borderLeftWidth="0px":(b.style.borderLeftWidth="0px",mxUtils.write(b,mxResources.get("style")),d.appendChild(b),p=d.cloneNode(!1),
p.style.display="none",this.panels.push(new StyleFormatPanel(this,a,p)),this.container.appendChild(p),g(b,p,h++)),mxUtils.write(m,mxResources.get("text")),d.appendChild(m),b=d.cloneNode(!1),b.style.display="none",this.panels.push(new TextFormatPanel(this,a,b)),this.container.appendChild(b),mxUtils.write(l,mxResources.get("arrange")),d.appendChild(l),d=d.cloneNode(!1),d.style.display="none",this.panels.push(new ArrangePanel(this,a,d)),this.container.appendChild(d),g(m,b,h++),g(l,d,h++))}};
BaseFormatPanel=function(a,c,d){this.format=a;this.editorUi=c;this.container=d;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";BaseFormatPanel.prototype.getSelectionState=function(){for(var a=this.editorUi.editor.graph,c=a.getSelectionCells(),d=null,b=0;b<c.length;b++){var f=a.view.getState(c[b]);if(null!=f&&(f=mxUtils.getValue(f.style,mxConstants.STYLE_SHAPE,null),null!=f))if(null==d)d=f;else if(d!=f)return null}return d};
-BaseFormatPanel.prototype.installInputHandler=function(a,c,d,b,f,e,k,g){e=null!=e?e:"";g=null!=g?g:!1;var h=this.editorUi,l=h.editor.graph;b=null!=b?b:1;f=null!=f?f:999;var m=null,p=!1,n=mxUtils.bind(this,function(n){var r=g?parseFloat(a.value):parseInt(a.value);isNaN(r)||c!=mxConstants.STYLE_ROTATION||(r=mxUtils.mod(Math.round(100*r),36E3)/100);r=Math.min(f,Math.max(b,isNaN(r)?d:r));if(l.cellEditor.isContentEditing()&&k)p||(p=!0,null!=m&&(l.cellEditor.restoreSelection(m),m=null),k(r),a.value=r+e,
-p=!1);else if(r!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{var u=l.getSelectionCells();l.setCellStyles(c,r,u);c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(l.getSelectionCells(),function(a){a.style.fontSize=r+"px";a.removeAttribute("size")});for(var v=0;v<u.length;v++)0==l.model.getChildCount(u[v])&&l.autoSizeCell(u[v],!1);h.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[r],"cells",u))}finally{l.getModel().endUpdate()}}a.value=
-r+e;mxEvent.consume(n)});k&&l.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){document.activeElement==l.cellEditor.textarea&&(m=l.cellEditor.saveSelection())}),mxEvent.addListener(a,"touchstart",function(){document.activeElement==l.cellEditor.textarea&&(m=l.cellEditor.saveSelection())}));mxEvent.addListener(a,"change",n);mxEvent.addListener(a,"blur",n);return n};
+BaseFormatPanel.prototype.installInputHandler=function(a,c,d,b,f,e,k,g){e=null!=e?e:"";g=null!=g?g:!1;var h=this.editorUi,l=h.editor.graph;b=null!=b?b:1;f=null!=f?f:999;var m=null,p=!1,n=mxUtils.bind(this,function(n){var q=g?parseFloat(a.value):parseInt(a.value);isNaN(q)||c!=mxConstants.STYLE_ROTATION||(q=mxUtils.mod(Math.round(100*q),36E3)/100);q=Math.min(f,Math.max(b,isNaN(q)?d:q));if(l.cellEditor.isContentEditing()&&k)p||(p=!0,null!=m&&(l.cellEditor.restoreSelection(m),m=null),k(q),a.value=q+e,
+p=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,d)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{var u=l.getSelectionCells();l.setCellStyles(c,q,u);c==mxConstants.STYLE_FONTSIZE&&l.updateLabelElements(l.getSelectionCells(),function(a){a.style.fontSize=q+"px";a.removeAttribute("size")});for(var v=0;v<u.length;v++)0==l.model.getChildCount(u[v])&&l.autoSizeCell(u[v],!1);h.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",u))}finally{l.getModel().endUpdate()}}a.value=
+q+e;mxEvent.consume(n)});k&&l.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){document.activeElement==l.cellEditor.textarea&&(m=l.cellEditor.saveSelection())}),mxEvent.addListener(a,"touchstart",function(){document.activeElement==l.cellEditor.textarea&&(m=l.cellEditor.saveSelection())}));mxEvent.addListener(a,"change",n);mxEvent.addListener(a,"blur",n);return n};
BaseFormatPanel.prototype.createPanel=function(){var a=document.createElement("div");a.className="geFormatSection";a.style.padding="12px 0px 12px 18px";return a};BaseFormatPanel.prototype.createTitle=function(a){var c=document.createElement("div");c.style.padding="0px 0px 6px 0px";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.width="200px";c.style.fontWeight="bold";mxUtils.write(c,a);return c};
BaseFormatPanel.prototype.createStepper=function(a,c,d,b,f,e,k){d=null!=d?d:1;b=null!=b?b:8;if(mxClient.IS_MT||8<=document.documentMode)b+=1;var g=document.createElement("div");mxUtils.setPrefixedStyle(g.style,"borderRadius","3px");g.style.border="1px solid rgb(192, 192, 192)";g.style.position="absolute";var h=document.createElement("div");h.style.borderBottom="1px solid rgb(192, 192, 192)";h.style.position="relative";h.style.height=b+"px";h.style.width="10px";h.className="geBtnUp";g.appendChild(h);
var l=h.cloneNode(!1);l.style.border="none";l.style.height=b+"px";l.className="geBtnDown";g.appendChild(l);mxEvent.addListener(l,"click",function(b){""==a.value&&(a.value=e||"2");var f=k?parseFloat(a.value):parseInt(a.value);isNaN(f)||(a.value=f-d,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(h,"click",function(b){""==a.value&&(a.value=e||"0");var f=k?parseFloat(a.value):parseInt(a.value);isNaN(f)||(a.value=f+d,null!=c&&c(b));mxEvent.consume(b)});if(f){var m=null;mxEvent.addGestureListeners(g,
@@ -2917,9 +2920,9 @@ BaseFormatPanel.prototype.createOption=function(a,c,d,b,f){var e=document.create
!0,k.checked=!0):(k.removeAttribute("checked"),k.defaultChecked=!1,k.checked=!1),l!=a&&(l=a,c()!=l&&d(l)),h=!1)};mxEvent.addListener(e,"click",function(a){if("disabled"!=k.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==e||a==g)k.checked=!k.checked;m(k.checked)}});m(l);null!=b&&(b.install(m),this.listeners.push(b));null!=f&&f(e);return e};
BaseFormatPanel.prototype.createCellOption=function(a,c,d,b,f,e,k,g,h){var l=this.editorUi,m=l.editor.graph;b=null!=b?"null"==b?null:b:1;f=null!=f?"null"==f?null:f:0;var p=null!=h?m.getCommonStyle(h):this.format.selectionState.style;return this.createOption(a,function(){return mxUtils.getValue(p,c,d)!=f},function(a){g&&m.stopEditing();if(null!=k)k.funct();else{m.getModel().beginUpdate();try{var d=null!=h?h:m.getSelectionCells();a=a?b:f;m.setCellStyles(c,a,d);null!=e&&e(d,a);l.fireEvent(new mxEventObject("styleChanged",
"keys",[c],"values",[a],"cells",d))}finally{m.getModel().endUpdate()}}},{install:function(a){this.listener=function(){a(mxUtils.getValue(p,c,d)!=f)};m.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){m.getModel().removeListener(this.listener)}})};
-BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,k){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height="18px";var h=document.createElement("input");h.setAttribute("type","checkbox");h.style.margin="0px 6px 0px 0px";k||g.appendChild(h);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=c(),p=!1,n=null,r=function(a,f,g){p||(p=!0,a=/(^#?[a-zA-Z0-9]*$)/.test(a)?
+BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,k){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height="18px";var h=document.createElement("input");h.setAttribute("type","checkbox");h.style.margin="0px 6px 0px 0px";k||g.appendChild(h);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=c(),p=!1,n=null,q=function(a,f,g){p||(p=!0,a=/(^#?[a-zA-Z0-9]*$)/.test(a)?
a:b,n.innerHTML='<div style="width:36px;height:12px;margin:3px;border:1px solid black;background-color:'+mxUtils.htmlEntities(null!=a&&a!=mxConstants.NONE?a:b)+';"></div>',null!=a&&a!=mxConstants.NONE?(h.setAttribute("checked","checked"),h.defaultChecked=!0,h.checked=!0):(h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1),n.style.display=h.checked||k?"":"none",null!=e&&e(a),f||(m=a,(g||k||c()!=m)&&d(m)),p=!1)},n=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(m,
-function(a){r(a,null,!0)});mxEvent.consume(a)}));n.style.position="absolute";n.style.marginTop="-4px";n.style.right="20px";n.style.height="22px";n.className="geColorBtn";n.style.display=h.checked||k?"":"none";g.appendChild(n);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==h||"INPUT"!=a.nodeName)a!=h&&(h.checked=!h.checked),h.checked||null==m||m==mxConstants.NONE||b==mxConstants.NONE||(b=m),r(h.checked?b:mxConstants.NONE)});r(m,!0);null!=f&&(f.install(r),this.listeners.push(f));
+function(a){q(a,null,!0)});mxEvent.consume(a)}));n.style.position="absolute";n.style.marginTop="-4px";n.style.right="20px";n.style.height="22px";n.className="geColorBtn";n.style.display=h.checked||k?"":"none";g.appendChild(n);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==h||"INPUT"!=a.nodeName)a!=h&&(h.checked=!h.checked),h.checked||null==m||m==mxConstants.NONE||b==mxConstants.NONE||(b=m),q(h.checked?b:mxConstants.NONE)});q(m,!0);null!=f&&(f.install(q),this.listeners.push(f));
return g};
BaseFormatPanel.prototype.createCellColorOption=function(a,c,d,b,f){var e=this.editorUi,k=e.editor.graph;return this.createColorOption(a,function(){var a=k.view.getState(k.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,null):null},function(a){k.getModel().beginUpdate();try{k.setCellStyles(c,a,k.getSelectionCells()),null!=f&&f(a),e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",k.getSelectionCells()))}finally{k.getModel().endUpdate()}},d||mxConstants.NONE,{install:function(a){this.listener=
function(){var b=k.view.getState(k.getSelectionCell());null!=b&&a(mxUtils.getValue(b.style,c,null))};k.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){k.getModel().removeListener(this.listener)}},b)};
@@ -2947,7 +2950,7 @@ d.getModel().isEdge(b)||d.isSwimlane(b)||d.isTable(b)||f.row||f.cell)&&0<d.getMo
k.setAttribute("title",mxResources.get("copySize")+" ("+this.editorUi.actions.get("copySize").shortcut+")"),k.style.width="202px",k.style.marginBottom="2px",a.appendChild(k),e++,null!=c.copiedSize)){var g=mxUtils.button(mxResources.get("pasteSize"),function(a){c.actions.get("pasteSize").funct(a)});g.setAttribute("title",mxResources.get("pasteSize")+" ("+this.editorUi.actions.get("pasteSize").shortcut+")");a.appendChild(g);e++;k.style.width="100px";k.style.marginBottom="2px";g.style.width="100px";
g.style.marginBottom="2px"}0<d.getSelectionCount()&&(0<e&&(mxUtils.br(a),e=0),k=mxUtils.button(mxResources.get("copyData"),function(a){c.actions.get("copyData").funct(a)}),k.setAttribute("title",mxResources.get("copyData")+" ("+this.editorUi.actions.get("copyData").shortcut+")"),k.style.width="202px",k.style.marginBottom="2px",a.appendChild(k),e++,null!=c.copiedValue&&(g=mxUtils.button(mxResources.get("pasteData"),function(a){c.actions.get("pasteData").funct(a)}),g.setAttribute("title",mxResources.get("pasteData")+
" ("+this.editorUi.actions.get("pasteData").shortcut+")"),a.appendChild(g),e++,k.style.width="100px",k.style.marginBottom="2px",g.style.width="100px",g.style.marginBottom="2px"));1==d.getSelectionCount()&&d.getModel().isVertex(b)&&!f.row&&!f.cell&&d.getModel().isVertex(d.getModel().getParent(b))?(0<e&&mxUtils.br(a),k=mxUtils.button(mxResources.get("removeFromGroup"),function(a){c.actions.get("removeFromGroup").funct()}),k.setAttribute("title",mxResources.get("removeFromGroup")),k.style.width="202px",
-k.style.marginBottom="2px",a.appendChild(k),e++):0<d.getSelectionCount()&&(0<e&&mxUtils.br(a),k=mxUtils.button(mxResources.get("clearWaypoints"),mxUtils.bind(this,function(a){this.editorUi.actions.get("clearWaypoints").funct()})),k.setAttribute("title",mxResources.get("clearWaypoints")+" ("+this.editorUi.actions.get("clearWaypoints").shortcut+")"),k.style.width="202px",k.style.marginBottom="2px",a.appendChild(k),e++);1==d.getSelectionCount()&&(0<e&&mxUtils.br(a),k=mxUtils.button(mxResources.get("editData"),
+k.style.marginBottom="2px",a.appendChild(k),e++):0<d.getSelectionCount()&&(0<e&&mxUtils.br(a),k=mxUtils.button(mxResources.get("clearWaypoints"),mxUtils.bind(this,function(a){this.editorUi.actions.get("clearWaypoints").funct(a)})),k.setAttribute("title",mxResources.get("clearWaypoints")+" ("+this.editorUi.actions.get("clearWaypoints").shortcut+")"),k.style.width="202px",k.style.marginBottom="2px",a.appendChild(k),e++);1==d.getSelectionCount()&&(0<e&&mxUtils.br(a),k=mxUtils.button(mxResources.get("editData"),
mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()})),k.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")"),k.style.width="100px",k.style.marginBottom="2px",a.appendChild(k),e++,k=mxUtils.button(mxResources.get("editLink"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editLink").funct()})),k.setAttribute("title",mxResources.get("editLink")+" ("+this.editorUi.actions.get("editLink").shortcut+")"),k.style.width=
"100px",k.style.marginLeft="2px",k.style.marginBottom="2px",a.appendChild(k),e++);0==e&&(a.style.display="none");return a};
ArrangePanel.prototype.addAlign=function(a){var c=this.editorUi.editor.graph;a.style.paddingTop="6px";a.style.paddingBottom="12px";a.appendChild(this.createTitle(mxResources.get("align")));var d=document.createElement("div");d.style.position="relative";d.style.paddingLeft="0px";d.style.borderWidth="0px";d.className="geToolbarContainer";var b=this.editorUi.toolbar.addButton("geSprite-alignleft",mxResources.get("left"),function(){c.alignCells(mxConstants.ALIGN_LEFT)},d),f=this.editorUi.toolbar.addButton("geSprite-aligncenter",
@@ -2963,47 +2966,47 @@ a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)),e.value=isN
BaseFormatPanel.prototype.inUnit=function(a){return this.editorUi.editor.graph.view.formatUnitText(a)};BaseFormatPanel.prototype.fromUnit=function(a){switch(this.editorUi.editor.graph.view.unit){case mxConstants.POINTS:return a;case mxConstants.INCHES:return a*mxConstants.PIXELS_PER_INCH;case mxConstants.MILLIMETERS:return a*mxConstants.PIXELS_PER_MM}};BaseFormatPanel.prototype.isFloatUnit=function(){return this.editorUi.editor.graph.view.unit!=mxConstants.POINTS};
BaseFormatPanel.prototype.getUnitStep=function(){switch(this.editorUi.editor.graph.view.unit){case mxConstants.POINTS:return 1;case mxConstants.INCHES:return.1;case mxConstants.MILLIMETERS:return.5}};
ArrangePanel.prototype.addGeometry=function(a){var c=this,d=this.editorUi,b=d.editor.graph,f=b.getModel(),e=this.format.getSelectionState(),k=this.createPanel();k.style.paddingBottom="8px";var g=document.createElement("div");g.style.position="absolute";g.style.width="50px";g.style.marginTop="0px";g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("size"));k.appendChild(g);var h,l,m,p,n=this.addUnitInput(k,this.getUnit(),84,44,function(){h.apply(this,arguments)},this.getUnitStep(),null,null,
-this.isFloatUnit()),r=this.addUnitInput(k,this.getUnit(),20,44,function(){l.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),t=document.createElement("div");t.className="geSprite geSprite-fit";t.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");t.style.position="relative";t.style.cursor="pointer";t.style.marginTop="-3px";t.style.border="0px";t.style.left="42px";mxUtils.setOpacity(t,50);mxEvent.addListener(t,"mouseenter",
+this.isFloatUnit()),q=this.addUnitInput(k,this.getUnit(),20,44,function(){l.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),t=document.createElement("div");t.className="geSprite geSprite-fit";t.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");t.style.position="relative";t.style.cursor="pointer";t.style.marginTop="-3px";t.style.border="0px";t.style.left="42px";mxUtils.setOpacity(t,50);mxEvent.addListener(t,"mouseenter",
function(){mxUtils.setOpacity(t,100)});mxEvent.addListener(t,"mouseleave",function(){mxUtils.setOpacity(t,50)});mxEvent.addListener(t,"click",function(){d.actions.get("autosize").funct()});k.appendChild(t);e.row?(n.style.visibility="hidden",n.nextSibling.style.visibility="hidden"):this.addLabel(k,mxResources.get("width"),84);this.addLabel(k,mxResources.get("height"),20);mxUtils.br(k);g=document.createElement("div");g.style.paddingTop="8px";g.style.paddingRight="20px";g.style.whiteSpace="nowrap";g.style.textAlign=
-"right";var u=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");u.style.width="100%";g.appendChild(u);e.cell||e.row?t.style.visibility="hidden":k.appendChild(g);var v=u.getElementsByTagName("input")[0];this.addKeyHandler(n,D);this.addKeyHandler(r,D);h=this.addGeometryHandler(n,function(a,d,e){if(b.isTableCell(e))return b.setTableColumnWidth(e,d-a.width,!0),!0;0<a.width&&(d=Math.max(1,c.fromUnit(d)),v.checked&&(a.height=Math.round(a.height*
-d*100/a.width)/100),a.width=d)});l=this.addGeometryHandler(r,function(a,d,e){b.isTableCell(e)&&(e=b.model.getParent(e));if(b.isTableRow(e))return b.setTableRowHeight(e,d-a.height),!0;0<a.height&&(d=Math.max(1,c.fromUnit(d)),v.checked&&(a.width=Math.round(a.width*d*100/a.height)/100),a.height=d)});(e.resizable||e.row||e.cell)&&a.appendChild(k);var w=this.createPanel();w.style.paddingBottom="30px";g=document.createElement("div");g.style.position="absolute";g.style.width="70px";g.style.marginTop="0px";
-g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("position"));w.appendChild(g);var x=this.addUnitInput(w,this.getUnit(),84,44,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),F=this.addUnitInput(w,this.getUnit(),20,44,function(){p.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(w);this.addLabel(w,mxResources.get("left"),84);this.addLabel(w,mxResources.get("top"),20);var D=mxUtils.bind(this,function(a,c,d){e=this.format.getSelectionState();
-if(e.containsLabel||e.vertices.length!=b.getSelectionCount()||null==e.width||null==e.height)k.style.display="none";else{k.style.display="";if(d||document.activeElement!=n)n.value=this.inUnit(e.width)+(""==e.width?"":" "+this.getUnit());if(d||document.activeElement!=r)r.value=this.inUnit(e.height)+(""==e.height?"":" "+this.getUnit())}if(e.vertices.length==b.getSelectionCount()&&null!=e.x&&null!=e.y){w.style.display="";if(d||document.activeElement!=x)x.value=this.inUnit(e.x)+(""==e.x?"":" "+this.getUnit());
-if(d||document.activeElement!=F)F.value=this.inUnit(e.y)+(""==e.y?"":" "+this.getUnit())}else w.style.display="none"});this.addKeyHandler(x,D);this.addKeyHandler(F,D);f.addListener(mxEvent.CHANGE,D);this.listeners.push({destroy:function(){f.removeListener(D)}});D();m=this.addGeometryHandler(x,function(a,b){b=c.fromUnit(b);a.relative?a.offset.x=b:a.x=b});p=this.addGeometryHandler(F,function(a,b){b=c.fromUnit(b);a.relative?a.offset.y=b:a.y=b});if(e.movable){if(0==e.edges.length&&1==e.vertices.length&&
-f.isEdge(f.getParent(e.vertices[0]))){var E=b.getCellGeometry(e.vertices[0]);null!=E&&E.relative&&(g=mxUtils.button(mxResources.get("center"),mxUtils.bind(this,function(a){f.beginUpdate();try{E=E.clone(),E.x=0,E.y=0,E.offset=new mxPoint,f.setGeometry(e.vertices[0],E)}finally{f.endUpdate()}})),g.setAttribute("title",mxResources.get("center")),g.style.width="202px",g.style.position="absolute",mxUtils.br(w),mxUtils.br(w),w.appendChild(g))}a.appendChild(w)}};
+"right";var u=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");u.style.width="100%";g.appendChild(u);e.cell||e.row?t.style.visibility="hidden":k.appendChild(g);var v=u.getElementsByTagName("input")[0];this.addKeyHandler(n,E);this.addKeyHandler(q,E);h=this.addGeometryHandler(n,function(a,d,e){if(b.isTableCell(e))return b.setTableColumnWidth(e,d-a.width,!0),!0;0<a.width&&(d=Math.max(1,c.fromUnit(d)),v.checked&&(a.height=Math.round(a.height*
+d*100/a.width)/100),a.width=d)});l=this.addGeometryHandler(q,function(a,d,e){b.isTableCell(e)&&(e=b.model.getParent(e));if(b.isTableRow(e))return b.setTableRowHeight(e,d-a.height),!0;0<a.height&&(d=Math.max(1,c.fromUnit(d)),v.checked&&(a.width=Math.round(a.width*d*100/a.height)/100),a.height=d)});(e.resizable||e.row||e.cell)&&a.appendChild(k);var x=this.createPanel();x.style.paddingBottom="30px";g=document.createElement("div");g.style.position="absolute";g.style.width="70px";g.style.marginTop="0px";
+g.style.fontWeight="bold";mxUtils.write(g,mxResources.get("position"));x.appendChild(g);var y=this.addUnitInput(x,this.getUnit(),84,44,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),G=this.addUnitInput(x,this.getUnit(),20,44,function(){p.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(x);this.addLabel(x,mxResources.get("left"),84);this.addLabel(x,mxResources.get("top"),20);var E=mxUtils.bind(this,function(a,c,d){e=this.format.getSelectionState();
+if(e.containsLabel||e.vertices.length!=b.getSelectionCount()||null==e.width||null==e.height)k.style.display="none";else{k.style.display="";if(d||document.activeElement!=n)n.value=this.inUnit(e.width)+(""==e.width?"":" "+this.getUnit());if(d||document.activeElement!=q)q.value=this.inUnit(e.height)+(""==e.height?"":" "+this.getUnit())}if(e.vertices.length==b.getSelectionCount()&&null!=e.x&&null!=e.y){x.style.display="";if(d||document.activeElement!=y)y.value=this.inUnit(e.x)+(""==e.x?"":" "+this.getUnit());
+if(d||document.activeElement!=G)G.value=this.inUnit(e.y)+(""==e.y?"":" "+this.getUnit())}else x.style.display="none"});this.addKeyHandler(y,E);this.addKeyHandler(G,E);f.addListener(mxEvent.CHANGE,E);this.listeners.push({destroy:function(){f.removeListener(E)}});E();m=this.addGeometryHandler(y,function(a,b){b=c.fromUnit(b);a.relative?a.offset.x=b:a.x=b});p=this.addGeometryHandler(G,function(a,b){b=c.fromUnit(b);a.relative?a.offset.y=b:a.y=b});if(e.movable){if(0==e.edges.length&&1==e.vertices.length&&
+f.isEdge(f.getParent(e.vertices[0]))){var F=b.getCellGeometry(e.vertices[0]);null!=F&&F.relative&&(g=mxUtils.button(mxResources.get("center"),mxUtils.bind(this,function(a){f.beginUpdate();try{F=F.clone(),F.x=0,F.y=0,F.offset=new mxPoint,f.setGeometry(e.vertices[0],F)}finally{f.endUpdate()}})),g.setAttribute("title",mxResources.get("center")),g.style.width="202px",g.style.position="absolute",mxUtils.br(x),mxUtils.br(x),x.appendChild(g))}a.appendChild(x)}};
ArrangePanel.prototype.addGeometryHandler=function(a,c){function d(d){if(""!=a.value){var g=parseFloat(a.value);if(isNaN(g))a.value=f+" "+e.getUnit();else if(g!=f){b.getModel().beginUpdate();try{for(var h=b.getSelectionCells(),k=0;k<h.length;k++)if(b.getModel().isVertex(h[k])){var m=b.getCellGeometry(h[k]);if(null!=m&&(m=m.clone(),!c(m,g,h[k]))){var p=b.view.getState(h[k]);null!=p&&b.isRecursiveVertexResize(p)&&b.resizeChildCells(h[k],m);b.getModel().setGeometry(h[k],m);b.constrainChildCells(h[k])}}}finally{b.getModel().endUpdate()}f=
g;a.value=g+" "+e.getUnit()}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null,e=this;mxEvent.addListener(a,"blur",d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
ArrangePanel.prototype.addEdgeGeometryHandler=function(a,c){function d(d){if(""!=a.value){var e=parseFloat(a.value);if(isNaN(e))a.value=f+" pt";else if(e!=f){b.getModel().beginUpdate();try{for(var g=b.getSelectionCells(),h=0;h<g.length;h++)if(b.getModel().isEdge(g[h])){var l=b.getCellGeometry(g[h]);null!=l&&(l=l.clone(),c(l,e),b.getModel().setGeometry(g[h],l))}}finally{b.getModel().endUpdate()}f=e;a.value=e+" pt"}}mxEvent.consume(d)}var b=this.editorUi.editor.graph,f=null;mxEvent.addListener(a,"blur",
d);mxEvent.addListener(a,"change",d);mxEvent.addListener(a,"focus",function(){f=a.value});return d};
ArrangePanel.prototype.addEdgeGeometry=function(a){function c(a){var c=parseInt(p.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth)&&(b.setCellStyles("width",c,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[c],"cells",b.getSelectionCells())));p.value=c+" pt";mxEvent.consume(a)}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createPanel(),
-k=document.createElement("div");k.style.position="absolute";k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,mxResources.get("width"));e.appendChild(k);var g,h,l,m,p=this.addUnitInput(e,"pt",20,44,function(){c.apply(this,arguments)});mxUtils.br(e);this.addKeyHandler(p,x);mxEvent.addListener(p,"blur",c);mxEvent.addListener(p,"change",c);a.appendChild(e);var n=this.createPanel();n.style.paddingBottom="30px";k=document.createElement("div");k.style.position="absolute";
-k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,"Start");n.appendChild(k);var r=this.addUnitInput(n,"pt",84,44,function(){l.apply(this,arguments)}),t=this.addUnitInput(n,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("left"),84);this.addLabel(n,mxResources.get("top"),20);a.appendChild(n);this.addKeyHandler(r,x);this.addKeyHandler(t,x);var u=this.createPanel();u.style.paddingBottom="30px";k=document.createElement("div");
-k.style.position="absolute";k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,"End");u.appendChild(k);var v=this.addUnitInput(u,"pt",84,44,function(){g.apply(this,arguments)}),w=this.addUnitInput(u,"pt",20,44,function(){h.apply(this,arguments)});mxUtils.br(u);this.addLabel(u,mxResources.get("left"),84);this.addLabel(u,mxResources.get("top"),20);a.appendChild(u);this.addKeyHandler(v,x);this.addKeyHandler(w,x);var x=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
-a=b.getSelectionCell();if("link"==f.style.shape||"flexArrow"==f.style.shape){if(e.style.display="",d||document.activeElement!=p)d=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),p.value=d+" pt"}else e.style.display="none";1==b.getSelectionCount()&&b.model.isEdge(a)?(d=b.model.getGeometry(a),null!=d.sourcePoint&&null==b.model.getTerminal(a,!0)?(r.value=d.sourcePoint.x,t.value=d.sourcePoint.y):n.style.display="none",null!=d.targetPoint&&null==b.model.getTerminal(a,
-!1)?(v.value=d.targetPoint.x,w.value=d.targetPoint.y):u.style.display="none"):(n.style.display="none",u.style.display="none")});l=this.addEdgeGeometryHandler(r,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(t,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(v,function(a,b){a.targetPoint.x=b});h=this.addEdgeGeometryHandler(w,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,x);this.listeners.push({destroy:function(){b.getModel().removeListener(x)}});
-x()};TextFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
-TextFormatPanel.prototype.addFont=function(a){function c(a,b){a.style.backgroundImage=b?"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createTitle(mxResources.get("font"));e.style.paddingLeft="18px";e.style.paddingTop="10px";e.style.paddingBottom="6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";
-e.className="geToolbarContainer";if(b.cellEditor.isContentEditing()){var k=e.cloneNode(),g=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",k,null,!0);g.style.color="rgb(112, 112, 112)";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.margin="0px";this.addArrow(g);g.style.width="192px";g.style.height="15px";g=g.getElementsByTagName("div")[0];g.style.cssFloat="right";a.appendChild(k)}a.appendChild(e);k=this.createPanel();k.style.marginTop=
-"8px";k.style.borderTop="1px solid #c0c0c0";k.style.paddingTop="6px";k.style.paddingBottom="6px";var h=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e,null,!0);h.style.color="rgb(112, 112, 112)";h.style.whiteSpace="nowrap";h.style.overflow="hidden";h.style.margin="0px";this.addArrow(h);h.style.width="192px";h.style.height="15px";g=e.cloneNode(!1);g.style.marginLeft="-3px";var l=this.editorUi.toolbar.addItems(["bold","italic","underline"],g,!0);l[0].setAttribute("title",
-mxResources.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")");l[1].setAttribute("title",mxResources.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")");l[2].setAttribute("title",mxResources.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+")");var m=this.editorUi.toolbar.addItems(["vertical"],g,!0)[0];a.appendChild(g);this.styleButtons(l);this.styleButtons([m]);var p=e.cloneNode(!1);p.style.marginLeft="-3px";p.style.paddingBottom="0px";var n=function(a){return function(){return a()}},
-r=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_LEFT,a)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),p),t=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_CENTER,a)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],
-[mxConstants.ALIGN_CENTER])),p),u=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_RIGHT,a)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),p);this.styleButtons([r,t,u]);if(b.cellEditor.isContentEditing()){var v=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",
-!1,null)},g);this.styleButtons([v]);v.firstChild.style.background="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMwMTAxMDEiIGQ9Ik03LjI0IDguNzVjLS4yNi0uNDgtLjM5LTEuMDMtLjM5LTEuNjcgMC0uNjEuMTMtMS4xNi40LTEuNjcuMjYtLjUuNjMtLjkzIDEuMTEtMS4yOS40OC0uMzUgMS4wNS0uNjMgMS43LS44My42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzLjI1LjU1LjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzLS4yOS4wOS0uNTMuMjEtLjcyLjM2LS4xOS4xNi0uMzQuMzQtLjQ0LjU1LS4xLjIxLS4xNS40My0uMTUuNjYgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjA1LS4wOC0uMTEtLjE3LS4xNS0uMjV6TTIxIDEydi0ySDN2Mmg5LjYyYy4xOC4wNy40LjE0LjU1LjIuMzcuMTcuNjYuMzQuODcuNTEuMjEuMTcuMzUuMzYuNDMuNTcuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzUtLjE0LS4zMS0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguMTYuNDUuMzcuODUuNjUgMS4yMS4yOC4zNS42LjY2Ljk4LjkyLjM3LjI2Ljc4LjQ4IDEuMjIuNjUuNDQuMTcuOS4zIDEuMzguMzkuNDguMDguOTYuMTMgMS40NC4xMy44IDAgMS41My0uMDkgMi4xOC0uMjhzMS4yMS0uNDUgMS42Ny0uNzljLjQ2LS4zNC44Mi0uNzcgMS4wNy0xLjI3cy4zOC0xLjA3LjM4LTEuNzFjMC0uNi0uMS0xLjE0LS4zMS0xLjYxLS4wNS0uMTEtLjExLS4yMy0uMTctLjMzSDIxeiIvPjwvc3ZnPg==)";
-v.firstChild.style.backgroundPosition="2px 2px";v.firstChild.style.backgroundSize="18px 18px";this.styleButtons([v])}var w=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),p),x=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),p),F=this.editorUi.toolbar.addButton("geSprite-bottom",
-mxResources.get("bottom"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),p);this.styleButtons([w,x,F]);a.appendChild(p);var D,E,z,G,y,H,L;b.cellEditor.isContentEditing()?(w.style.display="none",x.style.display="none",F.style.display="none",m.style.display="none",z=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==z.style.opacity&&document.execCommand("justifyfull",!1,null)},p),z.style.marginRight=
-"9px",z.style.opacity=1,this.styleButtons([z,D=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},p),E=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},p)]),D.style.marginLeft="9px",n=p.cloneNode(!1),n.style.paddingTop="4px",p=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
+k=document.createElement("div");k.style.position="absolute";k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,mxResources.get("width"));e.appendChild(k);var g,h,l,m,p=this.addUnitInput(e,"pt",20,44,function(){c.apply(this,arguments)});mxUtils.br(e);this.addKeyHandler(p,y);mxEvent.addListener(p,"blur",c);mxEvent.addListener(p,"change",c);a.appendChild(e);var n=this.createPanel();n.style.paddingBottom="30px";k=document.createElement("div");k.style.position="absolute";
+k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,"Start");n.appendChild(k);var q=this.addUnitInput(n,"pt",84,44,function(){l.apply(this,arguments)}),t=this.addUnitInput(n,"pt",20,44,function(){m.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,mxResources.get("left"),84);this.addLabel(n,mxResources.get("top"),20);a.appendChild(n);this.addKeyHandler(q,y);this.addKeyHandler(t,y);var u=this.createPanel();u.style.paddingBottom="30px";k=document.createElement("div");
+k.style.position="absolute";k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,"End");u.appendChild(k);var v=this.addUnitInput(u,"pt",84,44,function(){g.apply(this,arguments)}),x=this.addUnitInput(u,"pt",20,44,function(){h.apply(this,arguments)});mxUtils.br(u);this.addLabel(u,mxResources.get("left"),84);this.addLabel(u,mxResources.get("top"),20);a.appendChild(u);this.addKeyHandler(v,y);this.addKeyHandler(x,y);var y=mxUtils.bind(this,function(a,c,d){f=this.format.getSelectionState();
+a=b.getSelectionCell();if("link"==f.style.shape||"flexArrow"==f.style.shape){if(e.style.display="",d||document.activeElement!=p)d=mxUtils.getValue(f.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),p.value=d+" pt"}else e.style.display="none";1==b.getSelectionCount()&&b.model.isEdge(a)?(d=b.model.getGeometry(a),null!=d.sourcePoint&&null==b.model.getTerminal(a,!0)?(q.value=d.sourcePoint.x,t.value=d.sourcePoint.y):n.style.display="none",null!=d.targetPoint&&null==b.model.getTerminal(a,
+!1)?(v.value=d.targetPoint.x,x.value=d.targetPoint.y):u.style.display="none"):(n.style.display="none",u.style.display="none")});l=this.addEdgeGeometryHandler(q,function(a,b){a.sourcePoint.x=b});m=this.addEdgeGeometryHandler(t,function(a,b){a.sourcePoint.y=b});g=this.addEdgeGeometryHandler(v,function(a,b){a.targetPoint.x=b});h=this.addEdgeGeometryHandler(x,function(a,b){a.targetPoint.y=b});b.getModel().addListener(mxEvent.CHANGE,y);this.listeners.push({destroy:function(){b.getModel().removeListener(y)}});
+y()};TextFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(TextFormatPanel,BaseFormatPanel);TextFormatPanel.prototype.init=function(){this.container.style.borderBottom="none";this.addFont(this.container)};
+TextFormatPanel.prototype.addFont=function(a){function c(a,b){a.style.backgroundImage=b?Editor.isDarkMode()?"linear-gradient(rgb(0 161 241) 0px, rgb(0, 97, 146) 100%)":"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}var d=this.editorUi,b=d.editor.graph,f=this.format.getSelectionState(),e=this.createTitle(mxResources.get("font"));e.style.paddingLeft="18px";e.style.paddingTop="10px";e.style.paddingBottom="6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";
+e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";if(b.cellEditor.isContentEditing()){var k=e.cloneNode(),g=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",k,null,!0);g.style.color="rgb(112, 112, 112)";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.margin="0px";this.addArrow(g);g.style.width="192px";g.style.height="15px";g=g.getElementsByTagName("div")[0];g.style.cssFloat=
+"right";a.appendChild(k)}a.appendChild(e);k=this.createPanel();k.style.marginTop="8px";k.style.borderTop="1px solid #c0c0c0";k.style.paddingTop="6px";k.style.paddingBottom="6px";var h=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e,null,!0);h.style.color="rgb(112, 112, 112)";h.style.whiteSpace="nowrap";h.style.overflow="hidden";h.style.margin="0px";this.addArrow(h);h.style.width="192px";h.style.height="15px";g=e.cloneNode(!1);g.style.marginLeft="-3px";var l=
+this.editorUi.toolbar.addItems(["bold","italic","underline"],g,!0);l[0].setAttribute("title",mxResources.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")");l[1].setAttribute("title",mxResources.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")");l[2].setAttribute("title",mxResources.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+")");var m=this.editorUi.toolbar.addItems(["vertical"],g,!0)[0];a.appendChild(g);this.styleButtons(l);this.styleButtons([m]);
+var p=e.cloneNode(!1);p.style.marginLeft="-3px";p.style.paddingBottom="0px";var n=function(a){return function(){return a()}},q=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_LEFT,a)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),p),t=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),b.cellEditor.isContentEditing()?
+function(a){b.cellEditor.alignText(mxConstants.ALIGN_CENTER,a)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),p),u=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),b.cellEditor.isContentEditing()?function(a){b.cellEditor.alignText(mxConstants.ALIGN_RIGHT,a)}:n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),p);this.styleButtons([q,t,u]);if(b.cellEditor.isContentEditing()){var v=
+this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",!1,null)},g);this.styleButtons([v]);v.firstChild.style.background="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMwMTAxMDEiIGQ9Ik03LjI0IDguNzVjLS4yNi0uNDgtLjM5LTEuMDMtLjM5LTEuNjcgMC0uNjEuMTMtMS4xNi40LTEuNjcuMjYtLjUuNjMtLjkzIDEuMTEtMS4yOS40OC0uMzUgMS4wNS0uNjMgMS43LS44My42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzLjI1LjU1LjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzLS4yOS4wOS0uNTMuMjEtLjcyLjM2LS4xOS4xNi0uMzQuMzQtLjQ0LjU1LS4xLjIxLS4xNS40My0uMTUuNjYgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjA1LS4wOC0uMTEtLjE3LS4xNS0uMjV6TTIxIDEydi0ySDN2Mmg5LjYyYy4xOC4wNy40LjE0LjU1LjIuMzcuMTcuNjYuMzQuODcuNTEuMjEuMTcuMzUuMzYuNDMuNTcuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzUtLjE0LS4zMS0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguMTYuNDUuMzcuODUuNjUgMS4yMS4yOC4zNS42LjY2Ljk4LjkyLjM3LjI2Ljc4LjQ4IDEuMjIuNjUuNDQuMTcuOS4zIDEuMzguMzkuNDguMDguOTYuMTMgMS40NC4xMy44IDAgMS41My0uMDkgMi4xOC0uMjhzMS4yMS0uNDUgMS42Ny0uNzljLjQ2LS4zNC44Mi0uNzcgMS4wNy0xLjI3cy4zOC0xLjA3LjM4LTEuNzFjMC0uNi0uMS0xLjE0LS4zMS0xLjYxLS4wNS0uMTEtLjExLS4yMy0uMTctLjMzSDIxeiIvPjwvc3ZnPg==)";
+v.firstChild.style.backgroundPosition="2px 2px";v.firstChild.style.backgroundSize="18px 18px";this.styleButtons([v])}var x=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),p),y=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),p),G=this.editorUi.toolbar.addButton("geSprite-bottom",
+mxResources.get("bottom"),n(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),p);this.styleButtons([x,y,G]);a.appendChild(p);var E,F,A,I,z,H,L;b.cellEditor.isContentEditing()?(x.style.display="none",y.style.display="none",G.style.display="none",m.style.display="none",A=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==A.style.opacity&&document.execCommand("justifyfull",!1,null)},p),A.style.marginRight=
+"9px",A.style.opacity=1,this.styleButtons([A,E=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},p),F=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},p)]),E.style.marginLeft="9px",n=p.cloneNode(!1),n.style.paddingTop="4px",p=[this.editorUi.toolbar.addButton("geSprite-orderedlist",
mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",
!1,null)},n),this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},n),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){b.cellEditor.toggleViewMode()},n)],this.styleButtons(p),p[p.length-2].style.marginLeft="9px",a.appendChild(n)):(l[2].style.marginRight="9px",u.style.marginRight="9px");p=e.cloneNode(!1);p.style.marginLeft="0px";p.style.paddingTop="8px";p.style.paddingBottom=
"4px";p.style.fontWeight="normal";mxUtils.write(p,mxResources.get("position"));var P=document.createElement("select");P.style.position="absolute";P.style.right="20px";P.style.width="97px";P.style.marginTop="-2px";for(var v="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),N={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM],
topRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM],left:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE],center:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE],right:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE],bottomLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,
mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},n=0;n<v.length;n++){var M=document.createElement("option");M.setAttribute("value",v[n]);mxUtils.write(M,mxResources.get(v[n]));P.appendChild(M)}p.appendChild(P);v=e.cloneNode(!1);v.style.marginLeft="0px";v.style.paddingTop="4px";v.style.paddingBottom="4px";v.style.fontWeight=
-"normal";mxUtils.write(v,mxResources.get("writingDirection"));var T=document.createElement("select");T.style.position="absolute";T.style.right="20px";T.style.width="97px";T.style.marginTop="-2px";for(var M=["automatic","leftToRight","rightToLeft"],aa={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},n=0;n<M.length;n++){var ba=document.createElement("option");ba.setAttribute("value",M[n]);mxUtils.write(ba,mxResources.get(M[n]));T.appendChild(ba)}v.appendChild(T);
+"normal";mxUtils.write(v,mxResources.get("writingDirection"));var Q=document.createElement("select");Q.style.position="absolute";Q.style.right="20px";Q.style.width="97px";Q.style.marginTop="-2px";for(var M=["automatic","leftToRight","rightToLeft"],Z={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},n=0;n<M.length;n++){var aa=document.createElement("option");aa.setAttribute("value",M[n]);mxUtils.write(aa,mxResources.get(M[n]));Q.appendChild(aa)}v.appendChild(Q);
b.isEditing()||(a.appendChild(p),mxEvent.addListener(P,"change",function(a){b.getModel().beginUpdate();try{var c=N[P.value];null!=c&&(b.setCellStyles(mxConstants.STYLE_LABEL_POSITION,c[0],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,c[1],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_ALIGN,c[2],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,c[3],b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(v),
-mxEvent.addListener(T,"change",function(a){b.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,aa[T.value],b.getSelectionCells());mxEvent.consume(a)}));var U=document.createElement("input");U.style.textAlign="right";U.style.marginTop="4px";U.style.position="absolute";U.style.right="32px";U.style.width="40px";U.style.height="17px";g.appendChild(U);var S=null,p=this.installInputHandler(U,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(window.getSelection&&!mxClient.IS_IE&&
+mxEvent.addListener(Q,"change",function(a){b.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,Z[Q.value],b.getSelectionCells());mxEvent.consume(a)}));var T=document.createElement("input");T.style.textAlign="right";T.style.marginTop="4px";T.style.position="absolute";T.style.right="32px";T.style.width="40px";T.style.height="17px";g.appendChild(T);var S=null,p=this.installInputHandler(T,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(window.getSelection&&!mxClient.IS_IE&&
!mxClient.IS_IE11){var c=function(c,e){null!=b.cellEditor.textarea&&c!=b.cellEditor.textarea&&b.cellEditor.textarea.contains(c)&&(e||d.containsNode(c,!0))&&("FONT"==c.nodeName?(c.removeAttribute("size"),c.style.fontSize=a+"px"):mxUtils.getCurrentStyle(c).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(c.parentNode).fontSize!=a+"px"?c.style.fontSize=a+"px":c.style.fontSize=""))},d=window.getSelection(),e=0<d.rangeCount?d.getRangeAt(0).commonAncestorContainer:b.cellEditor.textarea;e!=b.cellEditor.textarea&&
-e.nodeType==mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");e!=b.cellEditor.textarea&&(e=e.parentNode);if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getElementsByTagName("*");c(e);for(e=0;e<f.length;e++)c(f[e])}U.value=a+" pt"}else if(window.getSelection||document.selection)if(c=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},f=null,document.selection?f=document.selection.createRange().parentElement():(d=window.getSelection(),0<d.rangeCount&&
-(f=d.getRangeAt(0).commonAncestorContainer)),null!=f&&c(b.cellEditor.textarea,f))for(S=a,document.execCommand("fontSize",!1,"4"),f=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<f.length;e++)if("4"==f[e].getAttribute("size")){f[e].removeAttribute("size");f[e].style.fontSize=S+"px";window.setTimeout(function(){U.value=S+" pt";S=null},0);break}},!0),p=this.createStepper(U,p,1,10,!0,Menus.prototype.defaultFontSize);p.style.display=U.style.display;p.style.marginTop="4px";p.style.right="20px";
-g.appendChild(p);g=h.getElementsByTagName("div")[0];g.style.cssFloat="right";var Q=null,R="#ffffff",fa=null,na="#000000",oa=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return R},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){Q=a},destroy:function(){Q=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",
+e.nodeType==mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");e!=b.cellEditor.textarea&&(e=e.parentNode);if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getElementsByTagName("*");c(e);for(e=0;e<f.length;e++)c(f[e])}T.value=a+" pt"}else if(window.getSelection||document.selection)if(c=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},f=null,document.selection?f=document.selection.createRange().parentElement():(d=window.getSelection(),0<d.rangeCount&&
+(f=d.getRangeAt(0).commonAncestorContainer)),null!=f&&c(b.cellEditor.textarea,f))for(S=a,document.execCommand("fontSize",!1,"4"),f=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<f.length;e++)if("4"==f[e].getAttribute("size")){f[e].removeAttribute("size");f[e].style.fontSize=S+"px";window.setTimeout(function(){T.value=S+" pt";S=null},0);break}},!0),p=this.createStepper(T,p,1,10,!0,Menus.prototype.defaultFontSize);p.style.display=T.style.display;p.style.marginTop="4px";p.style.right="20px";
+g.appendChild(p);g=h.getElementsByTagName("div")[0];g.style.cssFloat="right";var R=null,W="#ffffff",fa=null,na="#000000",oa=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return W},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){R=a},destroy:function(){R=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",
null,function(a){b.updateLabelElements(b.getSelectionCells(),function(a){a.style.backgroundColor=null})});oa.style.fontWeight="bold";var pa=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");pa.style.fontWeight="bold";g=1<=f.vertices.length?b.stylesheet.getDefaultVertexStyle():b.stylesheet.getDefaultEdgeStyle();g=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return na},function(a){if(mxClient.IS_FF){for(var c=
b.cellEditor.textarea.getElementsByTagName("font"),d=[],e=0;e<c.length;e++)d.push({node:c[e],color:c[e].getAttribute("color")});document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent");a=b.cellEditor.textarea.getElementsByTagName("font");for(e=0;e<a.length;e++)if(e>=d.length||a[e]!=d[e].node||a[e]==d[e].node&&a[e].getAttribute("color")!=d[e].color){d=a[e].firstChild;if(null!=d&&"A"==d.nodeName&&null==d.nextSibling&&null!=d.firstChild){a[e].parentNode.insertBefore(d,a[e]);for(c=d.firstChild;null!=
c;){var f=c.nextSibling;a[e].appendChild(c);c=f}d.appendChild(a[e])}break}}else document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent")},null!=g[mxConstants.STYLE_FONTCOLOR]?g[mxConstants.STYLE_FONTCOLOR]:"#000000",{install:function(a){fa=a},destroy:function(){fa=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,null!=g[mxConstants.STYLE_FONTCOLOR]?g[mxConstants.STYLE_FONTCOLOR]:"#000000",function(a){oa.style.display=a==mxConstants.NONE?
@@ -3014,26 +3017,26 @@ a.appendChild(k);k=this.createPanel();k.style.paddingTop="2px";k.style.paddingBo
91);this.addLabel(g,mxResources.get("right"),20);if(b.cellEditor.isContentEditing()){var ma=null,ja=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),null,null,function(a){var c=""==a.value?120:parseInt(a.value),c=Math.max(0,isNaN(c)?120:c);null!=ma&&(b.cellEditor.restoreSelection(ma),ma=null);for(var d=b.getSelectedElement();null!=d&&d.nodeType!=mxConstants.NODETYPE_ELEMENT;)d=d.parentNode;null!=d&&d==b.cellEditor.textarea&&null!=b.cellEditor.textarea.firstChild&&("P"!=b.cellEditor.textarea.firstChild.nodeName&&
(b.cellEditor.textarea.innerHTML="<p>"+b.cellEditor.textarea.innerHTML+"</p>"),d=b.cellEditor.textarea.firstChild);null!=d&&null!=b.cellEditor.textarea&&d!=b.cellEditor.textarea&&b.cellEditor.textarea.contains(d)&&(d.style.lineHeight=c+"%");a.value=c+" %"},function(a){ja=a;mxEvent.addListener(a,"mousedown",function(){document.activeElement==b.cellEditor.textarea&&(ma=b.cellEditor.saveSelection())});mxEvent.addListener(a,"touchstart",function(){document.activeElement==b.cellEditor.textarea&&(ma=b.cellEditor.saveSelection())});
a.value="120 %"}));k=e.cloneNode(!1);k.style.paddingLeft="0px";g=this.editorUi.toolbar.addItems(["link","image"],k,!0);p=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",mxResources.get("insertHorizontalRule"),function(){document.execCommand("inserthorizontalrule",!1)},k),this.editorUi.toolbar.addMenuFunctionInContainer(k,"geSprite-table",mxResources.get("table"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.addInsertTableItem(a)}))];this.styleButtons(g);this.styleButtons(p);g=this.createPanel();
-g.style.paddingTop="10px";g.style.paddingBottom="10px";g.appendChild(this.createTitle(mxResources.get("insert")));g.appendChild(k);a.appendChild(g);g=e.cloneNode(!1);g.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),mxUtils.bind(this,function(){try{null!=y&&b.insertColumn(y,null!=H?H.cellIndex:0)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),
-mxUtils.bind(this,function(){try{null!=y&&b.insertColumn(y,null!=H?H.cellIndex+1:-1)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{null!=y&&null!=H&&b.deleteColumn(y,H.cellIndex)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),mxUtils.bind(this,function(){try{null!=y&&null!=L&&b.insertRow(y,
-L.sectionRowIndex)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{null!=y&&null!=L&&b.insertRow(y,L.sectionRowIndex+1)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{null!=y&&null!=L&&b.deleteRow(y,L.sectionRowIndex)}catch(K){this.editorUi.handleError(K)}}),g)];this.styleButtons(p);
-p[2].style.marginRight="9px";k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("table")));k.appendChild(g);e=e.cloneNode(!1);e.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),mxUtils.bind(this,function(a){if(null!=y){var c=y.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+
-("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(c,function(c){var d=null==H||null!=a&&mxEvent.isShiftDown(a)?y:H;b.processElements(d,function(a){a.style.border=null});null==c||c==mxConstants.NONE?(d.removeAttribute("border"),d.style.border="",d.style.borderCollapse=""):(d.setAttribute("border","1"),d.style.border="1px solid "+c,d.style.borderCollapse="collapse")})}}),e),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),
-mxUtils.bind(this,function(a){if(null!=y){var c=y.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(c,function(c){var d=null==H||null!=a&&mxEvent.isShiftDown(a)?y:H;b.processElements(d,function(a){a.style.backgroundColor=null});d.style.backgroundColor=null==c||c==mxConstants.NONE?"":c})}}),e),this.editorUi.toolbar.addButton("geSprite-fit",
-mxResources.get("spacing"),function(){if(null!=y){var a=y.getAttribute("cellPadding")||0,a=new FilenameDialog(d,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?y.setAttribute("cellPadding",a):y.removeAttribute("cellPadding")}),mxResources.get("spacing"));d.showDialog(a.container,300,80,!0,!0);a.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=y&&y.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",
-mxResources.get("center"),function(){null!=y&&y.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=y&&y.setAttribute("align","right")},e)];this.styleButtons(p);p[2].style.marginRight="9px";k.appendChild(e);a.appendChild(k);G=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(g);var X=mxUtils.bind(this,function(a,b,d){f=this.format.getSelectionState();
-a=mxUtils.getValue(f.style,mxConstants.STYLE_FONTSTYLE,0);c(l[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(l[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);c(l[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);h.firstChild.nodeValue=mxUtils.getValue(f.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);c(m,"0"==mxUtils.getValue(f.style,mxConstants.STYLE_HORIZONTAL,"1"));if(d||document.activeElement!=U)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_FONTSIZE,
-Menus.prototype.defaultFontSize)),U.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);c(r,a==mxConstants.ALIGN_LEFT);c(t,a==mxConstants.ALIGN_CENTER);c(u,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(w,a==mxConstants.ALIGN_TOP);c(x,a==mxConstants.ALIGN_MIDDLE);c(F,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(f.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);
+g.style.paddingTop="10px";g.style.paddingBottom="10px";g.appendChild(this.createTitle(mxResources.get("insert")));g.appendChild(k);a.appendChild(g);g=e.cloneNode(!1);g.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),mxUtils.bind(this,function(){try{null!=z&&b.insertColumn(z,null!=H?H.cellIndex:0)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),
+mxUtils.bind(this,function(){try{null!=z&&b.insertColumn(z,null!=H?H.cellIndex+1:-1)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{null!=z&&null!=H&&b.deleteColumn(z,H.cellIndex)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),mxUtils.bind(this,function(){try{null!=z&&null!=L&&b.insertRow(z,
+L.sectionRowIndex)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{null!=z&&null!=L&&b.insertRow(z,L.sectionRowIndex+1)}catch(K){this.editorUi.handleError(K)}}),g),this.editorUi.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{null!=z&&null!=L&&b.deleteRow(z,L.sectionRowIndex)}catch(K){this.editorUi.handleError(K)}}),g)];this.styleButtons(p);
+p[2].style.marginRight="9px";k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("table")));k.appendChild(g);e=e.cloneNode(!1);e.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),mxUtils.bind(this,function(a){if(null!=z){var c=z.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+
+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(c,function(c){var d=null==H||null!=a&&mxEvent.isShiftDown(a)?z:H;b.processElements(d,function(a){a.style.border=null});null==c||c==mxConstants.NONE?(d.removeAttribute("border"),d.style.border="",d.style.borderCollapse=""):(d.setAttribute("border","1"),d.style.border="1px solid "+c,d.style.borderCollapse="collapse")})}}),e),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),
+mxUtils.bind(this,function(a){if(null!=z){var c=z.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)});this.editorUi.pickColor(c,function(c){var d=null==H||null!=a&&mxEvent.isShiftDown(a)?z:H;b.processElements(d,function(a){a.style.backgroundColor=null});d.style.backgroundColor=null==c||c==mxConstants.NONE?"":c})}}),e),this.editorUi.toolbar.addButton("geSprite-fit",
+mxResources.get("spacing"),function(){if(null!=z){var a=z.getAttribute("cellPadding")||0,a=new FilenameDialog(d,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?z.setAttribute("cellPadding",a):z.removeAttribute("cellPadding")}),mxResources.get("spacing"));d.showDialog(a.container,300,80,!0,!0);a.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=z&&z.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",
+mxResources.get("center"),function(){null!=z&&z.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=z&&z.setAttribute("align","right")},e)];this.styleButtons(p);p[2].style.marginRight="9px";k.appendChild(e);a.appendChild(k);I=k}else a.appendChild(k),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(g);var X=mxUtils.bind(this,function(a,b,d){f=this.format.getSelectionState();
+a=mxUtils.getValue(f.style,mxConstants.STYLE_FONTSTYLE,0);c(l[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(l[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);c(l[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);h.firstChild.nodeValue=mxUtils.getValue(f.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);c(m,"0"==mxUtils.getValue(f.style,mxConstants.STYLE_HORIZONTAL,"1"));if(d||document.activeElement!=T)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_FONTSIZE,
+Menus.prototype.defaultFontSize)),T.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);c(q,a==mxConstants.ALIGN_LEFT);c(t,a==mxConstants.ALIGN_CENTER);c(u,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(x,a==mxConstants.ALIGN_TOP);c(y,a==mxConstants.ALIGN_MIDDLE);c(G,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(f.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);
b=mxUtils.getValue(f.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);P.value=a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&b==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&b==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&b==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&b==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?
-"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(f.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?T.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?T.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(T.value="automatic");if(d||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING,2)),ga.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ka)a=parseFloat(mxUtils.getValue(f.style,
+"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(f.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?Q.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?Q.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(Q.value="automatic");if(d||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING,2)),ga.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ka)a=parseFloat(mxUtils.getValue(f.style,
mxConstants.STYLE_SPACING_TOP,0)),ka.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ea)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_RIGHT,0)),ea.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ca)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_BOTTOM,0)),ca.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=ha)a=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_SPACING_LEFT,0)),ha.value=isNaN(a)?"":a+" pt"});qa=this.installInputHandler(ga,
-mxConstants.STYLE_SPACING,2,-999,999," pt");da=this.installInputHandler(ka,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");va=this.installInputHandler(ea,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ra=this.installInputHandler(ca,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ua=this.installInputHandler(ha,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(U,X);this.addKeyHandler(ga,X);this.addKeyHandler(ka,X);this.addKeyHandler(ea,X);this.addKeyHandler(ca,X);this.addKeyHandler(ha,
+mxConstants.STYLE_SPACING,2,-999,999," pt");da=this.installInputHandler(ka,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");va=this.installInputHandler(ea,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ra=this.installInputHandler(ca,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ua=this.installInputHandler(ha,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(T,X);this.addKeyHandler(ga,X);this.addKeyHandler(ka,X);this.addKeyHandler(ea,X);this.addKeyHandler(ca,X);this.addKeyHandler(ha,
X);b.getModel().addListener(mxEvent.CHANGE,X);this.listeners.push({destroy:function(){b.getModel().removeListener(X)}});X();if(b.cellEditor.isContentEditing()){var sa=!1,e=function(){sa||(sa=!0,window.setTimeout(function(){var a=b.getSelectedEditingElement();if(null!=a){var d=function(a,b){if(null!=a&&null!=b){if(a==b)return!0;if(a.length>b.length+1)return a.substring(a.length-b.length-1,a.length)=="-"+b}return!1},e=function(c){if(null!=b.getParentByName(a,c,b.cellEditor.textarea))return!0;for(var d=
a;null!=d&&1==d.childNodes.length;)if(d=d.childNodes[0],d.nodeName==c)return!0;return!1},g=function(a){a=null!=a?a.fontSize:null;return null!=a&&"px"==a.substring(a.length-2)?parseFloat(a):mxConstants.DEFAULT_FONTSIZE},k=function(a,b,c){return null!=c.style&&null!=b?(b=b.lineHeight,null!=c.style.lineHeight&&"%"==c.style.lineHeight.substring(c.style.lineHeight.length-1)?parseInt(c.style.lineHeight)/100:"px"==b.substring(b.length-2)?parseFloat(b)/a:parseInt(b)):""},m=mxUtils.getCurrentStyle(a),n=g(m),
-p=k(n,m,a),v=a.getElementsByTagName("*");if(0<v.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var x=window.getSelection(),w=0;w<v.length;w++)if(x.containsNode(v[w],!0)){temp=mxUtils.getCurrentStyle(v[w]);var n=Math.max(g(temp),n),N=k(n,temp,v[w]);if(N!=p||isNaN(N))p=""}null!=m&&(c(l[0],"bold"==m.fontWeight||400<m.fontWeight||e("B")||e("STRONG")),c(l[1],"italic"==m.fontStyle||e("I")||e("EM")),c(l[2],e("U")),c(E,e("SUP")),c(D,e("SUB")),b.cellEditor.isTableSelected()?(c(z,d(m.textAlign,
-"justify")),c(r,d(m.textAlign,"left")),c(t,d(m.textAlign,"center")),c(u,d(m.textAlign,"right"))):(e=b.cellEditor.align||mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),d(m.textAlign,"justify")?(c(z,d(m.textAlign,"justify")),c(r,!1),c(t,!1),c(u,!1)):(c(z,!1),c(r,e==mxConstants.ALIGN_LEFT),c(t,e==mxConstants.ALIGN_CENTER),c(u,e==mxConstants.ALIGN_RIGHT))),y=b.getParentByName(a,"TABLE",b.cellEditor.textarea),L=null==y?null:b.getParentByName(a,"TR",y),H=null==y?null:b.getParentByNames(a,
-["TD","TH"],y),G.style.display=null!=y?"":"none",document.activeElement!=U&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=S?(a.removeAttribute("size"),a.style.fontSize=S+" pt",S=null):U.value=isNaN(n)?"":n+" pt",N=parseFloat(p),isNaN(N)?ja.value="100 %":ja.value=Math.round(100*N)+" %"),d=m.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),
-n=m.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),null!=fa&&(na="#"==d.charAt(0)?d:"#000000",fa(na,!0)),null!=Q&&(R="#"==n.charAt(0)?n:null,Q(R,!0)),null!=h.firstChild&&(h.firstChild.nodeValue=Graph.stripQuotes(m.fontFamily)))}sa=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(b.cellEditor.textarea,
+p=k(n,m,a),v=a.getElementsByTagName("*");if(0<v.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var x=window.getSelection(),y=0;y<v.length;y++)if(x.containsNode(v[y],!0)){temp=mxUtils.getCurrentStyle(v[y]);var n=Math.max(g(temp),n),N=k(n,temp,v[y]);if(N!=p||isNaN(N))p=""}null!=m&&(c(l[0],"bold"==m.fontWeight||400<m.fontWeight||e("B")||e("STRONG")),c(l[1],"italic"==m.fontStyle||e("I")||e("EM")),c(l[2],e("U")),c(F,e("SUP")),c(E,e("SUB")),b.cellEditor.isTableSelected()?(c(A,d(m.textAlign,
+"justify")),c(q,d(m.textAlign,"left")),c(t,d(m.textAlign,"center")),c(u,d(m.textAlign,"right"))):(e=b.cellEditor.align||mxUtils.getValue(f.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),d(m.textAlign,"justify")?(c(A,d(m.textAlign,"justify")),c(q,!1),c(t,!1),c(u,!1)):(c(A,!1),c(q,e==mxConstants.ALIGN_LEFT),c(t,e==mxConstants.ALIGN_CENTER),c(u,e==mxConstants.ALIGN_RIGHT))),z=b.getParentByName(a,"TABLE",b.cellEditor.textarea),L=null==z?null:b.getParentByName(a,"TR",z),H=null==z?null:b.getParentByNames(a,
+["TD","TH"],z),I.style.display=null!=z?"":"none",document.activeElement!=T&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=S?(a.removeAttribute("size"),a.style.fontSize=S+" pt",S=null):T.value=isNaN(n)?"":n+" pt",N=parseFloat(p),isNaN(N)?ja.value="100 %":ja.value=Math.round(100*N)+" %"),d=m.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),
+n=m.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(a,b,c,d){return"#"+("0"+Number(b).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)}),null!=fa&&(na="#"==d.charAt(0)?d:"#000000",fa(na,!0)),null!=R&&(W="#"==n.charAt(0)?n:null,R(W,!0)),null!=h.firstChild&&(h.firstChild.nodeValue=Graph.stripQuotes(m.fontFamily)))}sa=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(b.cellEditor.textarea,
"DOMSubtreeModified",e);mxEvent.addListener(b.cellEditor.textarea,"input",e);mxEvent.addListener(b.cellEditor.textarea,"touchend",e);mxEvent.addListener(b.cellEditor.textarea,"mouseup",e);mxEvent.addListener(b.cellEditor.textarea,"keyup",e);this.listeners.push({destroy:function(){}});e()}return a};StyleFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();a.containsLabel||(a.containsImage&&1==a.vertices.length&&"image"==a.style.shape&&null!=a.style.image&&"data:image/svg+xml;"==a.style.image.substring(0,19)&&this.container.appendChild(this.addSvgStyles(this.createPanel())),a.containsImage&&"image"!=a.style.shape||this.container.appendChild(this.addFill(this.createPanel())),this.container.appendChild(this.addStroke(this.createPanel())),this.container.appendChild(this.addLineJumps(this.createPanel())),
a=this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_OPACITY,41),a.style.paddingTop="8px",a.style.paddingBottom="8px",this.container.appendChild(a),this.container.appendChild(this.addEffects(this.createPanel())));a=this.addEditOps(this.createPanel());null!=a.firstChild&&mxUtils.br(a);this.container.appendChild(this.addStyleOps(a))};
@@ -3051,24 +3054,24 @@ mxConstants.DIRECTION_WEST],h=0;h<l.length;h++){var m=document.createElement("op
mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH),e=mxUtils.getValue(d.style,"fillStyle","auto");""==c&&(c=mxConstants.DIRECTION_SOUTH);b.value=c;f.value=e;a.style.display=d.fill?"":"none";c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,null);!d.fill||d.containsImage||null==c||c==mxConstants.NONE||"filledEdge"==d.style.shape?(f.style.display="none",k.style.display="none"):(f.style.display="1"==d.style.sketch?"":"none",k.style.display="1"!=d.style.sketch||"solid"==e||"auto"==
e?"":"none")});c.getModel().addListener(mxEvent.CHANGE,p);this.listeners.push({destroy:function(){c.getModel().removeListener(p)}});p();mxEvent.addListener(b,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,b.value,c.getSelectionCells());mxEvent.consume(a)});mxEvent.addListener(f,"change",function(a){c.setCellStyles("fillStyle",f.value,c.getSelectionCells());mxEvent.consume(a)});a.appendChild(e);a.appendChild(k);e=this.getCustomColors();for(h=0;h<e.length;h++)a.appendChild(this.createCellColorOption(e[h].title,
e[h].key,e[h].defaultValue));return a};StyleFormatPanel.prototype.getCustomColors=function(){var a=this.format.getSelectionState(),c=[];"swimlane"!=a.style.shape&&"table"!=a.style.shape||c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c};
-StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseInt(v.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));v.value=c+" pt";mxEvent.consume(a)}function d(a){var c=parseInt(w.value),c=Math.min(999,Math.max(1,isNaN(c)?1:
-c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));w.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var k=document.createElement("div");k.style.fontWeight=
+StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseInt(v.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));v.value=c+" pt";mxEvent.consume(a)}function d(a){var c=parseInt(x.value),c=Math.min(999,Math.max(1,isNaN(c)?1:
+c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(f.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,f.getSelectionCells()),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",f.getSelectionCells())));x.value=c+" pt";mxEvent.consume(a)}var b=this.editorUi,f=b.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var k=document.createElement("div");k.style.fontWeight=
"bold";e.stroke||(k.style.display="none");var g=document.createElement("select");g.style.position="absolute";g.style.marginTop="-2px";g.style.right="72px";g.style.width="80px";for(var h=["sharp","rounded","curved"],l=0;l<h.length;l++){var m=document.createElement("option");m.setAttribute("value",h[l]);mxUtils.write(m,mxResources.get(h[l]));g.appendChild(m)}mxEvent.addListener(g,"change",function(a){f.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],d=["0",null];
"rounded"==g.value?d=["1",null]:"curved"==g.value&&(d=[null,"1"]);for(var e=0;e<c.length;e++)f.setCellStyles(c[e],d[e],f.getSelectionCells());b.fireEvent(new mxEventObject("styleChanged","keys",c,"values",d,"cells",f.getSelectionCells()))}finally{f.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});var p="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,h="image"==e.style.shape?mxResources.get("border"):mxResources.get("line"),
-l=1<=e.vertices.length?f.stylesheet.getDefaultVertexStyle():f.stylesheet.getDefaultEdgeStyle(),h=this.createCellColorOption(h,p,null!=l[p]?l[p]:"#000000",null,mxUtils.bind(this,function(a){f.updateCellStyles(p,a,f.getSelectionCells())}));h.appendChild(g);k.appendChild(h);var n=k.cloneNode(!1);n.style.fontWeight="normal";n.style.whiteSpace="nowrap";n.style.position="relative";n.style.paddingLeft="16px";n.style.marginBottom="2px";n.style.marginTop="2px";n.className="geToolbarContainer";var r=mxUtils.bind(this,
+l=1<=e.vertices.length?f.stylesheet.getDefaultVertexStyle():f.stylesheet.getDefaultEdgeStyle(),h=this.createCellColorOption(h,p,null!=l[p]?l[p]:"#000000",null,mxUtils.bind(this,function(a){f.updateCellStyles(p,a,f.getSelectionCells())}));h.appendChild(g);k.appendChild(h);var n=k.cloneNode(!1);n.style.fontWeight="normal";n.style.whiteSpace="nowrap";n.style.position="relative";n.style.paddingLeft="16px";n.style.marginBottom="2px";n.style.marginTop="2px";n.className="geToolbarContainer";var q=mxUtils.bind(this,
function(a,b,c,d,e){a=this.editorUi.menus.styleChange(a,"",d,e,"geIcon",null);d=document.createElement("div");d.style.width=b+"px";d.style.height="1px";d.style.borderBottom="1px "+c+" "+this.defaultStrokeColor;d.style.paddingTop="6px";a.firstChild.firstChild.style.padding="0px 4px 0px 4px";a.firstChild.firstChild.style.width=b+"px";a.firstChild.firstChild.appendChild(d);return a}),l=this.editorUi.toolbar.addMenuFunctionInContainer(n,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,
-function(a){r(a,75,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));r(a,75,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));r(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");r(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",
-mxResources.get("dotted")+" (2)");r(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),t=n.cloneNode(!1),u=this.editorUi.toolbar.addMenuFunctionInContainer(t,"geSprite-connection",mxResources.get("connection"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],[null,null,null,null],"geIcon geSprite geSprite-connection",
+function(a){q(a,75,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));q(a,75,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",
+mxResources.get("dotted")+" (2)");q(a,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),t=n.cloneNode(!1),u=this.editorUi.toolbar.addMenuFunctionInContainer(t,"geSprite-connection",mxResources.get("connection"),!1,mxUtils.bind(this,function(a){this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],[null,null,null,null],"geIcon geSprite geSprite-connection",
null,!0).setAttribute("title",mxResources.get("line"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["link",null,null,null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",mxResources.get("link"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",
-mxResources.get("arrow"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),m=this.editorUi.toolbar.addMenuFunctionInContainer(t,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){r(a,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",
-mxResources.get("solid"));r(a,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));r(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");r(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");r(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],
-["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),h=n.cloneNode(!1),v=document.createElement("input");v.style.textAlign="right";v.style.marginTop="min"==uiTheme?"0px":"2px";v.style.width="41px";v.setAttribute("title",mxResources.get("linewidth"));n.appendChild(v);var w=v.cloneNode(!0);t.appendChild(w);var x=this.createStepper(v,c,1,9);x.style.display=v.style.display;x.style.marginTop="min"==uiTheme?"0px":"2px";n.appendChild(x);var F=this.createStepper(w,d,1,9);F.style.display=
-w.style.display;F.style.marginTop="min"==uiTheme?"0px":"2px";t.appendChild(F);v.style.position="absolute";v.style.height="15px";v.style.left="141px";x.style.left="190px";w.style.position="absolute";w.style.left="141px";w.style.height="15px";F.style.left="190px";mxEvent.addListener(v,"blur",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(w,"blur",d);mxEvent.addListener(w,"change",d);var D=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-orthogonal",mxResources.get("waypoints"),
+mxResources.get("arrow"));this.editorUi.menus.styleChange(a,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),m=this.editorUi.toolbar.addMenuFunctionInContainer(t,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(a){q(a,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",
+mxResources.get("solid"));q(a,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");q(a,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],
+["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),h=n.cloneNode(!1),v=document.createElement("input");v.style.textAlign="right";v.style.marginTop="min"==uiTheme?"0px":"2px";v.style.width="41px";v.setAttribute("title",mxResources.get("linewidth"));n.appendChild(v);var x=v.cloneNode(!0);t.appendChild(x);var y=this.createStepper(v,c,1,9);y.style.display=v.style.display;y.style.marginTop="min"==uiTheme?"0px":"2px";n.appendChild(y);var G=this.createStepper(x,d,1,9);G.style.display=
+x.style.display;G.style.marginTop="min"==uiTheme?"0px":"2px";t.appendChild(G);v.style.position="absolute";v.style.height="15px";v.style.left="141px";y.style.left="190px";x.style.position="absolute";x.style.left="141px";x.style.height="15px";G.style.left="190px";mxEvent.addListener(v,"blur",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(x,"blur",d);mxEvent.addListener(x,"change",d);var E=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-orthogonal",mxResources.get("waypoints"),
!1,mxUtils.bind(this,function(a){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",null,!0).setAttribute("title",mxResources.get("straight")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",null,!0).setAttribute("title",
mxResources.get("orthogonal")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",
null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",
"vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),"connector"==e.style.shape&&this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],
-["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),E=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-startclassic",mxResources.get("linestart"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.NONE,0],"geIcon",null,!1);b.setAttribute("title",
+["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),F=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-startclassic",mxResources.get("linestart"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.NONE,0],"geIcon",null,!1);b.setAttribute("title",
mxResources.get("none"));b.firstChild.firstChild.innerHTML='<font style="font-size:10px;">'+mxUtils.htmlEntities(mxResources.get("none"))+"</font>";"connector"==e.style.shape||"filledEdge"==e.style.shape?(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_CLASSIC,1],"geIcon geSprite geSprite-startclassic",null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],
[mxConstants.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-startclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_OPEN,0],"geIcon geSprite geSprite-startopen",null,!1).setAttribute("title",mxResources.get("openArrow")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-startopenthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",
[mxConstants.STYLE_STARTARROW,"startFill"],["openAsync",0],"geIcon geSprite geSprite-startopenasync",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_BLOCK,1],"geIcon geSprite geSprite-startblock",null,!1).setAttribute("title",mxResources.get("block")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_BLOCK_THIN,1],"geIcon geSprite geSprite-startblockthin",null,!1),this.editorUi.menus.edgeStyleChange(a,
@@ -3080,7 +3083,7 @@ mxResources.get("diamond")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstant
0],"geIcon geSprite geSvgSprite geSprite-halfCircle",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["dash",0],"geIcon geSprite geSprite-startdash",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["cross",0],"geIcon geSprite geSprite-startcross",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["circlePlus",0],"geIcon geSprite geSprite-startcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_STARTARROW,"startFill"],["circle",1],"geIcon geSprite geSprite-startcircle",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERone",0],"geIcon geSprite geSprite-starterone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmandOne",0],"geIcon geSprite geSprite-starteronetoone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmany",0],"geIcon geSprite geSprite-startermany",
null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERoneToMany",0],"geIcon geSprite geSprite-starteronetomany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-starteroneopt",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-startermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(a,
-"",[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}})),z=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon",
+"",[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}})),A=this.editorUi.toolbar.addMenuFunctionInContainer(h,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(a){if("connector"==e.style.shape||"flexArrow"==e.style.shape||"filledEdge"==e.style.shape){var b=this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon",
null,!1);b.setAttribute("title",mxResources.get("none"));b.firstChild.firstChild.innerHTML='<font style="font-size:10px;">'+mxUtils.htmlEntities(mxResources.get("none"))+"</font>";"connector"==e.style.shape||"filledEdge"==e.style.shape?(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_CLASSIC,1],"geIcon geSprite geSprite-endclassic",null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
"endFill"],[mxConstants.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-endclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN,0],"geIcon geSprite geSprite-endopen",null,!1).setAttribute("title",mxResources.get("openArrow")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-endopenthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
"endFill"],["openAsync",0],"geIcon geSprite geSprite-endopenasync",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK,1],"geIcon geSprite geSprite-endblock",null,!1).setAttribute("title",mxResources.get("block")),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK_THIN,1],"geIcon geSprite geSprite-endblockthin",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,
@@ -3092,21 +3095,21 @@ null,!1);b.setAttribute("title",mxResources.get("none"));b.firstChild.firstChild
null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["dash",0],"geIcon geSprite geSprite-enddash",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["cross",0],"geIcon geSprite geSprite-endcross",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circlePlus",0],"geIcon geSprite geSprite-endcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],
["circle",1],"geIcon geSprite geSprite-endcircle",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERone",0],"geIcon geSprite geSprite-enderone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmandOne",0],"geIcon geSprite geSprite-enderonetoone",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],"geIcon geSprite geSprite-endermany",null,!1),this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],"geIcon geSprite geSprite-enderonetomany",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],
-"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(u,8);this.addArrow(D);this.addArrow(E);this.addArrow(z);x=this.addArrow(l,9);x.className="geIcon";x.style.width="auto";F=this.addArrow(m,9);F.className="geIcon";F.style.width="22px";var G=document.createElement("div");G.style.width="85px";G.style.height="1px";G.style.borderBottom="1px solid "+this.defaultStrokeColor;G.style.marginBottom="9px";x.appendChild(G);var y=document.createElement("div");
-y.style.width="23px";y.style.height="1px";y.style.borderBottom="1px solid "+this.defaultStrokeColor;y.style.marginBottom="9px";F.appendChild(y);l.style.height="15px";m.style.height="15px";u.style.height="15px";D.style.height="17px";E.style.marginLeft="3px";E.style.height="17px";z.style.marginLeft="3px";z.style.height="17px";a.appendChild(k);a.appendChild(t);a.appendChild(n);l=n.cloneNode(!1);l.style.paddingBottom="6px";l.style.paddingTop="4px";l.style.fontWeight="normal";m=document.createElement("div");
-m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));l.appendChild(m);var H,L,P=this.addUnitInput(l,"pt",74,33,function(){H.apply(this,arguments)}),N=this.addUnitInput(l,"pt",20,33,function(){L.apply(this,arguments)});mxUtils.br(l);x=document.createElement("div");x.style.height="8px";l.appendChild(x);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));
-l.appendChild(m);var M,T,aa=this.addUnitInput(l,"pt",74,33,function(){M.apply(this,arguments)}),ba=this.addUnitInput(l,"pt",20,33,function(){T.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom="2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.style.paddingBottom="18px";m=
-document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,mxResources.get("perimeter"));k.appendChild(m);var U,S=this.addUnitInput(k,"pt",20,41,function(){U.apply(this,arguments)});e.edges.length==f.getSelectionCount()?(a.appendChild(h),a.appendChild(l)):e.vertices.length==f.getSelectionCount()&&a.appendChild(k);var Q=mxUtils.bind(this,function(a,c,d){function h(a,
-c,d,f){d=d.getElementsByTagName("div")[0];null!=d&&(d.className=b.getCssClassForMarker(f,e.style.shape,a,c),"geSprite geSprite-noarrow"==d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter="none",d.style.color=this.defaultStrokeColor,d.nextSibling.style.marginTop="0px"));return d}e=this.format.getSelectionState();mxUtils.getValue(e.style,p,null);if(d||document.activeElement!=
-v)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),v.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=w)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),w.value=isNaN(a)?"":a+" pt";g.style.visibility="connector"==e.style.shape||"filledEdge"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,
-mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?G.style.borderBottom="1px dashed "+this.defaultStrokeColor:G.style.borderBottom="1px dotted "+this.defaultStrokeColor:G.style.borderBottom="1px solid "+this.defaultStrokeColor;y.style.borderBottom=G.style.borderBottom;a=D.getElementsByTagName("div")[0];null!=a&&(c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null),"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null),"orthogonalEdgeStyle"==
-c&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==c||"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":
-"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal");a=u.getElementsByTagName("div")[0];null!=a&&(a.className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection");e.edges.length==f.getSelectionCount()?(t.style.display="",n.style.display="none"):(t.style.display="none",n.style.display="");a=h(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),
-mxUtils.getValue(e.style,"startFill","1"),E,"start");c=h(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),z,"end");null!=a&&null!=c&&("arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow"));mxUtils.setOpacity(D,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape&&
-"filledEdge"!=e.style.shape?(mxUtils.setOpacity(E,30),mxUtils.setOpacity(z,30)):(mxUtils.setOpacity(E,100),mxUtils.setOpacity(z,100));if(d||document.activeElement!=ba)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),ba.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=aa)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),aa.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=N)a=parseInt(mxUtils.getValue(e.style,
-mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),N.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=aa)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),P.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=S)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),S.value=isNaN(a)?"":a+" pt"});T=this.installInputHandler(ba,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");M=this.installInputHandler(aa,
-mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");L=this.installInputHandler(N,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");H=this.installInputHandler(P,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");U=this.installInputHandler(S,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(v,Q);this.addKeyHandler(ba,Q);this.addKeyHandler(aa,Q);this.addKeyHandler(N,Q);this.addKeyHandler(P,Q);this.addKeyHandler(S,Q);f.getModel().addListener(mxEvent.CHANGE,
-Q);this.listeners.push({destroy:function(){f.getModel().removeListener(Q)}});Q();return a};
+"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(u,8);this.addArrow(E);this.addArrow(F);this.addArrow(A);y=this.addArrow(l,9);y.className="geIcon";y.style.width="auto";G=this.addArrow(m,9);G.className="geIcon";G.style.width="22px";var I=document.createElement("div");I.style.width="85px";I.style.height="1px";I.style.borderBottom="1px solid "+this.defaultStrokeColor;I.style.marginBottom="9px";y.appendChild(I);var z=document.createElement("div");
+z.style.width="23px";z.style.height="1px";z.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.marginBottom="9px";G.appendChild(z);l.style.height="15px";m.style.height="15px";u.style.height="15px";E.style.height="17px";F.style.marginLeft="3px";F.style.height="17px";A.style.marginLeft="3px";A.style.height="17px";a.appendChild(k);a.appendChild(t);a.appendChild(n);l=n.cloneNode(!1);l.style.paddingBottom="6px";l.style.paddingTop="4px";l.style.fontWeight="normal";m=document.createElement("div");
+m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));l.appendChild(m);var H,L,P=this.addUnitInput(l,"pt",74,33,function(){H.apply(this,arguments)}),N=this.addUnitInput(l,"pt",20,33,function(){L.apply(this,arguments)});mxUtils.br(l);y=document.createElement("div");y.style.height="8px";l.appendChild(y);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));
+l.appendChild(m);var M,Q,Z=this.addUnitInput(l,"pt",74,33,function(){M.apply(this,arguments)}),aa=this.addUnitInput(l,"pt",20,33,function(){Q.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom="2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.style.paddingBottom="18px";m=document.createElement("div");
+m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,mxResources.get("perimeter"));k.appendChild(m);var T,S=this.addUnitInput(k,"pt",20,41,function(){T.apply(this,arguments)});e.edges.length==f.getSelectionCount()?(a.appendChild(h),a.appendChild(l)):e.vertices.length==f.getSelectionCount()&&a.appendChild(k);var R=mxUtils.bind(this,function(a,c,d){function h(a,c,d,f){d=d.getElementsByTagName("div")[0];
+null!=d&&(d.className=b.getCssClassForMarker(f,e.style.shape,a,c),"geSprite geSprite-noarrow"==d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.style.filter="none",d.style.color=this.defaultStrokeColor,d.nextSibling.style.marginTop="0px"));return d}e=this.format.getSelectionState();mxUtils.getValue(e.style,p,null);if(d||document.activeElement!=v)a=parseInt(mxUtils.getValue(e.style,
+mxConstants.STYLE_STROKEWIDTH,1)),v.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=x)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),x.value=isNaN(a)?"":a+" pt";g.style.visibility="connector"==e.style.shape||"filledEdge"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?
+null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?I.style.borderBottom="1px dashed "+this.defaultStrokeColor:I.style.borderBottom="1px dotted "+this.defaultStrokeColor:I.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.borderBottom=I.style.borderBottom;a=E.getElementsByTagName("div")[0];null!=a&&(c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null),"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null),"orthogonalEdgeStyle"==c&&"1"==mxUtils.getValue(e.style,
+mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==c||"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):
+"geSprite geSprite-orthogonal");a=u.getElementsByTagName("div")[0];null!=a&&(a.className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection");e.edges.length==f.getSelectionCount()?(t.style.display="",n.style.display="none"):(t.style.display="none",n.style.display="");a=h(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,"startFill",
+"1"),F,"start");c=h(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),A,"end");null!=a&&null!=c&&("arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow"));mxUtils.setOpacity(E,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape&&"filledEdge"!=e.style.shape?(mxUtils.setOpacity(F,
+30),mxUtils.setOpacity(A,30)):(mxUtils.setOpacity(F,100),mxUtils.setOpacity(A,100));if(d||document.activeElement!=aa)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),aa.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Z)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),Z.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=N)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),
+N.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Z)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),P.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=S)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),S.value=isNaN(a)?"":a+" pt"});Q=this.installInputHandler(aa,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");M=this.installInputHandler(Z,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");
+L=this.installInputHandler(N,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");H=this.installInputHandler(P,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");T=this.installInputHandler(S,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(v,R);this.addKeyHandler(aa,R);this.addKeyHandler(Z,R);this.addKeyHandler(N,R);this.addKeyHandler(P,R);this.addKeyHandler(S,R);f.getModel().addListener(mxEvent.CHANGE,R);this.listeners.push({destroy:function(){f.getModel().removeListener(R)}});
+R();return a};
StyleFormatPanel.prototype.addLineJumps=function(a){var c=this.format.getSelectionState();if(Graph.lineJumpsEnabled&&0<c.edges.length&&0==c.vertices.length&&c.lineJumps){a.style.padding="8px 0px 24px 18px";var d=this.editorUi,b=d.editor.graph,f=document.createElement("div");f.style.position="absolute";f.style.fontWeight="bold";f.style.width="80px";mxUtils.write(f,mxResources.get("lineJumps"));a.appendChild(f);var e=document.createElement("select");e.style.position="absolute";e.style.marginTop="-2px";
e.style.right="76px";e.style.width="62px";for(var f=["none","arc","gap","sharp"],k=0;k<f.length;k++){var g=document.createElement("option");g.setAttribute("value",f[k]);mxUtils.write(g,mxResources.get(f[k]));e.appendChild(g)}mxEvent.addListener(e,"change",function(a){b.getModel().beginUpdate();try{b.setCellStyles("jumpStyle",e.value,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[e.value],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)});
mxEvent.addListener(e,"click",function(a){mxEvent.consume(a)});a.appendChild(e);var h,l=this.addUnitInput(a,"pt",22,33,function(){h.apply(this,arguments)});h=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var m=mxUtils.bind(this,function(a,b,d){c=this.format.getSelectionState();e.value=mxUtils.getValue(c.style,"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(c.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,
@@ -3119,21 +3122,21 @@ mxUtils.extend(DiagramStylePanel,BaseFormatPanel);DiagramStylePanel.prototype.in
DiagramStylePanel.prototype.addView=function(a){var c=this.editorUi,d=c.editor.graph,b=d.getModel();a.style.whiteSpace="normal";var f="1"==d.currentVertexStyle.sketch&&"1"==d.currentEdgeStyle.sketch,e="1"==d.currentVertexStyle.rounded,k="1"==d.currentEdgeStyle.curved,g=document.createElement("div");g.style.paddingBottom="12px";g.style.marginRight="16px";a.style.paddingTop="8px";var h=document.createElement("table");h.style.width="100%";h.style.fontWeight="bold";var l=document.createElement("tbody"),
m=document.createElement("tr");m.style.padding="0px";var p=document.createElement("td");p.style.padding="0px";p.style.width="50%";p.setAttribute("valign","middle");var n=p.cloneNode(!0);n.style.paddingLeft="8px";m.appendChild(p);m.appendChild(n);l.appendChild(m);h.appendChild(l);p.appendChild(this.createOption(mxResources.get("sketch"),function(){return f},function(a){(f=a)?(d.currentEdgeStyle.sketch="1",d.currentVertexStyle.sketch="1"):(delete d.currentEdgeStyle.sketch,delete d.currentVertexStyle.sketch);
d.updateCellStyles("sketch",a?"1":null,d.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));n.appendChild(this.createOption(mxResources.get("rounded"),function(){return e},function(a){(e=a)?d.currentVertexStyle.rounded="1":delete d.currentVertexStyle.rounded;d.updateCellStyles("rounded",a?"1":null,d.getVerticesAndEdges(!0,!0))},null,function(a){a.style.width="auto"}));p=p.cloneNode(!1);n=n.cloneNode(!1);m=m.cloneNode(!1);m.appendChild(p);m.appendChild(n);l.appendChild(m);p.appendChild(this.createOption(mxResources.get("curved"),
-function(){return k},function(a){(k=a)?d.currentEdgeStyle.curved="1":delete d.currentEdgeStyle.curved;d.updateCellStyles("curved",a?"1":null,d.getVerticesAndEdges(!1,!0))},null,function(a){a.style.width="auto"}));g.appendChild(h);a.appendChild(g);var r=["fillColor","strokeColor","fontColor","gradientColor"],t=mxUtils.bind(this,function(a,c){var e=d.getVerticesAndEdges();b.beginUpdate();try{for(var f=0;f<e.length;f++){var g=d.getCellStyle(e[f]);null!=g.labelBackgroundColor&&d.updateCellStyles("labelBackgroundColor",
+function(){return k},function(a){(k=a)?d.currentEdgeStyle.curved="1":delete d.currentEdgeStyle.curved;d.updateCellStyles("curved",a?"1":null,d.getVerticesAndEdges(!1,!0))},null,function(a){a.style.width="auto"}));g.appendChild(h);a.appendChild(g);var q=["fillColor","strokeColor","fontColor","gradientColor"],t=mxUtils.bind(this,function(a,c){var e=d.getVerticesAndEdges();b.beginUpdate();try{for(var f=0;f<e.length;f++){var g=d.getCellStyle(e[f]);null!=g.labelBackgroundColor&&d.updateCellStyles("labelBackgroundColor",
null!=c?c.background:null,[e[f]]);for(var h=b.isEdge(e[f]),k=b.getStyle(e[f]),l=h?d.currentEdgeStyle:d.currentVertexStyle,m=0;m<a.length;m++)if(null!=g[a[m]]&&g[a[m]]!=mxConstants.NONE||a[m]!=mxConstants.STYLE_FILLCOLOR&&a[m]!=mxConstants.STYLE_STROKECOLOR)k=mxUtils.setStyle(k,a[m],l[a[m]]);b.setStyle(e[f],k)}}finally{b.endUpdate()}}),u=mxUtils.bind(this,function(a,b,c){if(null!=a)for(var d=0;d<b.length;d++)if(null!=a[b[d]]&&a[b[d]]!=mxConstants.NONE||b[d]!=mxConstants.STYLE_FILLCOLOR&&b[d]!=mxConstants.STYLE_STROKECOLOR)a[b[d]]=
c[b[d]]}),v=mxUtils.bind(this,function(a,b,c,e,f){if(null!=a){null!=c&&null!=b.labelBackgroundColor&&(e=null!=e?e.background:null,f=null!=f?f:d,null==e&&(e=f.background),null==e&&(e=f.defaultPageBackgroundColor),b.labelBackgroundColor=e);for(var g in a)if(null==c||null!=b[g]&&b[g]!=mxConstants.NONE||g!=mxConstants.STYLE_FILLCOLOR&&g!=mxConstants.STYLE_STROKECOLOR)b[g]=a[g]}}),p=mxUtils.button(mxResources.get("reset"),mxUtils.bind(this,function(a){a=d.getVerticesAndEdges(!0,!0);if(0<a.length){b.beginUpdate();
-try{d.updateCellStyles("sketch",null,a),d.updateCellStyles("rounded",null,a),d.updateCellStyles("curved",null,d.getVerticesAndEdges(!1,!0))}finally{b.endUpdate()}}d.defaultVertexStyle=mxUtils.clone(c.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(c.initialDefaultEdgeStyle);c.clearDefaultStyle()}));p.setAttribute("title",mxResources.get("reset"));p.style.textOverflow="ellipsis";p.style.maxWidth="90px";n.appendChild(p);var w=mxUtils.bind(this,function(a,c,e,f,g){var h=document.createElement("div");
+try{d.updateCellStyles("sketch",null,a),d.updateCellStyles("rounded",null,a),d.updateCellStyles("curved",null,d.getVerticesAndEdges(!1,!0))}finally{b.endUpdate()}}d.defaultVertexStyle=mxUtils.clone(c.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(c.initialDefaultEdgeStyle);c.clearDefaultStyle()}));p.setAttribute("title",mxResources.get("reset"));p.style.textOverflow="ellipsis";p.style.maxWidth="90px";n.appendChild(p);var x=mxUtils.bind(this,function(a,c,e,f,g){var h=document.createElement("div");
h.style.cssText="position:absolute;display:inline-block;width:100%;height:100%;overflow:hidden;pointer-events:none;";g.appendChild(h);var k=new Graph(h,null,null,d.getStylesheet());k.resetViewOnRootChange=!1;k.foldingEnabled=!1;k.gridEnabled=!1;k.autoScroll=!1;k.setTooltips(!1);k.setConnectable(!1);k.setPanning(!1);k.setEnabled(!1);k.getCellStyle=function(g){var h=mxUtils.clone(Graph.prototype.getCellStyle.apply(this,arguments)),l=d.stylesheet.getDefaultVertexStyle(),m=c;b.isEdge(g)&&(l=d.stylesheet.getDefaultEdgeStyle(),
-m=e);u(h,r,l);v(a,h,g,f,k);v(m,h,g,f,k);return h};k.model.beginUpdate();try{var l=k.insertVertex(k.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),m=k.insertEdge(k.getDefaultParent(),null,"Connector",l,l,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");m.geometry.points=[new mxPoint(32,70)];m.geometry.offset=new mxPoint(0,8)}finally{k.model.endUpdate()}}),x=document.createElement("div");x.style.position="relative";a.appendChild(x);null==
-this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var F=mxUtils.bind(this,function(a,g,h,l,m){var n=this.format.cachedStyleEntries[m];null==n&&(n=document.createElement("div"),n.style.cssText="display:inline-block;position:relative;width:96px;height:90px;cursor:pointer;border:1px solid gray;margin:2px;overflow:hidden;",null!=l&&null!=l.background&&(n.style.backgroundColor=l.background),w(a,g,h,l,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),
+m=e);u(h,q,l);v(a,h,g,f,k);v(m,h,g,f,k);return h};k.model.beginUpdate();try{var l=k.insertVertex(k.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),m=k.insertEdge(k.getDefaultParent(),null,"Connector",l,l,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");m.geometry.points=[new mxPoint(32,70)];m.geometry.offset=new mxPoint(0,8)}finally{k.model.endUpdate()}}),y=document.createElement("div");y.style.position="relative";a.appendChild(y);null==
+this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var G=mxUtils.bind(this,function(a,g,h,l,m){var n=this.format.cachedStyleEntries[m];null==n&&(n=document.createElement("div"),n.style.cssText="display:inline-block;position:relative;width:96px;height:90px;cursor:pointer;border:1px solid gray;margin:2px;overflow:hidden;",null!=l&&null!=l.background&&(n.style.backgroundColor=l.background),x(a,g,h,l,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),
null,mxUtils.bind(this,function(m){n.style.opacity=1;d.defaultVertexStyle=mxUtils.clone(c.initialDefaultVertexStyle);d.defaultEdgeStyle=mxUtils.clone(c.initialDefaultEdgeStyle);v(a,d.defaultVertexStyle);v(a,d.defaultEdgeStyle);v(g,d.defaultVertexStyle);v(h,d.defaultEdgeStyle);c.clearDefaultStyle();f?(d.currentEdgeStyle.sketch="1",d.currentVertexStyle.sketch="1"):(d.currentEdgeStyle.sketch="0",d.currentVertexStyle.sketch="0");d.currentVertexStyle.rounded=e?"1":"0";d.currentEdgeStyle.rounded="1";d.currentEdgeStyle.curved=
-k?"1":"0";b.beginUpdate();try{t(r,l);var p=new ChangePageSetup(c,null!=l?l.background:null);p.ignoreImage=!0;b.execute(p);b.execute(new ChangeGridColor(c,null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor))}finally{b.endUpdate()}})),mxEvent.addListener(n,"mouseenter",mxUtils.bind(this,function(c){var e=d.getCellStyle;c=d.background;var f=d.view.gridColor;d.background=null!=l?l.background:null;d.view.gridColor=null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor;d.getCellStyle=
-function(c){var f=mxUtils.clone(e.apply(this,arguments)),k=d.stylesheet.getDefaultVertexStyle(),m=g;b.isEdge(c)&&(k=d.stylesheet.getDefaultEdgeStyle(),m=h);u(f,r,k);v(a,f,c,l);v(m,f,c,l);return f};d.refresh();d.getCellStyle=e;d.background=c;d.view.gridColor=f})),mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){d.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[m]=n));x.appendChild(n)}),D=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=
-null!=this.format.currentStylePage?this.format.currentStylePage:0;var E=[],z=mxUtils.bind(this,function(){0<E.length&&(E[this.format.currentStylePage].style.background="#84d7ff");for(var a=10*this.format.currentStylePage;a<Math.min(10*(this.format.currentStylePage+1),Editor.styles.length);a++){var b=Editor.styles[a];F(b.commonStyle,b.vertexStyle,b.edgeStyle,b.graph,a)}}),G=mxUtils.bind(this,function(a){0<=a&&a<D&&(E[this.format.currentStylePage].style.background="transparent",x.innerHTML="",this.format.currentStylePage=
-a,z())});if(1<D){g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";g.style.paddingTop="4px";g.style.width="210px";a.style.paddingBottom="8px";for(n=0;n<D;n++){var y=document.createElement("div");y.style.display="inline-block";y.style.width="6px";y.style.height="6px";y.style.marginLeft="4px";y.style.marginRight="3px";y.style.borderRadius="3px";y.style.cursor="pointer";y.style.background="transparent";y.style.border="1px solid #b5b6b7";
-mxUtils.bind(this,function(a,b){mxEvent.addListener(y,"click",mxUtils.bind(this,function(){G(a)}))})(n,y);g.appendChild(y);E.push(y)}a.appendChild(g);z();15>D&&(h=function(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})},p=document.createElement("div"),p.style.cssText="position:absolute;left:0px;top:4px;bottom:0px;width:20px;margin:0px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);",
-mxEvent.addListener(p,"click",mxUtils.bind(this,function(){G(mxUtils.mod(this.format.currentStylePage-1,D))})),n=document.createElement("div"),n.style.cssText="position:absolute;right:2px;top:4px;bottom:0px;width:20px;margin:0px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);",
-g.appendChild(p),g.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){G(mxUtils.mod(this.format.currentStylePage+1,D))})),h(p),h(n))}else z();return a};DiagramFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;
+k?"1":"0";b.beginUpdate();try{t(q,l);var p=new ChangePageSetup(c,null!=l?l.background:null);p.ignoreImage=!0;b.execute(p);b.execute(new ChangeGridColor(c,null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor))}finally{b.endUpdate()}})),mxEvent.addListener(n,"mouseenter",mxUtils.bind(this,function(c){var e=d.getCellStyle;c=d.background;var f=d.view.gridColor;d.background=null!=l?l.background:null;d.view.gridColor=null!=l&&null!=l.gridColor?l.gridColor:d.view.defaultGridColor;d.getCellStyle=
+function(c){var f=mxUtils.clone(e.apply(this,arguments)),k=d.stylesheet.getDefaultVertexStyle(),m=g;b.isEdge(c)&&(k=d.stylesheet.getDefaultEdgeStyle(),m=h);u(f,q,k);v(a,f,c,l);v(m,f,c,l);return f};d.refresh();d.getCellStyle=e;d.background=c;d.view.gridColor=f})),mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){d.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[m]=n));y.appendChild(n)}),E=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=
+null!=this.format.currentStylePage?this.format.currentStylePage:0;var F=[],A=mxUtils.bind(this,function(){0<F.length&&(F[this.format.currentStylePage].style.background="#84d7ff");for(var a=10*this.format.currentStylePage;a<Math.min(10*(this.format.currentStylePage+1),Editor.styles.length);a++){var b=Editor.styles[a];G(b.commonStyle,b.vertexStyle,b.edgeStyle,b.graph,a)}}),I=mxUtils.bind(this,function(a){0<=a&&a<E&&(F[this.format.currentStylePage].style.background="transparent",y.innerHTML="",this.format.currentStylePage=
+a,A())});if(1<E){g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";g.style.paddingTop="4px";g.style.width="210px";a.style.paddingBottom="8px";for(n=0;n<E;n++){var z=document.createElement("div");z.style.display="inline-block";z.style.width="6px";z.style.height="6px";z.style.marginLeft="4px";z.style.marginRight="3px";z.style.borderRadius="3px";z.style.cursor="pointer";z.style.background="transparent";z.style.border="1px solid #b5b6b7";
+mxUtils.bind(this,function(a,b){mxEvent.addListener(z,"click",mxUtils.bind(this,function(){I(a)}))})(n,z);g.appendChild(z);F.push(z)}a.appendChild(g);A();15>E&&(h=function(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})},p=document.createElement("div"),p.style.cssText="position:absolute;left:0px;top:4px;bottom:0px;width:20px;margin:0px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);",
+mxEvent.addListener(p,"click",mxUtils.bind(this,function(){I(mxUtils.mod(this.format.currentStylePage-1,E))})),n=document.createElement("div"),n.style.cssText="position:absolute;right:2px;top:4px;bottom:0px;width:20px;margin:0px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);",
+g.appendChild(p),g.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){I(mxUtils.mod(this.format.currentStylePage+1,E))})),h(p),h(n))}else A();return a};DiagramFormatPanel=function(a,c,d){BaseFormatPanel.call(this,a,c,d);this.init()};mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;
DiagramFormatPanel.prototype.init=function(){var a=this.editorUi.editor.graph;this.container.appendChild(this.addView(this.createPanel()));a.isEnabled()&&(this.container.appendChild(this.addOptions(this.createPanel())),this.container.appendChild(this.addPaperSize(this.createPanel())),this.container.appendChild(this.addStyleOps(this.createPanel())))};
DiagramFormatPanel.prototype.addView=function(a){var c=this.editorUi,d=c.editor.graph;a.appendChild(this.createTitle(mxResources.get("view")));this.addGridOption(a);DiagramFormatPanel.showPageView&&a.appendChild(this.createOption(mxResources.get("pageView"),function(){return d.pageVisible},function(a){c.actions.get("pageView").funct()},{install:function(a){this.listener=function(){a(d.pageVisible)};c.addListener("pageViewChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}}));
if(d.isEnabled()){var b=this.createColorOption(mxResources.get("background"),function(){return d.background},function(a){a=new ChangePageSetup(c,a);a.ignoreImage=!0;d.model.execute(a)},"#ffffff",{install:function(a){this.listener=function(){a(d.background)};c.addListener("backgroundColorChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});if(this.showBackgroundImageOption){var f=mxUtils.button(mxResources.get("image"),function(a){c.showBackgroundImageDialog(null,c.editor.graph.backgroundImage);
@@ -3150,94 +3153,94 @@ DiagramFormatPanel.prototype.addPaperSize=function(a){var c=this.editorUi,d=c.ed
function(){b.set(d.pageFormat)});var f=function(){b.set(d.pageFormat)};c.addListener("pageFormatChanged",f);this.listeners.push({destroy:function(){c.removeListener(f)}});d.getModel().addListener(mxEvent.CHANGE,f);this.listeners.push({destroy:function(){d.getModel().removeListener(f)}});return a};
DiagramFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("editData"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editData").funct()}));c.setAttribute("title",mxResources.get("editData")+" ("+this.editorUi.actions.get("editData").shortcut+")");c.style.width="202px";c.style.marginBottom="2px";a.appendChild(c);mxUtils.br(a);c=mxUtils.button(mxResources.get("clearDefaultStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("clearDefaultStyle").funct()}));
c.setAttribute("title",mxResources.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")");c.style.width="202px";a.appendChild(c);return a};DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function b(){mxActor.call(this)}function f(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function h(){mxShape.call(this)}function l(){mxShape.call(this)}function m(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}function p(){mxActor.call(this)}function n(){mxCylinder.call(this)}
-function r(){mxCylinder.call(this)}function t(){mxActor.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function w(){mxActor.call(this)}function x(){mxActor.call(this)}function F(){mxActor.call(this)}function D(){mxActor.call(this)}function E(a,b){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,E.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
-this.canvas.moveTo=mxUtils.bind(this,E.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,E.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,E.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,E.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,E.prototype.arcTo)}function z(){mxRectangleShape.call(this)}function G(){mxRectangleShape.call(this)}
-function y(){mxActor.call(this)}function H(){mxActor.call(this)}function L(){mxActor.call(this)}function P(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function M(){mxCylinder.call(this)}function T(){mxShape.call(this)}function aa(){mxShape.call(this)}function ba(){mxEllipse.call(this)}function U(){mxShape.call(this)}function S(){mxShape.call(this)}function Q(){mxRectangleShape.call(this)}function R(){mxShape.call(this)}function fa(){mxShape.call(this)}function na(){mxShape.call(this)}
+function q(){mxCylinder.call(this)}function t(){mxActor.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function x(){mxActor.call(this)}function y(){mxActor.call(this)}function G(){mxActor.call(this)}function E(){mxActor.call(this)}function F(a,b){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,F.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+this.canvas.moveTo=mxUtils.bind(this,F.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,F.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,F.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,F.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,F.prototype.arcTo)}function A(){mxRectangleShape.call(this)}function I(){mxRectangleShape.call(this)}
+function z(){mxActor.call(this)}function H(){mxActor.call(this)}function L(){mxActor.call(this)}function P(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function M(){mxCylinder.call(this)}function Q(){mxShape.call(this)}function Z(){mxShape.call(this)}function aa(){mxEllipse.call(this)}function T(){mxShape.call(this)}function S(){mxShape.call(this)}function R(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function fa(){mxShape.call(this)}function na(){mxShape.call(this)}
function oa(){mxShape.call(this)}function pa(){mxShape.call(this)}function da(){mxCylinder.call(this)}function qa(){mxCylinder.call(this)}function ua(){mxRectangleShape.call(this)}function ra(){mxDoubleEllipse.call(this)}function va(){mxDoubleEllipse.call(this)}function ka(){mxArrowConnector.call(this);this.spacing=0}function ga(){mxArrowConnector.call(this);this.spacing=0}function ha(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function ea(){mxActor.call(this)}function ma(){mxActor.call(this)}
-function ja(){mxActor.call(this)}function X(){mxActor.call(this)}function sa(){mxActor.call(this)}function K(){mxActor.call(this)}function Y(){mxActor.call(this)}function Z(){mxActor.call(this)}function V(){mxActor.call(this)}function ia(){mxActor.call(this)}function la(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ma(){mxRhombus.call(this)}function Na(){mxEllipse.call(this)}function Oa(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
-function Ga(){mxEllipse.call(this)}function Ha(){mxActor.call(this)}function za(){mxActor.call(this)}function Aa(){mxActor.call(this)}function O(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function xa(){mxConnector.call(this)}function Ra(a,b,c,d,e,f,g,k,h,l){g+=h;var q=d.clone();d.x-=e*(2*g+h);d.y-=f*(2*g+h);e*=g+h;f*=g+h;return function(){a.ellipse(q.x-
-e-g,q.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,b,c,d,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-b,-c));this.paintForeground(a,
-b,c,d,e)};a.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.state){var q=this.flipH,f=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=q,q=f,f=g;a.rotate(-this.getShapeRotation(),q,f,b+d/2,c+e/2);s=this.scale;b=this.bounds.x/s;c=this.bounds.y/s;d=this.bounds.width/s;e=this.bounds.height/s;this.paintTableForeground(a,b,c,d,e)}};a.prototype.paintTableForeground=function(a,b,c,d,e){var q=this.state.view.graph,f=q.getActualStartSize(this.state.cell),
-g=q.model.getChildCells(this.state.cell,!0);if(0<g.length){var J="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),B="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(J)for(J=1;J<g.length;J++){var k=q.getCellGeometry(g[J]);null!=k&&(a.begin(),a.moveTo(b+f.x,c+k.y),a.lineTo(b+d-f.width,c+k.y),a.end(),a.stroke())}if(B)for(d=q.model.getChildCells(g[0],!0),J=1;J<d.length;J++)k=q.getCellGeometry(d[J]),null!=k&&(a.begin(),a.moveTo(b+k.x+f.x,c+f.y),a.lineTo(b+k.x+f.x,c+e-f.height),a.end(),
-a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.darkOpacity=0;c.prototype.darkOpacity2=0;c.prototype.paintVertexShape=function(a,b,c,d,e){var q=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),f=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
-a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-q,0);a.lineTo(d,q);a.lineTo(d,e);a.lineTo(q,e);a.lineTo(0,e-q);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-q,0),a.lineTo(d,q),a.lineTo(q,q),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(q,q),a.lineTo(q,e),a.lineTo(0,e-q),
-a.close(),a.fill()),a.begin(),a.moveTo(q,e),a.lineTo(q,q),a.lineTo(0,0),a.moveTo(q,q),a.lineTo(d,q),a.end(),a.stroke())};c.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",c);var Pa=Math.tan(mxUtils.toRadians(30)),ya=(.5-Pa)/2;mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(d,mxCylinder);d.prototype.size=
-6;d.prototype.paintVertexShape=function(a,b,c,d,e){a.setFillColor(this.stroke);var q=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(b+.5*(d-q),c+.5*(e-q),q,q);a.fill();a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};mxCellRenderer.registerShape("waypoint",d);mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/Pa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ya);
+function ja(){mxActor.call(this)}function X(){mxActor.call(this)}function sa(){mxActor.call(this)}function K(){mxActor.call(this)}function Y(){mxActor.call(this)}function ba(){mxActor.call(this)}function U(){mxActor.call(this)}function ia(){mxActor.call(this)}function la(){mxEllipse.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ma(){mxRhombus.call(this)}function Na(){mxEllipse.call(this)}function Oa(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
+function Ga(){mxEllipse.call(this)}function Ha(){mxActor.call(this)}function za(){mxActor.call(this)}function Aa(){mxActor.call(this)}function O(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function xa(){mxConnector.call(this)}function Ra(a,b,c,d,e,f,g,k,h,l){g+=h;var r=d.clone();d.x-=e*(2*g+h);d.y-=f*(2*g+h);e*=g+h;f*=g+h;return function(){a.ellipse(r.x-
+e-g,r.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,b,c,d,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-b,-c));this.paintForeground(a,
+b,c,d,e)};a.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.state){var r=this.flipH,f=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=r,r=f,f=g;a.rotate(-this.getShapeRotation(),r,f,b+d/2,c+e/2);s=this.scale;b=this.bounds.x/s;c=this.bounds.y/s;d=this.bounds.width/s;e=this.bounds.height/s;this.paintTableForeground(a,b,c,d,e)}};a.prototype.paintTableForeground=function(a,b,c,d,e){var r=this.state.view.graph,f=r.getActualStartSize(this.state.cell),
+g=r.model.getChildCells(this.state.cell,!0);if(0<g.length){var w="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),C="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(w)for(w=1;w<g.length;w++){var k=r.getCellGeometry(g[w]);null!=k&&(a.begin(),a.moveTo(b+f.x,c+k.y),a.lineTo(b+d-f.width,c+k.y),a.end(),a.stroke())}if(C)for(d=r.model.getChildCells(g[0],!0),w=1;w<d.length;w++)k=r.getCellGeometry(d[w]),null!=k&&(a.begin(),a.moveTo(b+k.x+f.x,c+f.y),a.lineTo(b+k.x+f.x,c+e-f.height),a.end(),
+a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.darkOpacity=0;c.prototype.darkOpacity2=0;c.prototype.paintVertexShape=function(a,b,c,d,e){var r=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),f=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
+a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-r,0);a.lineTo(d,r);a.lineTo(d,e);a.lineTo(r,e);a.lineTo(0,e-r);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-r,0),a.lineTo(d,r),a.lineTo(r,r),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(r,r),a.lineTo(r,e),a.lineTo(0,e-r),
+a.close(),a.fill()),a.begin(),a.moveTo(r,e),a.lineTo(r,r),a.lineTo(0,0),a.moveTo(r,r),a.lineTo(d,r),a.end(),a.stroke())};c.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",c);var Pa=Math.tan(mxUtils.toRadians(30)),ya=(.5-Pa)/2;mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(d,mxCylinder);d.prototype.size=
+6;d.prototype.paintVertexShape=function(a,b,c,d,e){a.setFillColor(this.stroke);var r=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(b+.5*(d-r),c+.5*(e-r),r,r);a.fill();a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};mxCellRenderer.registerShape("waypoint",d);mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/Pa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*ya);
a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-ya)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(f,mxCylinder);f.prototype.size=20;f.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+Pa));f?(a.moveTo(0,.25*b),a.lineTo(.5*b,(.5-ya)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-ya)*b),a.lineTo(.5*b,(1-ya)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*ya),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-ya)*b),a.lineTo(0,.75*
b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",f);mxUtils.extend(e,mxCylinder);e.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,-b);f||(a.moveTo(0,
-b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b),a.close())};e.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",e);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.darkOpacity=0;k.prototype.paintVertexShape=function(a,b,c,d,e){var q=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),f=
-Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-q,0);a.lineTo(d,q);a.lineTo(d,e);a.lineTo(0,e);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-q,0),a.lineTo(d-q,q),a.lineTo(d,q),a.close(),a.fill()),a.begin(),a.moveTo(d-q,0),a.lineTo(d-q,q),a.lineTo(d,q),a.end(),a.stroke())};
-mxCellRenderer.registerShape("note",k);mxUtils.extend(g,k);mxCellRenderer.registerShape("note2",g);g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,b*this.scale),0,0)}return null};mxUtils.extend(h,mxShape);h.prototype.isoAngle=15;h.prototype.paintVertexShape=function(a,b,c,d,e){var q=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*
-Math.PI/200,q=Math.min(d*Math.tan(q),.5*e);a.translate(b,c);a.begin();a.moveTo(.5*d,0);a.lineTo(d,q);a.lineTo(d,e-q);a.lineTo(.5*d,e);a.lineTo(0,e-q);a.lineTo(0,q);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,q);a.lineTo(.5*d,2*q);a.lineTo(d,q);a.moveTo(.5*d,2*q);a.lineTo(.5*d,e);a.stroke()};mxCellRenderer.registerShape("isoCube2",h);mxUtils.extend(l,mxShape);l.prototype.size=15;l.prototype.paintVertexShape=function(a,b,c,d,e){var q=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.translate(b,c);0==q?(a.rect(0,0,d,e),a.fillAndStroke()):(a.begin(),a.moveTo(0,q),a.arcTo(.5*d,q,0,0,1,.5*d,0),a.arcTo(.5*d,q,0,0,1,d,q),a.lineTo(d,e-q),a.arcTo(.5*d,q,0,0,1,.5*d,e),a.arcTo(.5*d,q,0,0,1,0,e-q),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,q),a.arcTo(.5*d,q,0,0,1,.5*d,2*q),a.arcTo(.5*d,q,0,0,1,0,q),a.stroke())};mxCellRenderer.registerShape("cylinder2",l);mxUtils.extend(m,mxCylinder);m.prototype.size=15;m.prototype.paintVertexShape=function(a,
-b,c,d,e){var q=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),f=mxUtils.getValue(this.style,"lid",!0);a.translate(b,c);0==q?(a.rect(0,0,d,e),a.fillAndStroke()):(a.begin(),f?(a.moveTo(0,q),a.arcTo(.5*d,q,0,0,1,.5*d,0),a.arcTo(.5*d,q,0,0,1,d,q)):(a.moveTo(0,0),a.arcTo(.5*d,q,0,0,0,.5*d,q),a.arcTo(.5*d,q,0,0,0,d,0)),a.lineTo(d,e-q),a.arcTo(.5*d,q,0,0,1,.5*d,e),a.arcTo(.5*d,q,0,0,1,0,e-q),a.close(),a.fillAndStroke(),a.setShadow(!1),f&&(a.begin(),a.moveTo(d,q),a.arcTo(.5*
-d,q,0,0,1,.5*d,2*q),a.arcTo(.5*d,q,0,0,1,0,q),a.stroke()))};mxCellRenderer.registerShape("cylinder3",m);mxUtils.extend(p,mxActor);p.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d/2,.5*e,d,0);a.quadTo(.5*d,e/2,d,e);a.quadTo(d/2,.5*e,0,e);a.quadTo(.5*d,e/2,0,0);a.end()};mxCellRenderer.registerShape("switch",p);mxUtils.extend(n,mxCylinder);n.prototype.tabWidth=60;n.prototype.tabHeight=20;n.prototype.tabPosition="right";n.prototype.arcSize=.1;n.prototype.paintVertexShape=function(a,
-b,c,d,e){a.translate(b,c);b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var q=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),f=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),J=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(J*=Math.min(d,e));J=Math.min(J,.5*d,.5*(e-c));b=Math.max(b,
-J);b=Math.min(d-J,b);f||(J=0);a.begin();"left"==q?(a.moveTo(Math.max(J,0),c),a.lineTo(Math.max(J,0),0),a.lineTo(b,0),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d-Math.max(J,0),0),a.lineTo(d-Math.max(J,0),c));f?(a.moveTo(0,J+c),a.arcTo(J,J,0,0,1,J,c),a.lineTo(d-J,c),a.arcTo(J,J,0,0,1,d,J+c),a.lineTo(d,e-J),a.arcTo(J,J,0,0,1,d-J,e),a.lineTo(J,e),a.arcTo(J,J,0,0,1,0,e-J)):(a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,e),a.lineTo(0,e));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
+b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b),a.close())};e.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",e);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.darkOpacity=0;k.prototype.paintVertexShape=function(a,b,c,d,e){var r=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),f=
+Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(b,c);a.begin();a.moveTo(0,0);a.lineTo(d-r,0);a.lineTo(d,r);a.lineTo(d,e);a.lineTo(0,e);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=f&&(a.setFillAlpha(Math.abs(f)),a.setFillColor(0>f?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-r,0),a.lineTo(d-r,r),a.lineTo(d,r),a.close(),a.fill()),a.begin(),a.moveTo(d-r,0),a.lineTo(d-r,r),a.lineTo(d,r),a.end(),a.stroke())};
+mxCellRenderer.registerShape("note",k);mxUtils.extend(g,k);mxCellRenderer.registerShape("note2",g);g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,b*this.scale),0,0)}return null};mxUtils.extend(h,mxShape);h.prototype.isoAngle=15;h.prototype.paintVertexShape=function(a,b,c,d,e){var r=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*
+Math.PI/200,r=Math.min(d*Math.tan(r),.5*e);a.translate(b,c);a.begin();a.moveTo(.5*d,0);a.lineTo(d,r);a.lineTo(d,e-r);a.lineTo(.5*d,e);a.lineTo(0,e-r);a.lineTo(0,r);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,r);a.lineTo(.5*d,2*r);a.lineTo(d,r);a.moveTo(.5*d,2*r);a.lineTo(.5*d,e);a.stroke()};mxCellRenderer.registerShape("isoCube2",h);mxUtils.extend(l,mxShape);l.prototype.size=15;l.prototype.paintVertexShape=function(a,b,c,d,e){var r=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));a.translate(b,c);0==r?(a.rect(0,0,d,e),a.fillAndStroke()):(a.begin(),a.moveTo(0,r),a.arcTo(.5*d,r,0,0,1,.5*d,0),a.arcTo(.5*d,r,0,0,1,d,r),a.lineTo(d,e-r),a.arcTo(.5*d,r,0,0,1,.5*d,e),a.arcTo(.5*d,r,0,0,1,0,e-r),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,r),a.arcTo(.5*d,r,0,0,1,.5*d,2*r),a.arcTo(.5*d,r,0,0,1,0,r),a.stroke())};mxCellRenderer.registerShape("cylinder2",l);mxUtils.extend(m,mxCylinder);m.prototype.size=15;m.prototype.paintVertexShape=function(a,
+b,c,d,e){var r=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),f=mxUtils.getValue(this.style,"lid",!0);a.translate(b,c);0==r?(a.rect(0,0,d,e),a.fillAndStroke()):(a.begin(),f?(a.moveTo(0,r),a.arcTo(.5*d,r,0,0,1,.5*d,0),a.arcTo(.5*d,r,0,0,1,d,r)):(a.moveTo(0,0),a.arcTo(.5*d,r,0,0,0,.5*d,r),a.arcTo(.5*d,r,0,0,0,d,0)),a.lineTo(d,e-r),a.arcTo(.5*d,r,0,0,1,.5*d,e),a.arcTo(.5*d,r,0,0,1,0,e-r),a.close(),a.fillAndStroke(),a.setShadow(!1),f&&(a.begin(),a.moveTo(d,r),a.arcTo(.5*
+d,r,0,0,1,.5*d,2*r),a.arcTo(.5*d,r,0,0,1,0,r),a.stroke()))};mxCellRenderer.registerShape("cylinder3",m);mxUtils.extend(p,mxActor);p.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d/2,.5*e,d,0);a.quadTo(.5*d,e/2,d,e);a.quadTo(d/2,.5*e,0,e);a.quadTo(.5*d,e/2,0,0);a.end()};mxCellRenderer.registerShape("switch",p);mxUtils.extend(n,mxCylinder);n.prototype.tabWidth=60;n.prototype.tabHeight=20;n.prototype.tabPosition="right";n.prototype.arcSize=.1;n.prototype.paintVertexShape=function(a,
+b,c,d,e){a.translate(b,c);b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var r=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),f=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),w=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(w*=Math.min(d,e));w=Math.min(w,.5*d,.5*(e-c));b=Math.max(b,
+w);b=Math.min(d-w,b);f||(w=0);a.begin();"left"==r?(a.moveTo(Math.max(w,0),c),a.lineTo(Math.max(w,0),0),a.lineTo(b,0),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d-b,0),a.lineTo(d-Math.max(w,0),0),a.lineTo(d-Math.max(w,0),c));f?(a.moveTo(0,w+c),a.arcTo(w,w,0,0,1,w,c),a.lineTo(d-w,c),a.arcTo(w,w,0,0,1,d,w+c),a.lineTo(d,e-w),a.arcTo(w,w,0,0,1,d-w,e),a.lineTo(w,e),a.arcTo(w,w,0,0,1,0,e-w)):(a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,e),a.lineTo(0,e));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,c+20),a.lineTo(d-20,c+10),a.lineTo(d-10,c+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",n);n.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
-"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),q=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(q*=Math.min(a.width,a.height));q=Math.min(q,.5*a.width,.5*(a.height-b));d||(q=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(q,0,Math.min(a.width,a.width-c),Math.min(a.height,a.height-b)):new mxRectangle(Math.min(a.width,a.width-c),0,q,Math.min(a.height,a.height-b))}return new mxRectangle(0,Math.min(a.height,b),0,0)}return null};
-mxUtils.extend(r,mxCylinder);r.prototype.arcSize=.1;r.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);var q=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1);b=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));c=mxUtils.getValue(this.style,"umlStateConnection",null);f||(b*=Math.min(d,e));b=Math.min(b,.5*d,.5*e);q||(b=0);q=0;null!=c&&(q=10);a.begin();a.moveTo(q,b);a.arcTo(b,b,0,0,1,q+b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,
-b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(q+b,e);a.arcTo(b,b,0,0,1,q,e-b);a.close();a.fillAndStroke();a.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(a.roundrect(d-40,e-20,10,10,3,3),a.stroke(),a.roundrect(d-20,e-20,10,10,3,3),a.stroke(),a.begin(),a.moveTo(d-30,e-15),a.lineTo(d-20,e-15),a.stroke());"connPointRefEntry"==c?(a.ellipse(0,.5*e-10,20,20),a.fillAndStroke()):"connPointRefExit"==c&&(a.ellipse(0,.5*e-10,20,20),a.fillAndStroke(),a.begin(),a.moveTo(5,
-.5*e-5),a.lineTo(15,.5*e+5),a.moveTo(15,.5*e-5),a.lineTo(5,.5*e+5),a.stroke())};r.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",r);mxUtils.extend(t,mxActor);t.prototype.size=30;t.prototype.isRoundable=function(){return!0};t.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
+"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),r=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(r*=Math.min(a.width,a.height));r=Math.min(r,.5*a.width,.5*(a.height-b));d||(r=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(r,0,Math.min(a.width,a.width-c),Math.min(a.height,a.height-b)):new mxRectangle(Math.min(a.width,a.width-c),0,r,Math.min(a.height,a.height-b))}return new mxRectangle(0,Math.min(a.height,b),0,0)}return null};
+mxUtils.extend(q,mxCylinder);q.prototype.arcSize=.1;q.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);var r=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1);b=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));c=mxUtils.getValue(this.style,"umlStateConnection",null);f||(b*=Math.min(d,e));b=Math.min(b,.5*d,.5*e);r||(b=0);r=0;null!=c&&(r=10);a.begin();a.moveTo(r,b);a.arcTo(b,b,0,0,1,r+b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,
+b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(r+b,e);a.arcTo(b,b,0,0,1,r,e-b);a.close();a.fillAndStroke();a.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(a.roundrect(d-40,e-20,10,10,3,3),a.stroke(),a.roundrect(d-20,e-20,10,10,3,3),a.stroke(),a.begin(),a.moveTo(d-30,e-15),a.lineTo(d-20,e-15),a.stroke());"connPointRefEntry"==c?(a.ellipse(0,.5*e-10,20,20),a.fillAndStroke()):"connPointRefExit"==c&&(a.ellipse(0,.5*e-10,20,20),a.fillAndStroke(),a.begin(),a.moveTo(5,
+.5*e-5),a.lineTo(15,.5*e+5),a.moveTo(15,.5*e-5),a.lineTo(5,.5*e+5),a.stroke())};q.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",q);mxUtils.extend(t,mxActor);t.prototype.size=30;t.prototype.isRoundable=function(){return!0};t.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,
"size",this.size)))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("card",t);mxUtils.extend(u,mxActor);u.prototype.size=.4;u.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*
d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};u.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",this.size),c=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return b*=d,new mxRectangle(a.x,a.y+b,c,d-2*b);b*=c;return new mxRectangle(a.x+b,a.y,c-
2*b,d)}return a};mxCellRenderer.registerShape("tape",u);mxUtils.extend(v,mxActor);v.prototype.size=.3;v.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};v.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/
4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.registerShape("document",v);var Wa=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,b,c,d){var e=mxUtils.getValue(this.style,"size");return null!=e?d*Math.max(0,Math.min(1,e)):Wa.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
this.scale,a.height*b),0,0)}return null};m.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(b/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*b*this.scale),0,Math.max(0,.3*b*this.scale))}return null};n.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
-"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),q=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(q*=Math.min(a.width,a.height));q=Math.min(q,.5*a.width,.5*(a.height-b));d||(q=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(q,0,Math.min(a.width,a.width-
-c),Math.min(a.height,a.height-b)):new mxRectangle(Math.min(a.width,a.width-c),0,q,Math.min(a.height,a.height-b))}return new mxRectangle(0,Math.min(a.height,b),0,0)}return null};r.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",
-15);return new mxRectangle(0,Math.min(a.height*this.scale,b*this.scale),0,Math.max(0,b*this.scale))}return null};mxUtils.extend(w,mxActor);w.prototype.size=.2;w.prototype.fixedSize=20;w.prototype.isRoundable=function(){return!0};w.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("parallelogram",w);mxUtils.extend(x,mxActor);x.prototype.size=.2;x.prototype.fixedSize=20;x.prototype.isRoundable=function(){return!0};x.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",
-this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("trapezoid",x);mxUtils.extend(F,mxActor);F.prototype.size=.5;F.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",F);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);
-a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",D);E.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};E.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};E.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,
-arguments);this.lastX=c;this.lastY=d};E.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};E.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};E.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),q=Math.sqrt(d*d+e*e);if(2>q){this.originalLineTo.apply(this.canvas,
-arguments);this.lastX=a;this.lastY=b;return}var f=Math.round(q/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=c(a-this.lastX)*d/f,c=c(b-this.lastY)*e/f,d=d/q,e=e/q,q=0;q<f;q++){var J=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,k*q+this.lastX-J*e,c*q+this.lastY-J*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};E.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
+"labelInHeader",!1)){var c=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,b=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),r=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(r*=Math.min(a.width,a.height));r=Math.min(r,.5*a.width,.5*(a.height-b));d||(r=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(r,0,Math.min(a.width,a.width-
+c),Math.min(a.height,a.height-b)):new mxRectangle(Math.min(a.width,a.width-c),0,r,Math.min(a.height,a.height-b))}return new mxRectangle(0,Math.min(a.height,b),0,0)}return null};q.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var b=mxUtils.getValue(this.style,"size",
+15);return new mxRectangle(0,Math.min(a.height*this.scale,b*this.scale),0,Math.max(0,b*this.scale))}return null};mxUtils.extend(x,mxActor);x.prototype.size=.2;x.prototype.fixedSize=20;x.prototype.isRoundable=function(){return!0};x.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("parallelogram",x);mxUtils.extend(y,mxActor);y.prototype.size=.2;y.prototype.fixedSize=20;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",
+this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("trapezoid",y);mxUtils.extend(G,mxActor);G.prototype.size=.5;G.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",G);mxUtils.extend(E,mxActor);E.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);
+a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",E);F.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};F.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};F.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,
+arguments);this.lastX=c;this.lastY=d};F.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};F.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};F.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),r=Math.sqrt(d*d+e*e);if(2>r){this.originalLineTo.apply(this.canvas,
+arguments);this.lastX=a;this.lastY=b;return}var f=Math.round(r/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=c(a-this.lastX)*d/f,c=c(b-this.lastY)*e/f,d=d/r,e=e/r,r=0;r<f;r++){var w=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,k*r+this.lastX-w*e,c*r+this.lastY-w*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};F.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var Xa=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){Xa.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var Ya=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(a){Ya.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),
-delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new E(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var Za=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
-"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&Za.apply(this,arguments)};var bb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle||a.handJiggle.constructor!=E)bb.apply(this,arguments);else{var q=!0;null!=this.style&&(q="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(q||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)q||
-null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?q=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,q=Math.min(d*q,e*q)),a.moveTo(b+q,c),a.lineTo(b+d-q,c),a.quadTo(b+d,c,b+d,c+q),a.lineTo(b+d,c+e-q),a.quadTo(b+d,c+e,b+d-q,
-c+e),a.lineTo(b+q,c+e),a.quadTo(b,c+e,b,c+e-q),a.lineTo(b,c+q),a.quadTo(b,c,b+q,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c)),a.close(),a.end(),a.fillAndStroke()}};var cb=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&cb.apply(this,arguments)};mxUtils.extend(z,mxRectangleShape);z.prototype.size=.1;z.prototype.fixedSize=!1;z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=
+delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new F(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var Za=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
+"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&Za.apply(this,arguments)};var bb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle||a.handJiggle.constructor!=F)bb.apply(this,arguments);else{var r=!0;null!=this.style&&(r="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(r||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)r||
+null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?r=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,r=Math.min(d*r,e*r)),a.moveTo(b+r,c),a.lineTo(b+d-r,c),a.quadTo(b+d,c,b+d,c+r),a.lineTo(b+d,c+e-r),a.quadTo(b+d,c+e,b+d-r,
+c+e),a.lineTo(b+r,c+e),a.quadTo(b,c+e,b,c+e-r),a.lineTo(b,c+r),a.quadTo(b,c,b+r,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c)),a.close(),a.end(),a.fillAndStroke()}};var cb=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&cb.apply(this,arguments)};mxUtils.extend(A,mxRectangleShape);A.prototype.size=.1;A.prototype.fixedSize=!1;A.prototype.isHtmlAllowed=function(){return!1};A.prototype.getLabelBounds=
function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var b=a.width,c=a.height;a=new mxRectangle(a.x,a.y,b,c);var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(b*e,c*e));a.x+=
-Math.round(d);a.width-=Math.round(2*d)}return a};z.prototype.paintForeground=function(a,b,c,d,e){var q=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=q?Math.max(0,Math.min(d,f)):d*Math.max(0,Math.min(1,f));this.isRounded&&(q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*q,e*q)));f=Math.round(f);a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+
-d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",z);mxCellRenderer.registerShape("process2",z);mxUtils.extend(G,mxRectangleShape);G.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};G.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",G);mxUtils.extend(y,mxHexagon);y.prototype.size=30;y.prototype.position=
-.5;y.prototype.position2=.5;y.prototype.base=20;y.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var q=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position",this.position)))),f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-c),new mxPoint(Math.min(d,q+g),e-c),new mxPoint(f,e),new mxPoint(Math.max(0,q),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",y);mxUtils.extend(H,mxActor);H.prototype.size=.2;H.prototype.fixedSize=
+Math.round(d);a.width-=Math.round(2*d)}return a};A.prototype.paintForeground=function(a,b,c,d,e){var r=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=r?Math.max(0,Math.min(d,f)):d*Math.max(0,Math.min(1,f));this.isRounded&&(r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*r,e*r)));f=Math.round(f);a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+
+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",A);mxCellRenderer.registerShape("process2",A);mxUtils.extend(I,mxRectangleShape);I.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};I.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",I);mxUtils.extend(z,mxHexagon);z.prototype.size=30;z.prototype.position=
+.5;z.prototype.position2=.5;z.prototype.base=20;z.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};z.prototype.isRoundable=function(){return!0};z.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var r=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"position",this.position)))),f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-c),new mxPoint(Math.min(d,r+g),e-c),new mxPoint(f,e),new mxPoint(Math.max(0,r),e-c),new mxPoint(0,e-c)],this.isRounded,b,!0,[4])};mxCellRenderer.registerShape("callout",z);mxUtils.extend(H,mxActor);H.prototype.size=.2;H.prototype.fixedSize=
20;H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,
e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("step",H);mxUtils.extend(L,mxHexagon);L.prototype.size=.25;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,.5*e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",L);mxUtils.extend(P,mxRectangleShape);P.prototype.isHtmlAllowed=function(){return!1};P.prototype.paintForeground=function(a,b,c,d,e){var q=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+q);a.lineTo(b+d/2,c+e-q);a.moveTo(b+q,c+e/2);a.lineTo(b+d-q,c+e/2);a.end();
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,.5*e)],this.isRounded,c,!0)};mxCellRenderer.registerShape("hexagon",L);mxUtils.extend(P,mxRectangleShape);P.prototype.isHtmlAllowed=function(){return!1};P.prototype.paintForeground=function(a,b,c,d,e){var r=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+r);a.lineTo(b+d/2,c+e-r);a.moveTo(b+r,c+e/2);a.lineTo(b+d-r,c+e/2);a.end();
a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",P);var Ua=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){Ua.apply(this,arguments);if(!this.outline&&
-1==this.style["double"]){var q=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=q;c+=q;d-=2*q;e-=2*q;0<d&&0<e&&(a.setShadow(!1),Ua.apply(this,[a,b,c,d,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-
-2*b)}return a};N.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var q=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=q;c+=q;d-=2*q;e-=2*q;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var q=0,f;do{f=mxCellRenderer.defaultShapes[this.style["symbol"+q]];if(null!=f){var g=this.style["symbol"+q+"Align"],k=this.style["symbol"+q+"VerticalAlign"],h=this.style["symbol"+
-q+"Width"],J=this.style["symbol"+q+"Height"],B=this.style["symbol"+q+"Spacing"]||0,A=this.style["symbol"+q+"VSpacing"]||B,C=this.style["symbol"+q+"ArcSpacing"];null!=C&&(C*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),B+=C,A+=C);var C=b,l=c,C=g==mxConstants.ALIGN_CENTER?C+(d-h)/2:g==mxConstants.ALIGN_RIGHT?C+(d-h-B):C+B,l=k==mxConstants.ALIGN_MIDDLE?l+(e-J)/2:k==mxConstants.ALIGN_BOTTOM?l+(e-J-A):l+A;a.save();g=new f;g.style=this.style;f.prototype.paintVertexShape.call(g,a,C,l,h,J);a.restore()}q++}while(null!=
-f)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(M,mxCylinder);M.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",M);mxUtils.extend(T,mxShape);T.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/
-2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",T);mxUtils.extend(aa,mxShape);aa.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};aa.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/
-6,e/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",aa);mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",ba);mxUtils.extend(U,mxShape);U.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);
-a.moveTo(0,0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",U);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};S.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};S.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,e/
-4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=40;Q.prototype.isHtmlAllowed=function(){return!1};Q.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};Q.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=mxUtils.getValue(this.style,
-"participant");null==q||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(q=this.state.view.graph.cellRenderer.getShape(q),null!=q&&q!=Q&&(q=new q,q.apply(this.state),a.save(),q.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};Q.prototype.paintForeground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",Q);mxUtils.extend(R,mxShape);R.prototype.width=60;R.prototype.height=30;R.prototype.corner=10;R.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};R.prototype.paintBackground=function(a,
-b,c,d,e){var f=this.corner,q=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(b,c,d,e),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,
-this.gradient,b,c,d,e,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(b,c);a.lineTo(b+q,c);a.lineTo(b+q,c+Math.max(0,g-1.5*f));a.lineTo(b+Math.max(0,q-f),c+g);a.lineTo(b,c+g);a.close();a.fillAndStroke();a.begin();a.moveTo(b+q,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",R);mxPerimeter.CenterPerimeter=function(a,b,c,d){return new mxPoint(a.getCenterX(),a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",
-mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=Q.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d)*b.view.scale);b=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;c.x<a.getCenterX()&&(b=-1*(b+1));return new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y+d,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,b,c,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,
+1==this.style["double"]){var r=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=r;c+=r;d-=2*r;e-=2*r;0<d&&0<e&&(a.setShadow(!1),Ua.apply(this,[a,b,c,d,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-
+2*b)}return a};N.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var r=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=r;c+=r;d-=2*r;e-=2*r;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var r=0,f;do{f=mxCellRenderer.defaultShapes[this.style["symbol"+r]];if(null!=f){var g=this.style["symbol"+r+"Align"],k=this.style["symbol"+r+"VerticalAlign"],h=this.style["symbol"+
+r+"Width"],w=this.style["symbol"+r+"Height"],C=this.style["symbol"+r+"Spacing"]||0,B=this.style["symbol"+r+"VSpacing"]||C,D=this.style["symbol"+r+"ArcSpacing"];null!=D&&(D*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),C+=D,B+=D);var D=b,l=c,D=g==mxConstants.ALIGN_CENTER?D+(d-h)/2:g==mxConstants.ALIGN_RIGHT?D+(d-h-C):D+C,l=k==mxConstants.ALIGN_MIDDLE?l+(e-w)/2:k==mxConstants.ALIGN_BOTTOM?l+(e-w-B):l+B;a.save();g=new f;g.style=this.style;f.prototype.paintVertexShape.call(g,a,D,l,h,w);a.restore()}r++}while(null!=
+f)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(M,mxCylinder);M.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.registerShape("message",M);mxUtils.extend(Q,mxShape);Q.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/
+2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",Q);mxUtils.extend(Z,mxShape);Z.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};Z.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/
+2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",Z);mxUtils.extend(aa,mxEllipse);aa.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",aa);mxUtils.extend(T,mxShape);T.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,
+0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",T);mxUtils.extend(S,mxShape);S.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};S.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};S.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,e/4);a.end();
+a.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(R,mxRectangleShape);R.prototype.size=40;R.prototype.isHtmlAllowed=function(){return!1};R.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};R.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),r=mxUtils.getValue(this.style,
+"participant");null==r||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(r=this.state.view.graph.cellRenderer.getShape(r),null!=r&&r!=R&&(r=new r,r.apply(this.state),a.save(),r.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};R.prototype.paintForeground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.registerShape("umlLifeline",R);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};W.prototype.paintBackground=function(a,
+b,c,d,e){var f=this.corner,r=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(b,c,d,e),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,
+this.gradient,b,c,d,e,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(b,c);a.lineTo(b+r,c);a.lineTo(b+r,c+Math.max(0,g-1.5*f));a.lineTo(b+Math.max(0,r-f),c+g);a.lineTo(b,c+g);a.close();a.fillAndStroke();a.begin();a.moveTo(b+r,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",W);mxPerimeter.CenterPerimeter=function(a,b,c,d){return new mxPoint(a.getCenterX(),a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",
+mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=R.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d)*b.view.scale);b=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;c.x<a.getCenterX()&&(b=-1*(b+1));return new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y+d,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,b,c,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,
arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,b,c,d){d=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;null!=b.style.backboneSize&&(d+=parseFloat(b.style.backboneSize)*b.view.scale/2-1);if("south"==b.style[mxConstants.STYLE_DIRECTION]||"north"==b.style[mxConstants.STYLE_DIRECTION])return c.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,c.y)));
-c.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,b,c,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(b.style,"size",y.prototype.size))*b.view.scale))),b.style),b,c,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);
-mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?w.prototype.fixedSize:w.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var q=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,
-g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g)]):(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+e,g),new mxPoint(q+k,g),new mxPoint(q+k-e,g+h),new mxPoint(q,g+h),new mxPoint(q+e,g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<q||c.x>q+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,
-b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?x.prototype.fixedSize:x.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var q=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+e,g),new mxPoint(q+k-e,g),new mxPoint(q+k,g+h),new mxPoint(q,g+h),
-new mxPoint(q+e,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g),new mxPoint(q+k,g),new mxPoint(q+k-e,g+h),new mxPoint(q+e,g+h),new mxPoint(q,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g+e),new mxPoint(q+k,g),new mxPoint(q+k,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g),new mxPoint(q+k,
-g+e),new mxPoint(q+k,g+h-e),new mxPoint(q,g+h),new mxPoint(q,g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<q||c.x>q+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?H.prototype.fixedSize:H.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var q=a.x,g=a.y,k=
-a.width,h=a.height,J=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g),new mxPoint(q+k-e,g),new mxPoint(q+k,a),new mxPoint(q+k-e,g+h),new mxPoint(q,g+h),new mxPoint(q+e,a),new mxPoint(q,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+
-e,g),new mxPoint(q+k,g),new mxPoint(q+k-e,a),new mxPoint(q+k,g+h),new mxPoint(q+e,g+h),new mxPoint(q,a),new mxPoint(q+e,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g+e),new mxPoint(J,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h),new mxPoint(J,g+h-e),new mxPoint(q,g+h),new mxPoint(q,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g),new mxPoint(J,g+e),new mxPoint(q+k,g),new mxPoint(q+k,g+h-e),new mxPoint(J,
-g+h),new mxPoint(q,g+h-e),new mxPoint(q,g)]);J=new mxPoint(J,a);d&&(c.x<q||c.x>q+k?J.y=c.y:J.x=c.x);return mxUtils.getPerimeterPoint(g,J,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?L.prototype.fixedSize:L.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var q=a.x,g=a.y,k=a.width,h=a.height,J=a.getCenterX();a=a.getCenterY();b=null!=
-b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(J,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h-e),new mxPoint(J,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g+e),new mxPoint(J,g)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q+e,g),new mxPoint(q+k-e,g),new mxPoint(q+k,a),new mxPoint(q+
-k-e,g+h),new mxPoint(q+e,g+h),new mxPoint(q,a),new mxPoint(q+e,g)]);J=new mxPoint(J,a);d&&(c.x<q||c.x>q+k?J.y=c.y:J.x=c.x);return mxUtils.getPerimeterPoint(g,J,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);
+c.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,b,c,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(b.style,"size",z.prototype.size))*b.view.scale))),b.style),b,c,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);
+mxPerimeter.ParallelogramPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?x.prototype.fixedSize:x.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,
+g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g)]):(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k,g),new mxPoint(r+k-e,g+h),new mxPoint(r,g+h),new mxPoint(r+e,g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<r||c.x>r+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,
+b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?y.prototype.fixedSize:y.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k-e,g),new mxPoint(r+k,g+h),new mxPoint(r,g+h),
+new mxPoint(r+e,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k,g),new mxPoint(r+k-e,g+h),new mxPoint(r+e,g+h),new mxPoint(r,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g+e),new mxPoint(r+k,g),new mxPoint(r+k,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k,
+g+e),new mxPoint(r+k,g+h-e),new mxPoint(r,g+h),new mxPoint(r,g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<r||c.x>r+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?H.prototype.fixedSize:H.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=
+a.width,h=a.height,w=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(r+k-e,g),new mxPoint(r+k,a),new mxPoint(r+k-e,g+h),new mxPoint(r,g+h),new mxPoint(r+e,a),new mxPoint(r,g)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+
+e,g),new mxPoint(r+k,g),new mxPoint(r+k-e,a),new mxPoint(r+k,g+h),new mxPoint(r+e,g+h),new mxPoint(r,a),new mxPoint(r+e,g)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g+e),new mxPoint(w,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h),new mxPoint(w,g+h-e),new mxPoint(r,g+h),new mxPoint(r,g+e)]):(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(r,g),new mxPoint(w,g+e),new mxPoint(r+k,g),new mxPoint(r+k,g+h-e),new mxPoint(w,
+g+h),new mxPoint(r,g+h-e),new mxPoint(r,g)]);w=new mxPoint(w,a);d&&(c.x<r||c.x>r+k?w.y=c.y:w.x=c.x);return mxUtils.getPerimeterPoint(g,w,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?L.prototype.fixedSize:L.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));e&&(f*=b.view.scale);var r=a.x,g=a.y,k=a.width,h=a.height,w=a.getCenterX();a=a.getCenterY();b=null!=
+b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(h,f)):h*Math.max(0,Math.min(1,f)),g=[new mxPoint(w,g),new mxPoint(r+k,g+e),new mxPoint(r+k,g+h-e),new mxPoint(w,g+h),new mxPoint(r,g+h-e),new mxPoint(r,g+e),new mxPoint(w,g)]):(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(r+e,g),new mxPoint(r+k-e,g),new mxPoint(r+k,a),new mxPoint(r+
+k-e,g+h),new mxPoint(r+e,g+h),new mxPoint(r,a),new mxPoint(r+e,g)]);w=new mxPoint(w,a);d&&(c.x<r||c.x>r+k?w.y=c.y:w.x=c.x);return mxUtils.getPerimeterPoint(g,w,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(fa,mxShape);fa.prototype.size=10;fa.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);
a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",fa);mxUtils.extend(na,mxShape);na.prototype.size=10;na.prototype.inset=2;na.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+
g,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",na);mxUtils.extend(oa,mxShape);oa.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",oa);mxUtils.extend(pa,mxShape);pa.prototype.inset=2;pa.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.ellipse(0,
-f,d-2*f,e-2*f);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",pa);mxUtils.extend(da,mxCylinder);da.prototype.jettyWidth=20;da.prototype.jettyHeight=10;da.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,q=Math.min(b,e-b),k=Math.min(q+
-2*b,e-b);f?(a.moveTo(c,q),a.lineTo(g,q),a.lineTo(g,q+b),a.lineTo(c,q+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,q+b),a.lineTo(0,q+b),a.lineTo(0,q),a.lineTo(c,q),a.close());a.end()};mxCellRenderer.registerShape("module",da);mxUtils.extend(qa,mxCylinder);qa.prototype.jettyWidth=32;qa.prototype.jettyHeight=12;qa.prototype.redrawPath=function(a,b,c,d,e,f){var g=
-parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,q=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,q),a.lineTo(g,q),a.lineTo(g,q+b),a.lineTo(c,q+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,q+b),a.lineTo(0,q+b),a.lineTo(0,q),a.lineTo(c,q),a.close());a.end()};
-mxCellRenderer.registerShape("component",qa);mxUtils.extend(ua,mxRectangleShape);ua.prototype.paintForeground=function(a,b,c,d,e){var f=d/2,g=e/2,q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(b+f,c),new mxPoint(b+d,c+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,q,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ua);mxUtils.extend(ra,
+f,d-2*f,e-2*f);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",pa);mxUtils.extend(da,mxCylinder);da.prototype.jettyWidth=20;da.prototype.jettyHeight=10;da.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,r=Math.min(b,e-b),k=Math.min(r+
+2*b,e-b);f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};mxCellRenderer.registerShape("module",da);mxUtils.extend(qa,mxCylinder);qa.prototype.jettyWidth=32;qa.prototype.jettyHeight=12;qa.prototype.redrawPath=function(a,b,c,d,e,f){var g=
+parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,r=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,r),a.lineTo(g,r),a.lineTo(g,r+b),a.lineTo(c,r+b),a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,r+b),a.lineTo(0,r+b),a.lineTo(0,r),a.lineTo(c,r),a.close());a.end()};
+mxCellRenderer.registerShape("component",qa);mxUtils.extend(ua,mxRectangleShape);ua.prototype.paintForeground=function(a,b,c,d,e){var f=d/2,g=e/2,r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(b+f,c),new mxPoint(b+d,c+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,r,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ua);mxUtils.extend(ra,
mxDoubleEllipse);ra.prototype.outerStroke=!0;ra.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.registerShape("endState",ra);mxUtils.extend(va,ra);va.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",va);mxUtils.extend(ka,mxArrowConnector);ka.prototype.defaultWidth=4;ka.prototype.isOpenEnded=function(){return!0};
ka.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};ka.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",ka);mxUtils.extend(ga,mxArrowConnector);ga.prototype.defaultWidth=10;ga.prototype.defaultArrowWidth=20;ga.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ga.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+
mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ga.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ga);mxUtils.extend(ha,mxActor);ha.prototype.size=30;ha.prototype.isRoundable=function(){return!0};ha.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
@@ -3249,9 +3252,9 @@ parseFloat(mxUtils.getValue(this.style,"size",this.size));var f=mxUtils.getValue
b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
X);mxUtils.extend(sa,mxActor);sa.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",X.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",X.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,
e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",sa);mxUtils.extend(K,mxActor);K.prototype.size=.1;K.prototype.fixedSize=20;K.prototype.redrawPath=function(a,b,c,d,e){b="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,
-0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",K);mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",Y);mxUtils.extend(Z,mxActor);Z.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
-Z);mxUtils.extend(V,mxActor);V.prototype.size=20;V.prototype.isRoundable=function(){return!0};V.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
-V);mxUtils.extend(ia,mxActor);ia.prototype.size=.375;ia.prototype.isRoundable=function(){return!0};ia.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
+0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",K);mxUtils.extend(Y,mxActor);Y.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.registerShape("or",Y);mxUtils.extend(ba,mxActor);ba.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
+ba);mxUtils.extend(U,mxActor);U.prototype.size=20;U.prototype.isRoundable=function(){return!0};U.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
+U);mxUtils.extend(ia,mxActor);ia.prototype.size=.375;ia.prototype.isRoundable=function(){return!0};ia.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
ia);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",la);mxUtils.extend(Ba,mxEllipse);Ba.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke();a.begin();a.moveTo(b+d/2,c);
a.lineTo(b+d/2,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",Ba);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b+.145*d,c+.145*e);a.lineTo(b+.855*d,c+.855*e);a.end();a.stroke();a.begin();a.moveTo(b+.855*d,c+.145*e);a.lineTo(b+.145*d,c+.855*e);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Ea);mxUtils.extend(Ma,mxRhombus);Ma.prototype.paintVertexShape=
function(a,b,c,d,e){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",Ma);mxUtils.extend(Na,mxEllipse);Na.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();a.moveTo(b,c);a.lineTo(b+d,c);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke();a.begin();a.moveTo(b,c+e);a.lineTo(b+d,c+e);a.lineTo(b+d/2,c+e/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",
@@ -3265,34 +3268,34 @@ dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Inde
type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
-dispName:"Fold"}]}];O.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);this.strictDrawShape(a,0,0,d,e)};O.prototype.strictDrawShape=function(a,b,c,d,e,f){var g=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),h=f&&f.size?f.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=f&&f.rectOutline?f.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),l=f&&f.indent?f.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),m=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),n=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),J=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,l)),p=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),B=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),A=f&&f.bottom?f.bottom:
-mxUtils.getValue(this.style,"bottom",!0),r=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),C=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),I=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),u=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),v=f&&f.fillColor?f.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var y=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),x=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),w=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),z=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),E=f&&f.opacity?f.opacity:
-mxUtils.getValue(this.style,"opacity","100"),G=Math.max(0,Math.min(50,h));f=O.prototype;a.setDashed(m);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(y);h=Math.min(.5*e,.5*d,h);k||(h=G*Math.min(d,e)/100);h=Math.min(h,.5*Math.min(d,e));k||(l=Math.min(J*Math.min(d,e)/100));l=Math.min(l,.5*Math.min(d,e)-h);(p||B||A||r)&&"frame"!=q&&(a.begin(),p?f.moveNW(a,b,c,d,e,g,C,h,r):a.moveTo(0,0),p&&f.paintNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),B&&f.paintNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,
-e,g,I,h,A),A&&f.paintSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),r&&f.paintSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(x),m=k=E,"none"==x&&(k=0),"none"==w&&(m=0),a.setGradient(x,w,0,0,d,e,z,k,m),a.begin(),p?f.moveNWInner(a,b,c,d,e,g,C,h,l,p,r):a.moveTo(l,0),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),r&&A&&f.paintSWInner(a,b,c,d,e,g,u,h,l,A),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),A&&B&&f.paintSEInner(a,b,c,d,e,g,I,h,l),f.paintRightInner(a,
-b,c,d,e,g,t,h,l,p,B),B&&p&&f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),p&&r&&f.paintNWInner(a,b,c,d,e,g,C,h,l),a.fill(),"none"==v&&(a.begin(),f.paintFolds(a,b,c,d,e,g,C,t,I,u,h,p,B,A,r),a.stroke()));p||B||A||!r?p||B||!A||r?!p&&!B&&A&&r?"frame"!=q?(a.begin(),f.moveSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.paintSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),"double"==q&&(f.moveNWInner(a,b,c,d,e,g,C,h,l,p,r),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),f.paintSWInner(a,
-b,c,d,e,g,u,h,l,A),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.paintSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),f.lineNWInner(a,b,c,d,e,g,C,h,l,p,r),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),f.paintSWInner(a,b,c,d,e,g,u,h,l,A),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),a.close(),a.fillAndStroke()):p||!B||A||r?!p&&B&&!A&&r?"frame"!=q?(a.begin(),f.moveSW(a,b,c,d,e,g,C,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),"double"==
-q&&(f.moveNWInner(a,b,c,d,e,g,C,h,l,p,r),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r)),a.stroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),"double"==q&&(f.moveSEInner(a,b,c,d,e,g,I,h,l,A),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,C,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),f.lineNWInner(a,b,c,d,e,g,C,h,l,p,r),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),a.close(),a.fillAndStroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,
-g,I,h,A),f.lineSEInner(a,b,c,d,e,g,I,h,l,A),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),a.close(),a.fillAndStroke()):!p&&B&&A&&!r?"frame"!=q?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),f.paintSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),"double"==q&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,r),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),f.paintSEInner(a,b,c,d,e,g,I,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,
-b,c,d,e,g,I,h,A),f.paintSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.lineSWInner(a,b,c,d,e,g,u,h,l,r),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),f.paintSEInner(a,b,c,d,e,g,I,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),a.close(),a.fillAndStroke()):!p&&B&&A&&r?"frame"!=q?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),f.paintSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.paintSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),"double"==q&&(f.moveNWInner(a,
-b,c,d,e,g,C,h,l,p,r),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),f.paintSWInner(a,b,c,d,e,g,u,h,l,A),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),f.paintSEInner(a,b,c,d,e,g,I,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),f.paintSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.paintSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),f.lineNWInner(a,b,c,d,e,g,C,h,l,p,r),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),f.paintSWInner(a,
-b,c,d,e,g,u,h,l,A),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),f.paintSEInner(a,b,c,d,e,g,I,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),a.close(),a.fillAndStroke()):!p||B||A||r?p&&!B&&!A&&r?"frame"!=q?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),f.paintNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),"double"==q&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,B),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),f.paintNWInner(a,b,c,d,e,g,C,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r)),a.stroke()):
-(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),f.paintNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.lineNEInner(a,b,c,d,e,g,t,h,l,B),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),f.paintNWInner(a,b,c,d,e,g,C,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),a.close(),a.fillAndStroke()):p&&!B&&A&&!r?"frame"!=q?(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),"double"==q&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,B),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p)),a.stroke(),a.begin(),
-f.moveSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),"double"==q&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,r),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.lineNEInner(a,b,c,d,e,g,t,h,l,B),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),a.close(),a.fillAndStroke(),a.begin(),f.moveSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.lineSWInner(a,b,c,d,e,g,u,h,l,r),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),a.close(),a.fillAndStroke()):
-p&&!B&&A&&r?"frame"!=q?(a.begin(),f.moveSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.paintSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),f.paintNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),"double"==q&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,B),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),f.paintNWInner(a,b,c,d,e,g,C,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),f.paintSWInner(a,b,c,d,e,g,u,h,l,A),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,I,
-h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.paintSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),f.paintNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.lineNEInner(a,b,c,d,e,g,t,h,l,B),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),f.paintNWInner(a,b,c,d,e,g,C,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),f.paintSWInner(a,b,c,d,e,g,u,h,l,A),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),a.close(),a.fillAndStroke()):p&&B&&!A&&!r?"frame"!=q?(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,
-B),f.paintNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),"double"==q&&(f.moveSEInner(a,b,c,d,e,g,I,h,l,A),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.paintNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),f.lineSEInner(a,b,c,d,e,g,I,h,l,A),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,
-d,e,g,C,h,l,r,p),a.close(),a.fillAndStroke()):p&&B&&!A&&r?"frame"!=q?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),f.paintNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.paintNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),"double"==q&&(f.moveSEInner(a,b,c,d,e,g,I,h,l,A),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),f.paintNWInner(a,b,c,d,e,g,C,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r)),a.stroke()):
-(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),f.paintNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.paintNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),f.lineSEInner(a,b,c,d,e,g,I,h,l,A),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),f.paintNWInner(a,b,c,d,e,g,C,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),a.close(),a.fillAndStroke()):p&&B&&A&&!r?"frame"!=q?(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,
-r),f.paintTop(a,b,c,d,e,g,t,h,B),f.paintNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),f.paintSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),"double"==q&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,r),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),f.paintSEInner(a,b,c,d,e,g,I,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.paintNE(a,b,c,d,e,g,t,
-h,p),f.paintRight(a,b,c,d,e,g,I,h,A),f.paintSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.lineSWInner(a,b,c,d,e,g,u,h,l,r),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),f.paintSEInner(a,b,c,d,e,g,I,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),a.close(),a.fillAndStroke()):p&&B&&A&&r&&("frame"!=q?(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,r),f.paintNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.paintNE(a,b,c,d,e,g,t,h,
-p),f.paintRight(a,b,c,d,e,g,I,h,A),f.paintSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.paintSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),a.close(),"double"==q&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,r),f.paintSWInner(a,b,c,d,e,g,u,h,l,A),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),f.paintSEInner(a,b,c,d,e,g,I,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),f.paintNWInner(a,b,c,d,e,g,C,h,l),f.paintLeftInner(a,b,c,d,
-e,g,u,h,l,A,r),a.close()),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,r),f.paintNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.paintNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),f.paintSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.paintSW(a,b,c,d,e,g,u,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),a.close(),f.moveSWInner(a,b,c,d,e,g,u,h,l,r),f.paintSWInner(a,b,c,d,e,g,u,h,l,A),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),f.paintSEInner(a,b,c,d,e,g,I,h,l),f.paintRightInner(a,b,c,d,
-e,g,t,h,l,p,B),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p),f.paintNWInner(a,b,c,d,e,g,C,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),a.close(),a.fillAndStroke())):"frame"!=q?(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),"double"==q&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,B),f.paintTopInner(a,b,c,d,e,g,C,h,l,r,p)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,C,h,r),f.paintTop(a,b,c,d,e,g,t,h,B),f.lineNEInner(a,b,c,d,e,g,t,h,l,B),f.paintTopInner(a,b,c,d,
-e,g,C,h,l,r,p),a.close(),a.fillAndStroke()):"frame"!=q?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),"double"==q&&(f.moveSEInner(a,b,c,d,e,g,I,h,l,A),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,p),f.paintRight(a,b,c,d,e,g,I,h,A),f.lineSEInner(a,b,c,d,e,g,I,h,l,A),f.paintRightInner(a,b,c,d,e,g,t,h,l,p,B),a.close(),a.fillAndStroke()):"frame"!=q?(a.begin(),f.moveSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),"double"==q&&
-(f.moveSWInner(a,b,c,d,e,g,u,h,l,r),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,I,h,B),f.paintBottom(a,b,c,d,e,g,u,h,r),f.lineSWInner(a,b,c,d,e,g,u,h,l,r),f.paintBottomInner(a,b,c,d,e,g,I,h,l,B,A),a.close(),a.fillAndStroke()):"frame"!=q?(a.begin(),f.moveSW(a,b,c,d,e,g,C,h,A),f.paintLeft(a,b,c,d,e,g,C,h,p),"double"==q&&(f.moveNWInner(a,b,c,d,e,g,C,h,l,p,r),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,C,h,A),f.paintLeft(a,
-b,c,d,e,g,C,h,p),f.lineNWInner(a,b,c,d,e,g,C,h,l,p,r),f.paintLeftInner(a,b,c,d,e,g,u,h,l,A,r),a.close(),a.fillAndStroke());a.begin();f.paintFolds(a,b,c,d,e,g,C,t,I,u,h,p,B,A,r);a.stroke()};O.prototype.moveNW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,0):a.moveTo(0,h)};O.prototype.moveNE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,0):a.moveTo(d-h,0)};O.prototype.moveSE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&
+dispName:"Fold"}]}];O.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);this.strictDrawShape(a,0,0,d,e)};O.prototype.strictDrawShape=function(a,b,c,d,e,f){var g=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),h=f&&f.size?f.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),r=f&&f.rectOutline?f.rectOutline:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),l=f&&f.indent?f.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),m=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),n=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),p=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,l)),w=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),C=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),B=f&&f.bottom?f.bottom:
+mxUtils.getValue(this.style,"bottom",!0),q=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),D=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),J=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),u=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),v=f&&f.fillColor?f.fillColor:
+mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var A=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),z=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),x=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),y=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),I=f&&f.opacity?f.opacity:
+mxUtils.getValue(this.style,"opacity","100"),F=Math.max(0,Math.min(50,h));f=O.prototype;a.setDashed(m);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(A);h=Math.min(.5*e,.5*d,h);k||(h=F*Math.min(d,e)/100);h=Math.min(h,.5*Math.min(d,e));k||(l=Math.min(p*Math.min(d,e)/100));l=Math.min(l,.5*Math.min(d,e)-h);(w||C||B||q)&&"frame"!=r&&(a.begin(),w?f.moveNW(a,b,c,d,e,g,D,h,q):a.moveTo(0,0),w&&f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),C&&f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,
+e,g,J,h,B),B&&f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),q&&f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(z),m=k=I,"none"==z&&(k=0),"none"==x&&(m=0),a.setGradient(z,x,0,0,d,e,y,k,m),a.begin(),w?f.moveNWInner(a,b,c,d,e,g,D,h,l,w,q):a.moveTo(l,0),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),q&&B&&f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),B&&C&&f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,
+b,c,d,e,g,t,h,l,w,C),C&&w&&f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),w&&q&&f.paintNWInner(a,b,c,d,e,g,D,h,l),a.fill(),"none"==v&&(a.begin(),f.paintFolds(a,b,c,d,e,g,D,t,J,u,h,w,C,B,q),a.stroke()));w||C||B||!q?w||C||!B||q?!w&&!C&&B&&q?"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,
+b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.lineNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):w||!C||B||q?!w&&C&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),"double"==
+r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.lineNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke(),a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,
+g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),a.close(),a.fillAndStroke()):!w&&C&&B&&!q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,
+b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),a.close(),a.fillAndStroke()):!w&&C&&B&&q?"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),"double"==r&&(f.moveNWInner(a,
+b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.lineNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,
+b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),a.close(),a.fillAndStroke()):!w||C||B||q?w&&!C&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke()):
+(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke()):w&&!C&&B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w)),a.stroke(),a.begin(),
+f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),a.close(),a.fillAndStroke(),a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):
+w&&!C&&B&&q?"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,J,
+h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):w&&C&&!B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,
+C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,
+d,e,g,D,h,l,q,w),a.close(),a.fillAndStroke()):w&&C&&!B&&q?"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke()):
+(a.begin(),f.moveSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke()):w&&C&&B&&!q?"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,
+q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,
+h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),a.close(),a.fillAndStroke()):w&&C&&B&&q&&("frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,
+w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),a.close(),"double"==r&&(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,
+e,g,u,h,l,B,q),a.close()),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.paintNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.paintSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.paintSW(a,b,c,d,e,g,u,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),a.close(),f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintSWInner(a,b,c,d,e,g,u,h,l,B),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),f.paintSEInner(a,b,c,d,e,g,J,h,l),f.paintRightInner(a,b,c,d,
+e,g,t,h,l,w,C),f.paintNEInner(a,b,c,d,e,g,t,h,l),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w),f.paintNWInner(a,b,c,d,e,g,D,h,l),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke())):"frame"!=r?(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),"double"==r&&(f.moveNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,e,g,D,h,l,q,w)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,D,h,q),f.paintTop(a,b,c,d,e,g,t,h,C),f.lineNEInner(a,b,c,d,e,g,t,h,l,C),f.paintTopInner(a,b,c,d,
+e,g,D,h,l,q,w),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),"double"==r&&(f.moveSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,t,h,w),f.paintRight(a,b,c,d,e,g,J,h,B),f.lineSEInner(a,b,c,d,e,g,J,h,l,B),f.paintRightInner(a,b,c,d,e,g,t,h,l,w,C),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),"double"==r&&
+(f.moveSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,J,h,C),f.paintBottom(a,b,c,d,e,g,u,h,q),f.lineSWInner(a,b,c,d,e,g,u,h,l,q),f.paintBottomInner(a,b,c,d,e,g,J,h,l,C,B),a.close(),a.fillAndStroke()):"frame"!=r?(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,b,c,d,e,g,D,h,w),"double"==r&&(f.moveNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,D,h,B),f.paintLeft(a,
+b,c,d,e,g,D,h,w),f.lineNWInner(a,b,c,d,e,g,D,h,l,w,q),f.paintLeftInner(a,b,c,d,e,g,u,h,l,B,q),a.close(),a.fillAndStroke());a.begin();f.paintFolds(a,b,c,d,e,g,D,t,J,u,h,w,C,B,q);a.stroke()};O.prototype.moveNW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,0):a.moveTo(0,h)};O.prototype.moveNE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,0):a.moveTo(d-h,0)};O.prototype.moveSE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&
"square"==f||!k?a.moveTo(d,e):a.moveTo(d,e-h)};O.prototype.moveSW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,e):a.moveTo(h,e)};O.prototype.paintNW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,h,0)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(h,0);else a.lineTo(0,0)};O.prototype.paintTop=
function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(d,0):a.lineTo(d-h,0)};O.prototype.paintNE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d,h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d,h);else a.lineTo(d,0)};O.prototype.paintRight=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==
g&&"square"==f||!k?a.lineTo(d,e):a.lineTo(d,e-h)};O.prototype.paintLeft=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,0):a.lineTo(0,h)};O.prototype.paintSE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d-h,e)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-h,e);else a.lineTo(d,
@@ -3307,22 +3310,22 @@ e-h-k):a.moveTo(0,e-k)};O.prototype.lineSWInner=function(a,b,c,d,e,f,g,h,k,l){l?
f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,e-h-k):a.moveTo(d-k,e)};O.prototype.lineSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,e-h-k):a.lineTo(d-
k,e)};O.prototype.moveNEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,h+k):a.moveTo(d,k)};O.prototype.lineNEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==
g&&"snip"==f?a.lineTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,h+k):a.lineTo(d,k)};O.prototype.moveNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.moveTo(k,0):l&&!m?a.moveTo(0,k):"square"==g||"default"==g&&"square"==f?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,h+k):a.moveTo(0,
-0)};O.prototype.lineNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,0):l&&!m?a.lineTo(0,k):"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,h+k):a.lineTo(0,0)};O.prototype.paintFolds=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,t){if("fold"==f||"fold"==g||"fold"==h||"fold"==k||"fold"==l)("fold"==g||"default"==
-g&&"fold"==f)&&n&&t&&(a.moveTo(0,m),a.lineTo(m,m),a.lineTo(m,0)),("fold"==h||"default"==h&&"fold"==f)&&n&&p&&(a.moveTo(d-m,0),a.lineTo(d-m,m),a.lineTo(d,m)),("fold"==k||"default"==k&&"fold"==f)&&r&&p&&(a.moveTo(d-m,e),a.lineTo(d-m,e-m),a.lineTo(d,e-m)),("fold"==l||"default"==l&&"fold"==f)&&r&&t&&(a.moveTo(0,e-m),a.lineTo(m,e-m),a.lineTo(m,e))};mxCellRenderer.registerShape(O.prototype.cst.RECT2,O);O.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;
+0)};O.prototype.lineNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,0):l&&!m?a.lineTo(0,k):"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,h+k):a.lineTo(0,0)};O.prototype.paintFolds=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,t){if("fold"==f||"fold"==g||"fold"==h||"fold"==k||"fold"==l)("fold"==g||"default"==
+g&&"fold"==f)&&n&&t&&(a.moveTo(0,m),a.lineTo(m,m),a.lineTo(m,0)),("fold"==h||"default"==h&&"fold"==f)&&n&&p&&(a.moveTo(d-m,0),a.lineTo(d-m,m),a.lineTo(d,m)),("fold"==k||"default"==k&&"fold"==f)&&q&&p&&(a.moveTo(d-m,e),a.lineTo(d-m,e-m),a.lineTo(d,e-m)),("fold"==l||"default"==l&&"fold"==f)&&q&&t&&(a.moveTo(0,e-m),a.lineTo(m,e-m),a.lineTo(m,e))};mxCellRenderer.registerShape(O.prototype.cst.RECT2,O);O.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape;
xa.prototype.paintEdgeShape=function(a,b,c){for(var d=[],e=0;e<b.length;e++)d.push(mxUtils.clone(b[e]));var e=a.state.dashed,f=a.state.fixDash;xa.prototype.origPaintEdgeShape.apply(this,[a,d,c]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(e,f),xa.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",xa);"undefined"!==typeof StyleFormatPanel&&function(){var a=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.getSelectionState(),c=a.apply(this,arguments);"umlFrame"==b.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c}}();mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var q=e*(g+k+1),m=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-q/2-m/2,d.y-m/2+q/2);a.lineTo(d.x+m/2-3*q/2,d.y-3*m/2-q/2);a.stroke()}});mxMarker.addMarker("box",
-function(a,b,c,d,e,f,g,h,k,l){var q=e*(g+k+1),m=f*(g+k+1),n=d.x+q/2,p=d.y+m/2;d.x-=q;d.y-=m;return function(){a.begin();a.moveTo(n-q/2-m/2,p-m/2+q/2);a.lineTo(n-q/2+m/2,p-m/2-q/2);a.lineTo(n+m/2-3*q/2,p-3*m/2-q/2);a.lineTo(n-m/2-3*q/2,p-3*m/2+q/2);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var q=e*(g+k+1),m=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-q/2-m/2,d.y-m/2+q/2);a.lineTo(d.x+m/2-3*q/2,d.y-3*m/2-q/2);a.moveTo(d.x-q/2+m/2,d.y-
-m/2-q/2);a.lineTo(d.x-m/2-3*q/2,d.y-3*m/2+q/2);a.stroke()}});mxMarker.addMarker("circle",Ra);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var q=d.clone(),m=Ra.apply(this,arguments),n=e*(g+2*k),p=f*(g+2*k);return function(){m.apply(this,arguments);a.begin();a.moveTo(q.x-e*k,q.y-f*k);a.lineTo(q.x-2*n+e*k,q.y-2*p+f*k);a.moveTo(q.x-n-p+f*k,q.y-p+n-e*k);a.lineTo(q.x+p-n-f*k,q.y-p-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,l){var q=e*(g+k+1),m=f*(g+
-k+1),n=d.clone();d.x-=q;d.y-=m;return function(){a.begin();a.moveTo(n.x-m,n.y+q);a.quadTo(d.x-m,d.y+q,d.x,d.y);a.quadTo(d.x+m,d.y-q,n.x+m,n.y-q);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var q=d.clone();q.x-=b;q.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(q.x,q.y);h?a.lineTo(q.x-e-f/2,q.y-f+e/2):a.lineTo(q.x+f/2-e,q.y-f-e/2);a.lineTo(q.x-e,q.y-f);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
-function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,l,q){f*=h+l;g*=h+l;var m=e.clone();return function(){b.begin();b.moveTo(m.x,m.y);k?b.lineTo(m.x-f-g/a,m.y-g+f/a):b.lineTo(m.x+g/a-f,m.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Va=function(a,b,c){return Da(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=
-Math.round(2*b)/a.view.scale-c})},Da=function(a,b,c,d,e){return W(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,q=g.y-l.y,m=Math.sqrt(h*h+q*q);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,
-m,h/m,q/m,l,g,d,f)})},wa=function(a){return function(b){return[W(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",X.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",X.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,
-Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Sa=function(a){return function(b){return[W(b,["size"],function(b){var c=Math.max(0,Math.min(.5*b.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(b.x,b.y+c)},function(a,b){this.state.style.size=Math.max(0,b.y-a.y)},!0)]}},Qa=function(a,b,c){return function(d){var e=[W(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+
-d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)},!1)];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ia=function(a,b,c,d,e){c=null!=c?c:.5;return function(f){var g=[W(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(.5*b.width,
-d*(c?1:b.width))),b.getCenterY())},function(a,b,d){a=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));this.state.style.size=a},!1,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ta(f));return g}},Ta=function(a,b,c){a=null!=a?a:.5;return function(d){var e=[W(d,["size"],function(d){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,f=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
-"size",e?c:b)));return new mxPoint(d.x+Math.min(.75*d.width*a,f*(e?.75:.75*d.width)),d.y+d.height/4)},function(b,d){var e=null!=c&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(a,(d.x-b.x)/b.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ca=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b}},ta=function(a,b){return W(a,
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var b=this.format.getSelectionState(),c=a.apply(this,arguments);"umlFrame"==b.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c}}();mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-r/2-m/2,d.y-m/2+r/2);a.lineTo(d.x+m/2-3*r/2,d.y-3*m/2-r/2);a.stroke()}});mxMarker.addMarker("box",
+function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1),n=d.x+r/2,w=d.y+m/2;d.x-=r;d.y-=m;return function(){a.begin();a.moveTo(n-r/2-m/2,w-m/2+r/2);a.lineTo(n-r/2+m/2,w-m/2-r/2);a.lineTo(n+m/2-3*r/2,w-3*m/2-r/2);a.lineTo(n-m/2-3*r/2,w-3*m/2+r/2);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-r/2-m/2,d.y-m/2+r/2);a.lineTo(d.x+m/2-3*r/2,d.y-3*m/2-r/2);a.moveTo(d.x-r/2+m/2,d.y-
+m/2-r/2);a.lineTo(d.x-m/2-3*r/2,d.y-3*m/2+r/2);a.stroke()}});mxMarker.addMarker("circle",Ra);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var r=d.clone(),m=Ra.apply(this,arguments),n=e*(g+2*k),w=f*(g+2*k);return function(){m.apply(this,arguments);a.begin();a.moveTo(r.x-e*k,r.y-f*k);a.lineTo(r.x-2*n+e*k,r.y-2*w+f*k);a.moveTo(r.x-n-w+f*k,r.y-w+n-e*k);a.lineTo(r.x+w-n-f*k,r.y-w-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,l){var r=e*(g+k+1),m=f*(g+
+k+1),n=d.clone();d.x-=r;d.y-=m;return function(){a.begin();a.moveTo(n.x-m,n.y+r);a.quadTo(d.x-m,d.y+r,d.x,d.y);a.quadTo(d.x+m,d.y-r,n.x+m,n.y-r);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var r=d.clone();r.x-=b;r.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(r.x,r.y);h?a.lineTo(r.x-e-f/2,r.y-f+e/2):a.lineTo(r.x+f/2-e,r.y-f-e/2);a.lineTo(r.x-e,r.y-f);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
+function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,l,r){f*=h+l;g*=h+l;var m=e.clone();return function(){b.begin();b.moveTo(m.x,m.y);k?b.lineTo(m.x-f-g/a,m.y-g+f/a):b.lineTo(m.x+g/a-f,m.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Va=function(a,b,c){return Da(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=
+Math.round(2*b)/a.view.scale-c})},Da=function(a,b,c,d,e){return V(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,r=g.y-l.y,m=Math.sqrt(h*h+r*r);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,
+m,h/m,r/m,l,g,d,f)})},wa=function(a){return function(b){return[V(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",X.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",X.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,
+Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Sa=function(a){return function(b){return[V(b,["size"],function(b){var c=Math.max(0,Math.min(.5*b.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(b.x,b.y+c)},function(a,b){this.state.style.size=Math.max(0,b.y-a.y)},!0)]}},Qa=function(a,b,c){return function(d){var e=[V(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+
+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)},!1)];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ia=function(a,b,c,d,e){c=null!=c?c:.5;return function(f){var g=[V(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(.5*b.width,
+d*(c?1:b.width))),b.getCenterY())},function(a,b,d){a=null!=e&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));this.state.style.size=a},!1,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ta(f));return g}},Ta=function(a,b,c){a=null!=a?a:.5;return function(d){var e=[V(d,["size"],function(d){var e=null!=c?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,f=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
+"size",e?c:b)));return new mxPoint(d.x+Math.min(.75*d.width*a,f*(e?.75:.75*d.width)),d.y+d.height/4)},function(b,d){var e=null!=c&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(a,(d.x-b.x)/b.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ta(d));return e}},Ca=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b}},ta=function(a,b){return V(a,
[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*
-e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},W=function(a,b,c,d,e,f,g){var h=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);h.execute=function(a){for(var c=0;c<b.length;c++)this.copyStyle(b[c]);
+e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},V=function(a,b,c,d,e,f,g){var h=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);h.execute=function(a){for(var c=0;c<b.length;c++)this.copyStyle(b[c]);
g&&g(a)};h.getPosition=c;h.setPosition=d;h.ignoreGrid=null!=e?e:!0;if(f){var k=h.positionChanged;h.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return h},Ja={link:function(a){return[Va(a,!0,10),Va(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Da(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/
3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(Da(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,
@@ -3332,36 +3335,36 @@ parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUt
a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(Da(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=
Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ta(a,c/2))}b.push(W(a,[mxConstants.STYLE_STARTSIZE],
+parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ta(a,c/2))}b.push(V(a,[mxConstants.STYLE_STARTSIZE],
function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,
Math.min(b.width,c.x-b.x)))},!1,null,function(b){if(mxEvent.isControlDown(b.getEvent())&&(b=a.view.graph,b.isTableRow(a.cell)||b.isTableCell(a.cell))){for(var c=b.getSwimlaneDirection(a.style),d=b.model.getParent(a.cell),d=b.model.getChildCells(d,!0),e=[],f=0;f<d.length;f++)d[f]!=a.cell&&b.isSwimlane(d[f])&&b.getSwimlaneDirection(b.getCurrentCellStyle(d[f]))==c&&e.push(d[f]);b.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],e)}}));return b},label:Ca(),ext:Ca(),rectangle:Ca(),
-triangle:Ca(),rhombus:Ca(),umlLifeline:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){return[W(a,["width","height"],function(a){var b=Math.max(R.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",R.prototype.width))),
-c=Math.max(1.5*R.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",R.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(R.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*R.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[W(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,
-"size",z.prototype.size));return b?new mxPoint(a.x+c,a.y+a.height/4):new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,b.x-a.x)):Math.max(0,Math.min(.5,(b.x-a.x)/a.width));this.state.style.size=c},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},cross:function(a){return[W(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"size",za.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=
-Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},note2:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[W(a,["size"],function(a){var b=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",ha.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},dataStorage:function(a){return[W(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,"size",b?K.prototype.fixedSize:
-K.prototype.size));return new mxPoint(a.x+a.width-c*(b?1:a.width),a.getCenterY())},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-b.x)):Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width));this.state.style.size=c},!1)]},callout:function(a){var b=[W(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",y.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",y.prototype.position)));mxUtils.getValue(this.state.style,"base",y.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",y.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),W(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",y.prototype.position2)));
-return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),W(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",y.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",y.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",y.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
-c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",y.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},internalStorage:function(a){var b=[W(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ca.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",ca.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},module:function(a){return[W(a,["jettyWidth","jettyHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",da.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,
-mxUtils.getValue(this.state.style,"jettyHeight",da.prototype.jettyHeight)));return new mxPoint(a.x+b/2,a.y+2*c)},function(a,b){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y))/2)})]},corner:function(a){return[W(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ea.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",ea.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},tee:function(a){return[W(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ja.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,
-b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},singleArrow:wa(1),doubleArrow:wa(.5),folder:function(a){return[W(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",n.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",n.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},document:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",v.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},tape:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[W(a,
-["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",h.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,b){this.state.style.isoAngle=Math.max(0,50*(b.y-a.y)/a.height)},!0)]},cylinder2:Sa(l.prototype.size),cylinder3:Sa(m.prototype.size),offPageConnector:function(a){return[W(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ia.prototype.size))));
+triangle:Ca(),rhombus:Ca(),umlLifeline:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",R.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){return[V(a,["width","height"],function(a){var b=Math.max(W.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",W.prototype.width))),
+c=Math.max(1.5*W.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",W.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(W.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*W.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[V(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,
+"size",A.prototype.size));return b?new mxPoint(a.x+c,a.y+a.height/4):new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,b.x-a.x)):Math.max(0,Math.min(.5,(b.x-a.x)/a.width));this.state.style.size=c},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},cross:function(a){return[V(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"size",za.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=
+Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},note2:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[V(a,["size"],function(a){var b=
+Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",ha.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},dataStorage:function(a){return[V(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,"size",b?K.prototype.fixedSize:
+K.prototype.size));return new mxPoint(a.x+a.width-c*(b?1:a.width),a.getCenterY())},function(a,b){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-b.x)):Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width));this.state.style.size=c},!1)]},callout:function(a){var b=[V(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",z.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"position",z.prototype.position)));mxUtils.getValue(this.state.style,"base",z.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",z.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),V(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",z.prototype.position2)));
+return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100},!1),V(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",z.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",z.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",z.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
+c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",z.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},internalStorage:function(a){var b=[V(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ca.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",ca.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},module:function(a){return[V(a,["jettyWidth","jettyHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",da.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,
+mxUtils.getValue(this.state.style,"jettyHeight",da.prototype.jettyHeight)));return new mxPoint(a.x+b/2,a.y+2*c)},function(a,b){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y))/2)})]},corner:function(a){return[V(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ea.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",ea.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},tee:function(a){return[V(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ja.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,
+b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},singleArrow:wa(1),doubleArrow:wa(.5),folder:function(a){return[V(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",n.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",n.prototype.tabHeight)));mxUtils.getValue(this.state.style,
+"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},document:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
+"size",v.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},tape:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[V(a,
+["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",h.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,b){this.state.style.isoAngle=Math.max(0,50*(b.y-a.y)/a.height)},!0)]},cylinder2:Sa(l.prototype.size),cylinder3:Sa(m.prototype.size),offPageConnector:function(a){return[V(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ia.prototype.size))));
return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var b=[Graph.createHandle(a,["size"],function(a){var b=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+b,a.y+b)},function(a,b){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,b.x-a.x)))/100})];a=Graph.createHandle(a,
-["indent"],function(a){var b=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+b*a.height/200)},function(a,b){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(b.y-a.y)/a.height)))/100});b.push(a);return b},step:Ia(H.prototype.size,!0,null,!0,H.prototype.fixedSize),hexagon:Ia(L.prototype.size,!0,.5,!0,L.prototype.fixedSize),curlyBracket:Ia(F.prototype.size,!1),display:Ia(Aa.prototype.size,!1),cube:Qa(1,
-c.prototype.size,!1),card:Qa(.5,t.prototype.size,!0),loopLimit:Qa(.5,V.prototype.size,!0),trapezoid:Ta(.5,x.prototype.size,x.prototype.fixedSize),parallelogram:Ta(1,w.prototype.size,w.prototype.fixedSize)};Graph.createHandle=W;Graph.handleFactory=Ja;var $a=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=$a.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&
+["indent"],function(a){var b=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+b*a.height/200)},function(a,b){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(b.y-a.y)/a.height)))/100});b.push(a);return b},step:Ia(H.prototype.size,!0,null,!0,H.prototype.fixedSize),hexagon:Ia(L.prototype.size,!0,.5,!0,L.prototype.fixedSize),curlyBracket:Ia(G.prototype.size,!1),display:Ia(Aa.prototype.size,!1),cube:Qa(1,
+c.prototype.size,!1),card:Qa(.5,t.prototype.size,!0),loopLimit:Qa(.5,U.prototype.size,!0),trapezoid:Ta(.5,y.prototype.size,y.prototype.fixedSize),parallelogram:Ta(1,x.prototype.size,x.prototype.fixedSize)};Graph.createHandle=V;Graph.handleFactory=Ja;var $a=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=$a.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&
null==mxStencilRegistry.getStencil(b)?b=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(b=mxConstants.SHAPE_SWIMLANE);b=Ja[b];null==b&&null!=this.state.shape&&this.state.shape.isRoundable()&&(b=Ja[mxConstants.SHAPE_RECTANGLE]);null!=b&&(b=b(this.state),null!=b&&(a=null==a?b:a.concat(b)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
a=Ja[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Ka=new mxPoint(1,0),La=new mxPoint(1,0),wa=mxUtils.toRadians(-30),Ka=mxUtils.getRotatedPoint(Ka,Math.cos(wa),Math.sin(wa)),wa=mxUtils.toRadians(-150),La=mxUtils.getRotatedPoint(La,Math.cos(wa),Math.sin(wa));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==
-h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=Ka.x,l=Ka.y,m=La.x,n=La.y,q="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=p.x;var d=b-p.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);q?(c&&(p=new mxPoint(p.x+k*b,p.y+l*b),e.push(p)),p=new mxPoint(p.x+m*a,p.y+n*a)):(c&&(p=new mxPoint(p.x+m*a,p.y+n*a),e.push(p)),p=new mxPoint(p.x+k*b,p.y+l*b));e.push(p)};var p=h;null==
+h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=Ka.x,l=Ka.y,m=La.x,n=La.y,r="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=p.x;var d=b-p.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);r?(c&&(p=new mxPoint(p.x+k*b,p.y+l*b),e.push(p)),p=new mxPoint(p.x+m*a,p.y+n*a)):(c&&(p=new mxPoint(p.x+m*a,p.y+n*a),e.push(p)),p=new mxPoint(p.x+k*b,p.y+l*b));e.push(p)};var p=h;null==
d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var ab=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return ab.apply(this,arguments)};b.prototype.constraints=[];f.prototype.getConstraints=function(a,b,c){a=[];var d=Math.tan(mxUtils.toRadians(30)),e=(.5-
d)/2,d=Math.min(b,c/(.5+d));b=(b-d)/2;c=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*d,c+d*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.75*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*d,c+(1-e)*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.75*d));return a};h.prototype.getConstraints=
function(a,b,c){a=[];var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,d=Math.min(b*Math.tan(d),.5*c);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c-d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));return a};y.prototype.getConstraints=function(a,b,c){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));return a};z.prototype.getConstraints=function(a,b,c){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(c-d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
b,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(c-d)));b>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,
@@ -3382,8 +3385,8 @@ Ea.prototype.constraints=mxEllipse.prototype.constraints;Ga.prototype.constraint
0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));return a};da.prototype.getConstraints=function(a,b,c){b=parseFloat(mxUtils.getValue(a,
"jettyWidth",da.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",da.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,b),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,b),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(c-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(c-.5*a,3.5*a))];c>5*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,b));c>8*a&&d.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1,null,b));c>15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,b));return d};V.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
+.5),!1,null,b));c>15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,b));return d};U.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];Q.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];qa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];p.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
@@ -3393,7 +3396,7 @@ Ea.prototype.constraints=mxEllipse.prototype.constraints;Ga.prototype.constraint
0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
-.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];w.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;v.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];x.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;v.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;ja.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*b+.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),e));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,.5*(b+d),.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+d),c));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),.5*(c+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-d),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*b-.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,
@@ -3406,8 +3409,8 @@ function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(t
function(a,b,c){a=[];var d=Math.min(c,b),e=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(c-e)/2,f=d+e,g=(b-e)/2,e=g+e;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,e,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,c));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+e),d));a.push(new mxConnectionConstraint(new mxPoint(0,
0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b+e),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Q.prototype.constraints=null;Y.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
-.9),!1)];Z.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];pa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};R.prototype.constraints=null;Y.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
+.9),!1)];ba.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];oa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];pa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){b.escape();a=b.deleteCells(b.getDeletableCells(b.getSelectionCells()),a);null!=a&&b.setSelectionCells(a)}var c=this.editorUi,d=c.editor,b=d.graph,f=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){b.openLink(c.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";c.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey=
"import";window.openFile=new OpenFile(mxUtils.bind(this,function(){c.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);d.graph.setSelectionCells(d.graph.importGraphModel(c.documentElement))}catch(m){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+m.message)}}));c.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=f;this.addAction("save",function(){c.saveFile(!1)},null,null,Editor.ctrlKey+
@@ -3459,16 +3462,17 @@ function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUN
function(){var a=b.view.getState(b.getSelectionCell()),d="1";null!=a&&null!=b.getFoldingImage(a)&&(d="0");b.setCellStyles("collapsible",d);c.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[d],"cells",b.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var a=b.getSelectionCells();if(null!=a&&0<a.length){var c=b.getModel(),c=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",c.getStyle(a[0])||"",function(c){null!=c&&b.setCellStyle(mxUtils.trim(c),
a)},null,null,400,220);this.editorUi.showDialog(c.container,420,300,!0,!0);c.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){b.isEnabled()&&!b.isSelectionEmpty()&&c.setDefaultStyle(b.getSelectionCell())},null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){b.isEnabled()&&c.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=b.getSelectionCell();if(null!=a&&b.getModel().isEdge(a)){var c=
d.graph.selectionCellsHandler.getHandler(a);if(c instanceof mxEdgeHandler){for(var e=b.view.translate,f=b.view.scale,k=e.x,e=e.y,a=b.getModel().getParent(a),n=b.getCellGeometry(a);b.getModel().isVertex(a)&&null!=n;)k+=n.x,e+=n.y,a=b.getModel().getParent(a),n=b.getCellGeometry(a);k=Math.round(b.snap(b.popupMenuHandler.triggerX/f-k));f=Math.round(b.snap(b.popupMenuHandler.triggerY/f-e));c.addPointAt(c.state,k,f)}}});this.addAction("removeWaypoint",function(){var a=c.actions.get("removeWaypoint");null!=
-a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=b.getSelectionCells();if(null!=a){a=b.addAllEdges(a);b.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var d=a[c];if(b.getModel().isEdge(d)){var e=b.getCellGeometry(d);null!=e&&(e=e.clone(),e.points=null,e.x=0,e.y=0,e.offset=null,b.getModel().setGeometry(d,e))}}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+C");e=this.addAction("subscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&
-document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");e=this.addAction("superscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");e=this.addAction("indent",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("indent",!1,null)}),null,null,"Shift+Tab");this.addAction("image...",function(){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var a=mxResources.get("image")+
-" ("+mxResources.get("url")+"):",d=b.getView().getState(b.getSelectionCell()),e="";null!=d&&(e=d.style[mxConstants.STYLE_IMAGE]||e);var f=b.cellEditor.saveSelection();c.showImageDialog(a,e,function(a,c,d){if(b.cellEditor.isContentEditing())b.cellEditor.restoreSelection(f),b.insertImage(a,c,d);else{var e=b.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;b.getModel().beginUpdate();try{if(0==e.length){var e=[b.insertVertex(b.getDefaultParent(),null,"",0,0,c,d,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],
-h=b.getCenterInsertPoint(b.getBoundingBoxFromGeometry(e,!0));e[0].geometry.x=h.x;e[0].geometry.y=h.y;g=e;b.fireEvent(new mxEventObject("cellsInserted","cells",g))}b.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var k=b.getCurrentCellStyle(e[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?b.setCellStyles(mxConstants.STYLE_SHAPE,"image",e):0==a.length&&b.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==b.getSelectionCount()&&null!=c&&null!=d){var l=e[0],
-m=b.getModel().getGeometry(l);null!=m&&(m=m.clone(),m.width=c,m.height=d,b.getModel().setGeometry(l,m))}}finally{b.getModel().endUpdate()}null!=g&&(b.setSelectionCells(g),b.scrollCellToVisible(g[0]))}}},b.cellEditor.isContentEditing(),!b.cellEditor.isContentEditing())}}).isEnabled=f;e=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(c,document.body.offsetWidth-280,120,220,196),this.layersWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("layers"))}),
-this.layersWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));e=this.addAction("formatPanel",mxUtils.bind(this,
-function(){c.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return 0<c.formatWidth}));e=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(c,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("outline"))}),
-this.outlineWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
-Actions.prototype.addAction=function(a,c,d,b,f){var e;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),e=mxResources.get(a)+"..."):e=mxResources.get(a);return this.put(a,new Action(e,c,d,b,f))};Actions.prototype.put=function(a,c){return this.actions[a]=c};Actions.prototype.get=function(a){return this.actions[a]};function Action(a,c,d,b,f){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(c);this.enabled=null!=d?d:!0;this.iconCls=b;this.shortcut=f;this.visible=!0}
-mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};Menus=function(a){this.editorUi=a;this.menus={};this.init();mxClient.IS_SVG||((new Image).src=this.checkmarkImage)};Menus.prototype.defaultFont="Helvetica";Menus.prototype.defaultFontSize="12";Menus.prototype.defaultMenuItems="file edit view arrange extras help".split(" ");Menus.prototype.defaultFonts="Helvetica;Verdana;Times New Roman;Garamond;Comic Sans MS;Courier New;Georgia;Lucida Console;Tahoma".split(";");
+a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(a){var c=b.getSelectionCells();if(null!=c){c=b.addAllEdges(c);b.getModel().beginUpdate();try{for(var d=0;d<c.length;d++){var e=c[d];if(b.getModel().isEdge(e)){var f=b.getCellGeometry(e);mxEvent.isShiftDown(a)?(b.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),b.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),b.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[e]),b.setCellStyles(mxConstants.STYLE_ENTRY_Y,
+null,[e])):null!=f&&(f=f.clone(),f.points=null,f.x=0,f.y=0,f.offset=null,b.getModel().setGeometry(e,f))}}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+C");e=this.addAction("subscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");e=this.addAction("superscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");
+e=this.addAction("indent",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("indent",!1,null)}),null,null,"Shift+Tab");this.addAction("image...",function(){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=b.getView().getState(b.getSelectionCell()),e="";null!=d&&(e=d.style[mxConstants.STYLE_IMAGE]||e);var f=b.cellEditor.saveSelection();c.showImageDialog(a,e,function(a,c,d){if(b.cellEditor.isContentEditing())b.cellEditor.restoreSelection(f),
+b.insertImage(a,c,d);else{var e=b.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;b.getModel().beginUpdate();try{if(0==e.length){var e=[b.insertVertex(b.getDefaultParent(),null,"",0,0,c,d,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],h=b.getCenterInsertPoint(b.getBoundingBoxFromGeometry(e,!0));e[0].geometry.x=h.x;e[0].geometry.y=h.y;g=e;b.fireEvent(new mxEventObject("cellsInserted","cells",g))}b.setCellStyles(mxConstants.STYLE_IMAGE,
+0<a.length?a:null,e);var k=b.getCurrentCellStyle(e[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?b.setCellStyles(mxConstants.STYLE_SHAPE,"image",e):0==a.length&&b.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==b.getSelectionCount()&&null!=c&&null!=d){var l=e[0],m=b.getModel().getGeometry(l);null!=m&&(m=m.clone(),m.width=c,m.height=d,b.getModel().setGeometry(l,m))}}finally{b.getModel().endUpdate()}null!=g&&(b.setSelectionCells(g),b.scrollCellToVisible(g[0]))}}},
+b.cellEditor.isContentEditing(),!b.cellEditor.isContentEditing())}}).isEnabled=f;e=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(c,document.body.offsetWidth-280,120,220,196),this.layersWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("layers")),
+this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));e=this.addAction("formatPanel",mxUtils.bind(this,function(){c.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return 0<c.formatWidth}));
+e=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(c,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),
+null,null,Editor.ctrlKey+"+Shift+O");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,c,d,b,f){var e;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),e=mxResources.get(a)+"..."):e=mxResources.get(a);return this.put(a,new Action(e,c,d,b,f))};Actions.prototype.put=function(a,c){return this.actions[a]=c};Actions.prototype.get=function(a){return this.actions[a]};
+function Action(a,c,d,b,f){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(c);this.enabled=null!=d?d:!0;this.iconCls=b;this.shortcut=f;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};
+Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};Menus=function(a){this.editorUi=a;this.menus={};this.init();mxClient.IS_SVG||((new Image).src=this.checkmarkImage)};Menus.prototype.defaultFont="Helvetica";Menus.prototype.defaultFontSize="12";Menus.prototype.defaultMenuItems="file edit view arrange extras help".split(" ");Menus.prototype.defaultFonts="Helvetica;Verdana;Times New Roman;Garamond;Comic Sans MS;Courier New;Georgia;Lucida Console;Tahoma".split(";");
Menus.prototype.init=function(){var a=this.editorUi.editor.graph,c=mxUtils.bind(a,a.isEnabled);this.customFonts=[];this.customFontSizes=[];this.put("fontFamily",new Menu(mxUtils.bind(this,function(c,b){for(var d=mxUtils.bind(this,function(d){this.styleChange(c,d,[mxConstants.STYLE_FONTFAMILY],[d],null,b,function(){document.execCommand("fontname",!1,d)},function(){a.updateLabelElements(a.getSelectionCells(),function(b){b.removeAttribute("face");b.style.fontFamily=null;"PRE"==b.nodeName&&a.replaceElement(b,
"div")})}).firstChild.nextSibling.style.fontFamily=d}),e=0;e<this.defaultFonts.length;e++)d(this.defaultFonts[e]);c.addSeparator(b);if(0<this.customFonts.length){for(e=0;e<this.customFonts.length;e++)d(this.customFonts[e]);c.addSeparator(b);c.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFonts=[];this.editorUi.fireEvent(new mxEventObject("customFontsChanged"))}),b);c.addSeparator(b)}this.promptChange(c,mxResources.get("custom")+"...","",mxConstants.DEFAULT_FONTFAMILY,
mxConstants.STYLE_FONTFAMILY,b,!0,mxUtils.bind(this,function(a){0>mxUtils.indexOf(this.customFonts,a)&&(this.customFonts.push(a),this.editorUi.fireEvent(new mxEventObject("customFontsChanged")))}))})));this.put("formatBlock",new Menu(mxUtils.bind(this,function(c,b){function d(d,f){return c.addItem(d,null,mxUtils.bind(this,function(){null!=a.cellEditor.textarea&&(a.cellEditor.textarea.focus(),document.execCommand("formatBlock",!1,"<"+f+">"))}),b)}d(mxResources.get("normal"),"p");d("","h1").firstChild.nextSibling.innerHTML=
@@ -3498,12 +3502,12 @@ b)})));this.put("file",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItem
Menus.prototype.addMenu=function(a,c,d){var b=this.get(a);null!=b&&(c.showDisabled||b.isEnabled())&&this.get(a).execute(c,d)};
Menus.prototype.addInsertTableCellItem=function(a,c){var d=this.editorUi.editor.graph;this.addInsertTableItem(a,mxUtils.bind(this,function(a,c,e){c=mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)?d.createCrossFunctionalSwimlane(c,e):d.createTable(c,e,null,null,mxEvent.isShiftDown(a)?"Table":null);a=mxEvent.isAltDown(a)?d.getFreeInsertPoint():d.getCenterInsertPoint(d.getBoundingBoxFromGeometry([c],!0));a=d.importCells([c],a.x,a.y);null!=a&&0<a.length&&(d.scrollCellToVisible(a[0]),d.setSelectionCells(a))}),
c)};
-Menus.prototype.addInsertTableItem=function(a,c,d){function b(a,b){for(var c=["<table>"],d=0;d<a;d++){c.push("<tr>");for(var e=0;e<b;e++)c.push("<td><br></td>");c.push("</tr>")}c.push("</table>");return c.join("")}function f(a){g=e.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){k=e.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=h,f=Math.min(20,k.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),m=d.rows.length;m<f;m++)for(var v=d.insertRow(m),w=0;w<d.rows[0].cells.length;w++)v.insertCell(-1);for(m=
-0;m<d.rows.length;m++)for(v=d.rows[m],w=v.cells.length;w<c;w++)v.insertCell(-1);l.innerHTML=g.cellIndex+1+"x"+(k.sectionRowIndex+1);for(d=0;d<h.rows.length;d++)for(f=h.rows[d],c=0;c<f.cells.length;c++)m=f.cells[c],d==k.sectionRowIndex&&c==g.cellIndex&&(b="blue"==m.style.backgroundColor),m.style.backgroundColor=d<=k.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}c=null!=c?c:mxUtils.bind(this,function(a,c,d){var e=this.editorUi.editor.graph;a=e.getParentByName(mxEvent.getSource(a),
+Menus.prototype.addInsertTableItem=function(a,c,d){function b(a,b){for(var c=["<table>"],d=0;d<a;d++){c.push("<tr>");for(var e=0;e<b;e++)c.push("<td><br></td>");c.push("</tr>")}c.push("</table>");return c.join("")}function f(a){g=e.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){k=e.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=h,f=Math.min(20,k.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),m=d.rows.length;m<f;m++)for(var v=d.insertRow(m),x=0;x<d.rows[0].cells.length;x++)v.insertCell(-1);for(m=
+0;m<d.rows.length;m++)for(v=d.rows[m],x=v.cells.length;x<c;x++)v.insertCell(-1);l.innerHTML=g.cellIndex+1+"x"+(k.sectionRowIndex+1);for(d=0;d<h.rows.length;d++)for(f=h.rows[d],c=0;c<f.cells.length;c++)m=f.cells[c],d==k.sectionRowIndex&&c==g.cellIndex&&(b="blue"==m.style.backgroundColor),m.style.backgroundColor=d<=k.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}c=null!=c?c:mxUtils.bind(this,function(a,c,d){var e=this.editorUi.editor.graph;a=e.getParentByName(mxEvent.getSource(a),
"TD");if(null!=a&&null!=e.cellEditor.textarea){e.getParentByName(a,"TR");var f=e.cellEditor.textarea.getElementsByTagName("table");a=[];for(var g=0;g<f.length;g++)a.push(f[g]);e.container.focus();e.pasteHtmlAtCaret(b(c,d));c=e.cellEditor.textarea.getElementsByTagName("table");if(c.length==a.length+1)for(g=c.length-1;0<=g;g--)if(0==g||c[g]!=a[g-1]){e.selectNode(c[g].rows[0].cells[0]);break}}});var e=this.editorUi.editor.graph,k=null,g=null;a=a.addItem("",null,null,d,null,null,null,!0);a.firstChild.innerHTML=
"";var h=function(a,b){var c=document.createElement("table");c.setAttribute("border","1");c.style.borderCollapse="collapse";c.style.borderStyle="solid";c.setAttribute("cellPadding","8");for(var d=0;d<a;d++)for(var e=c.insertRow(d),f=0;f<b;f++)e.insertCell(-1);return c}(5,5);a.firstChild.appendChild(h);var l=document.createElement("div");l.style.padding="4px";l.style.fontSize=Menus.prototype.defaultFontSize+"px";l.innerHTML="1x1";a.firstChild.appendChild(l);mxEvent.addGestureListeners(h,null,null,
mxUtils.bind(this,function(a){var b=f(a);null!=g&&null!=k&&b&&(c(a,k.sectionRowIndex+1,g.cellIndex+1),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0))}));mxEvent.addListener(h,"mouseover",f)};
-Menus.prototype.edgeStyleChange=function(a,c,d,b,f,e,k){return this.showIconOnly(a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;a.stopEditing(!1);a.getModel().beginUpdate();try{for(var c=a.getSelectionCells(),e=[],f=0;f<c.length;f++){var p=c[f];if(a.getModel().isEdge(p)){if(k){var n=a.getCellGeometry(p);null!=n&&(n=n.clone(),n.points=null,a.getModel().setGeometry(p,n))}for(var r=0;r<d.length;r++)a.setCellStyles(d[r],b[r],[p]);e.push(p)}}this.editorUi.fireEvent(new mxEventObject("styleChanged",
+Menus.prototype.edgeStyleChange=function(a,c,d,b,f,e,k){return this.showIconOnly(a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;a.stopEditing(!1);a.getModel().beginUpdate();try{for(var c=a.getSelectionCells(),e=[],f=0;f<c.length;f++){var p=c[f];if(a.getModel().isEdge(p)){if(k){var n=a.getCellGeometry(p);null!=n&&(n=n.clone(),n.points=null,a.getModel().setGeometry(p,n))}for(var q=0;q<d.length;q++)a.setCellStyles(d[q],b[q],[p]);e.push(p)}}this.editorUi.fireEvent(new mxEventObject("styleChanged",
"keys",d,"values",b,"cells",e))}finally{a.getModel().endUpdate()}}),e,f))};Menus.prototype.showIconOnly=function(a){var c=a.getElementsByTagName("td");for(i=0;i<c.length;i++)"mxPopupMenuItem"==c[i].getAttribute("class")&&(c[i].style.display="none");return a};
Menus.prototype.styleChange=function(a,c,d,b,f,e,k,g,h){var l=this.createStyleChangeFunction(d,b);a=a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;null!=k&&a.cellEditor.isContentEditing()?k():l(g)}),e,f);h&&this.showIconOnly(a);return a};
Menus.prototype.createStyleChangeFunction=function(a,c){return mxUtils.bind(this,function(d){var b=this.editorUi.editor.graph;b.stopEditing(!1);b.getModel().beginUpdate();try{for(var f=b.getSelectionCells(),e=!1,k=0;k<a.length;k++)if(b.setCellStyles(a[k],c[k],f),a[k]==mxConstants.STYLE_ALIGN&&b.updateLabelElements(f,function(a){a.removeAttribute("align");a.style.textAlign=null}),a[k]==mxConstants.STYLE_FONTFAMILY||"fontSource"==a[k])e=!0;if(e)for(e=0;e<f.length;e++)0==b.model.getChildCount(f[e])&&
@@ -3578,54 +3582,55 @@ Toolbar.prototype.addMenuHandler=function(a,c,d,b){if(null!=d){var f=this.editor
e.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(e,arguments);this.editorUi.resetCurrentMenu();e.destroy()});e.addListener(mxEvent.EVENT_HIDE,mxUtils.bind(this,function(){this.currentElt=null}))}k=!0;mxEvent.consume(g)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){k=this.currentElt!=a;b.preventDefault()}))}};
Toolbar.prototype.destroy=function(){null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null)};var OpenDialog=function(){var a=document.createElement("iframe");a.style.backgroundColor="transparent";a.allowTransparency="true";a.style.borderStyle="none";a.style.borderWidth="0px";a.style.overflow="hidden";a.frameBorder="0";a.setAttribute("width",(Editor.useLocalStorage?640:320)+0+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+0+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorDialog=function(a,c,d,b){function f(){var b=g.value;/(^#?[a-zA-Z0-9]*$)/.test(b)?("none"!=
b&&"#"!=b.charAt(0)&&(b="#"+b),ColorDialog.addRecentColor("none"!=b?b.substring(1):b,12),h(b),a.hideDialog()):a.handleError({message:mxResources.get("invalidInput")})}function e(){var a=k(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);a.style.marginBottom="8px";return a}function k(a,b,c,d){b=null!=b?b:12;var h=document.createElement("table");h.style.borderCollapse="collapse";h.setAttribute("cellspacing","0");h.style.marginBottom="20px";h.style.cellSpacing="0px";
-var k=document.createElement("tbody");h.appendChild(k);for(var n=a.length/b,p=0;p<n;p++){for(var r=document.createElement("tr"),t=0;t<b;t++)(function(a){var b=document.createElement("td");b.style.border="1px solid black";b.style.padding="0px";b.style.width="16px";b.style.height="16px";null==a&&(a=c);"none"==a?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor="#"+a;r.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==
-a?(l.fromString("ffffff"),g.value="none"):l.fromString(a)}),mxEvent.addListener(b,"dblclick",f))})(a[p*b+t]);k.appendChild(r)}d&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",r.appendChild(a),mxEvent.addListener(a,
+var k=document.createElement("tbody");h.appendChild(k);for(var n=a.length/b,q=0;q<n;q++){for(var p=document.createElement("tr"),t=0;t<b;t++)(function(a){var b=document.createElement("td");b.style.border="1px solid black";b.style.padding="0px";b.style.width="16px";b.style.height="16px";null==a&&(a=c);"none"==a?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor="#"+a;p.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==
+a?(l.fromString("ffffff"),g.value="none"):l.fromString(a)}),mxEvent.addListener(b,"dblclick",f))})(a[q*b+t]);k.appendChild(p)}d&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",p.appendChild(a),mxEvent.addListener(a,
"click",function(){ColorDialog.resetRecentColors();h.parentNode.replaceChild(e(),h)}));m.appendChild(h);return h}this.editorUi=a;var g=document.createElement("input");g.style.marginBottom="10px";g.style.width="216px";mxClient.IS_IE&&(g.style.marginTop="10px",document.body.appendChild(g));var h=null!=d?d:this.createApplyFunction();this.init=function(){mxClient.IS_TOUCH||g.focus()};var l=new mxJSColor.color(g);l.pickerOnfocus=!1;l.showPicker();d=document.createElement("div");mxJSColor.picker.box.style.position=
"relative";mxJSColor.picker.box.style.width="230px";mxJSColor.picker.box.style.height="100px";mxJSColor.picker.box.style.paddingBottom="10px";d.appendChild(mxJSColor.picker.box);var m=document.createElement("center");d.appendChild(g);mxUtils.br(d);e();var p=k(this.presetColors);p.style.marginBottom="8px";p=k(this.defaultColors);p.style.marginBottom="16px";d.appendChild(m);p=document.createElement("div");p.style.textAlign="right";p.style.whiteSpace="nowrap";var n=mxUtils.button(mxResources.get("cancel"),
-function(){a.hideDialog();null!=b&&b()});n.className="geBtn";a.editor.cancelFirst&&p.appendChild(n);var r=mxUtils.button(mxResources.get("apply"),f);r.className="geBtn gePrimaryBtn";p.appendChild(r);a.editor.cancelFirst||p.appendChild(n);null!=c&&("none"==c?(l.fromString("ffffff"),g.value="none"):l.fromString(c));d.appendChild(p);this.picker=l;this.colorInput=g;mxEvent.addListener(d,"keydown",function(c){27==c.keyCode&&(a.hideDialog(),null!=b&&b(),mxEvent.consume(c))});this.container=d};
+function(){a.hideDialog();null!=b&&b()});n.className="geBtn";a.editor.cancelFirst&&p.appendChild(n);var q=mxUtils.button(mxResources.get("apply"),f);q.className="geBtn gePrimaryBtn";p.appendChild(q);a.editor.cancelFirst||p.appendChild(n);null!=c&&("none"==c?(l.fromString("ffffff"),g.value="none"):l.fromString(c));d.appendChild(p);this.picker=l;this.colorInput=g;mxEvent.addListener(d,"keydown",function(c){27==c.keyCode&&(a.hideDialog(),null!=b&&b(),mxEvent.consume(c))});this.container=d};
ColorDialog.prototype.presetColors="E6D0DE CDA2BE B5739D E1D5E7 C3ABD0 A680B8 D4E1F5 A9C4EB 7EA6E0 D5E8D4 9AC7BF 67AB9F D5E8D4 B9E0A5 97D077 FFF2CC FFE599 FFD966 FFF4C3 FFCE9F FFB570 F8CECC F19C99 EA6B66".split(" ");ColorDialog.prototype.defaultColors="none FFFFFF E6E6E6 CCCCCC B3B3B3 999999 808080 666666 4D4D4D 333333 1A1A1A 000000 FFCCCC FFE6CC FFFFCC E6FFCC CCFFCC CCFFE6 CCFFFF CCE5FF CCCCFF E5CCFF FFCCFF FFCCE6 FF9999 FFCC99 FFFF99 CCFF99 99FF99 99FFCC 99FFFF 99CCFF 9999FF CC99FF FF99FF FF99CC FF6666 FFB366 FFFF66 B3FF66 66FF66 66FFB3 66FFFF 66B2FF 6666FF B266FF FF66FF FF66B3 FF3333 FF9933 FFFF33 99FF33 33FF33 33FF99 33FFFF 3399FF 3333FF 9933FF FF33FF FF3399 FF0000 FF8000 FFFF00 80FF00 00FF00 00FF80 00FFFF 007FFF 0000FF 7F00FF FF00FF FF0080 CC0000 CC6600 CCCC00 66CC00 00CC00 00CC66 00CCCC 0066CC 0000CC 6600CC CC00CC CC0066 990000 994C00 999900 4D9900 009900 00994D 009999 004C99 000099 4C0099 990099 99004D 660000 663300 666600 336600 006600 006633 006666 003366 000066 330066 660066 660033 330000 331A00 333300 1A3300 003300 00331A 003333 001933 000033 190033 330033 33001A".split(" ");
ColorDialog.prototype.createApplyFunction=function(){return mxUtils.bind(this,function(a){var c=this.editorUi.editor.graph;c.getModel().beginUpdate();try{c.setCellStyles(this.currentColorKey,a),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[this.currentColorKey],"values",[a],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}})};ColorDialog.recentColors=[];
ColorDialog.addRecentColor=function(a,c){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>=c&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};
var AboutDialog=function(a){var c=document.createElement("div");c.setAttribute("align","center");var d=document.createElement("h3");mxUtils.write(d,mxResources.get("about")+" GraphEditor");c.appendChild(d);d=document.createElement("img");d.style.border="0px";d.setAttribute("width","176");d.setAttribute("width","151");d.setAttribute("src",IMAGE_PATH+"/logo.png");c.appendChild(d);mxUtils.br(c);mxUtils.write(c,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(c);d=document.createElement("a");d.setAttribute("href",
-"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},TextareaDialog=function(a,c,d,b,f,e,k,g,h,l,m,p,n,r){k=null!=k?k:300;g=null!=g?g:120;l=null!=l?l:!1;var t,u,v=document.createElement("table"),w=document.createElement("tbody");t=document.createElement("tr");u=document.createElement("td");
-u.style.fontSize="10pt";u.style.width="100px";mxUtils.write(u,c);t.appendChild(u);w.appendChild(t);t=document.createElement("tr");u=document.createElement("td");var x=document.createElement("textarea");m&&x.setAttribute("wrap","off");x.setAttribute("spellcheck","false");x.setAttribute("autocorrect","off");x.setAttribute("autocomplete","off");x.setAttribute("autocapitalize","off");mxUtils.write(x,d||"");x.style.resize="none";x.style.width=k+"px";x.style.height=g+"px";this.textarea=x;this.init=function(){x.focus();
-x.scrollTop=0};u.appendChild(x);t.appendChild(u);w.appendChild(t);t=document.createElement("tr");u=document.createElement("td");u.style.paddingTop="14px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");null!=n&&(c=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(n)}),c.className="geBtn",u.appendChild(c));if(null!=r)for(c=0;c<r.length;c++)(function(a,b){var c=mxUtils.button(a,function(a){b(a,x)});c.className="geBtn";u.appendChild(c)})(r[c][0],r[c][1]);e=mxUtils.button(e||
-mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});e.className="geBtn";a.editor.cancelFirst&&u.appendChild(e);null!=h&&h(u,x);null!=b&&(h=mxUtils.button(p||mxResources.get("apply"),function(){l||a.hideDialog();b(x.value)}),h.className="geBtn gePrimaryBtn",u.appendChild(h));a.editor.cancelFirst||u.appendChild(e);t.appendChild(u);w.appendChild(t);v.appendChild(w);this.container=v},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var d=document.createElement("textarea");
+"http://www.jgraph.com/");d.setAttribute("target","_blank");mxUtils.write(d,"www.jgraph.com");c.appendChild(d);mxUtils.br(c);mxUtils.br(c);d=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});d.className="geBtn gePrimaryBtn";c.appendChild(d);this.container=c},TextareaDialog=function(a,c,d,b,f,e,k,g,h,l,m,p,n,q){k=null!=k?k:300;g=null!=g?g:120;l=null!=l?l:!1;var t,u,v=document.createElement("table"),x=document.createElement("tbody");t=document.createElement("tr");u=document.createElement("td");
+u.style.fontSize="10pt";u.style.width="100px";mxUtils.write(u,c);t.appendChild(u);x.appendChild(t);t=document.createElement("tr");u=document.createElement("td");var y=document.createElement("textarea");m&&y.setAttribute("wrap","off");y.setAttribute("spellcheck","false");y.setAttribute("autocorrect","off");y.setAttribute("autocomplete","off");y.setAttribute("autocapitalize","off");mxUtils.write(y,d||"");y.style.resize="none";y.style.width=k+"px";y.style.height=g+"px";this.textarea=y;this.init=function(){y.focus();
+y.scrollTop=0};u.appendChild(y);t.appendChild(u);x.appendChild(t);t=document.createElement("tr");u=document.createElement("td");u.style.paddingTop="14px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");null!=n&&(c=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(n)}),c.className="geBtn",u.appendChild(c));if(null!=q)for(c=0;c<q.length;c++)(function(a,b){var c=mxUtils.button(a,function(a){b(a,y)});c.className="geBtn";u.appendChild(c)})(q[c][0],q[c][1]);e=mxUtils.button(e||
+mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});e.className="geBtn";a.editor.cancelFirst&&u.appendChild(e);null!=h&&h(u,y);null!=b&&(h=mxUtils.button(p||mxResources.get("apply"),function(){l||a.hideDialog();b(y.value)}),h.className="geBtn gePrimaryBtn",u.appendChild(h));a.editor.cancelFirst||u.appendChild(e);t.appendChild(u);x.appendChild(t);v.appendChild(x);this.container=v},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var d=document.createElement("textarea");
d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},
!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className="geBtn";if(a.editor.graph.isEnabled()){var e=
document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),f.appendChild(e));c.appendChild(f);
e=mxUtils.button(mxResources.get("ok"),function(){var b=Graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}else if("import"==f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,
l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(b);this.container=c};EditDiagramDialog.showNewWindowOption=!0;
-var ExportDialog=function(a){function c(){var a=m.value,b=a.lastIndexOf(".");m.value=0<b?a.substring(0,b+1)+p.value:a+"."+p.value;"xml"===p.value?(n.setAttribute("disabled","true"),r.setAttribute("disabled","true"),t.setAttribute("disabled","true"),D.setAttribute("disabled","true")):(n.removeAttribute("disabled"),r.removeAttribute("disabled"),t.removeAttribute("disabled"),D.removeAttribute("disabled"));"png"===p.value||"svg"===p.value||"pdf"===p.value?x.removeAttribute("disabled"):x.setAttribute("disabled",
-"disabled");"png"===p.value||"jpg"===p.value||"pdf"===p.value?F.removeAttribute("disabled"):F.setAttribute("disabled","disabled");"png"===p.value?(u.removeAttribute("disabled"),v.removeAttribute("disabled")):(u.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"))}function d(){r.style.backgroundColor=r.value*t.value>MAX_AREA||0>=r.value?"red":"";t.style.backgroundColor=r.value*t.value>MAX_AREA||0>=t.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,k=Math.ceil(f.width/
+var ExportDialog=function(a){function c(){var a=m.value,b=a.lastIndexOf(".");m.value=0<b?a.substring(0,b+1)+p.value:a+"."+p.value;"xml"===p.value?(n.setAttribute("disabled","true"),q.setAttribute("disabled","true"),t.setAttribute("disabled","true"),E.setAttribute("disabled","true")):(n.removeAttribute("disabled"),q.removeAttribute("disabled"),t.removeAttribute("disabled"),E.removeAttribute("disabled"));"png"===p.value||"svg"===p.value||"pdf"===p.value?y.removeAttribute("disabled"):y.setAttribute("disabled",
+"disabled");"png"===p.value||"jpg"===p.value||"pdf"===p.value?G.removeAttribute("disabled"):G.setAttribute("disabled","disabled");"png"===p.value?(u.removeAttribute("disabled"),v.removeAttribute("disabled")):(u.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"))}function d(){q.style.backgroundColor=q.value*t.value>MAX_AREA||0>=q.value?"red":"";t.style.backgroundColor=q.value*t.value>MAX_AREA||0>=t.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,k=Math.ceil(f.width/
e),g=Math.ceil(f.height/e),h,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";h.style.width="100px";mxUtils.write(h,mxResources.get("filename")+":");f.appendChild(h);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";h=document.createElement("td");h.appendChild(m);f.appendChild(h);
l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("format")+":");f.appendChild(h);var p=document.createElement("select");p.style.width="180px";h=document.createElement("option");h.setAttribute("value","png");mxUtils.write(h,mxResources.get("formatPng"));p.appendChild(h);h=document.createElement("option");ExportDialog.showGifOption&&(h.setAttribute("value","gif"),mxUtils.write(h,mxResources.get("formatGif")),p.appendChild(h));
h=document.createElement("option");h.setAttribute("value","jpg");mxUtils.write(h,mxResources.get("formatJpg"));p.appendChild(h);h=document.createElement("option");h.setAttribute("value","pdf");mxUtils.write(h,mxResources.get("formatPdf"));p.appendChild(h);h=document.createElement("option");h.setAttribute("value","svg");mxUtils.write(h,mxResources.get("formatSvg"));p.appendChild(h);ExportDialog.showXmlOption&&(h=document.createElement("option"),h.setAttribute("value","xml"),mxUtils.write(h,mxResources.get("formatXml")),
p.appendChild(h));h=document.createElement("td");h.appendChild(p);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("zoom")+" (%):");f.appendChild(h);var n=document.createElement("input");n.setAttribute("type","number");n.setAttribute("value","100");n.style.width="180px";h=document.createElement("td");h.appendChild(n);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");
-h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("width")+":");f.appendChild(h);var r=document.createElement("input");r.setAttribute("value",k);r.style.width="180px";h=document.createElement("td");h.appendChild(r);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("height")+":");f.appendChild(h);var t=document.createElement("input");t.setAttribute("value",g);t.style.width="180px";h=document.createElement("td");
+h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("width")+":");f.appendChild(h);var q=document.createElement("input");q.setAttribute("value",k);q.style.width="180px";h=document.createElement("td");h.appendChild(q);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("height")+":");f.appendChild(h);var t=document.createElement("input");t.setAttribute("value",g);t.style.width="180px";h=document.createElement("td");
h.appendChild(t);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("dpi")+":");f.appendChild(h);var u=document.createElement("select");u.style.width="180px";h=document.createElement("option");h.setAttribute("value","100");mxUtils.write(h,"100dpi");u.appendChild(h);h=document.createElement("option");h.setAttribute("value","200");mxUtils.write(h,"200dpi");u.appendChild(h);h=document.createElement("option");
h.setAttribute("value","300");mxUtils.write(h,"300dpi");u.appendChild(h);h=document.createElement("option");h.setAttribute("value","400");mxUtils.write(h,"400dpi");u.appendChild(h);h=document.createElement("option");h.setAttribute("value","custom");mxUtils.write(h,mxResources.get("custom"));u.appendChild(h);var v=document.createElement("input");v.style.width="180px";v.style.display="none";v.setAttribute("value","100");v.setAttribute("type","number");v.setAttribute("min","50");v.setAttribute("step",
-"50");var w=!1;mxEvent.addListener(u,"change",function(){"custom"==this.value?(this.style.display="none",v.style.display="",v.focus()):(v.value=this.value,w||(n.value=this.value))});mxEvent.addListener(v,"change",function(){var a=parseInt(v.value);isNaN(a)||0>=a?v.style.backgroundColor="red":(v.style.backgroundColor="",w||(n.value=a))});h=document.createElement("td");h.appendChild(u);h.appendChild(v);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize=
-"10pt";mxUtils.write(h,mxResources.get("background")+":");f.appendChild(h);var x=document.createElement("input");x.setAttribute("type","checkbox");x.checked=null==b.background||b.background==mxConstants.NONE;h=document.createElement("td");h.appendChild(x);mxUtils.write(h,mxResources.get("transparent"));f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("grid")+":");f.appendChild(h);var F=document.createElement("input");
-F.setAttribute("type","checkbox");F.checked=!1;h=document.createElement("td");h.appendChild(F);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("borderWidth")+":");f.appendChild(h);var D=document.createElement("input");D.setAttribute("type","number");D.setAttribute("value",ExportDialog.lastBorderValue);D.style.width="180px";h=document.createElement("td");h.appendChild(D);f.appendChild(h);l.appendChild(f);
-e.appendChild(l);mxEvent.addListener(p,"change",c);c();mxEvent.addListener(n,"change",function(){w=!0;var a=Math.max(0,parseFloat(n.value)||100)/100;n.value=parseFloat((100*a).toFixed(2));0<k?(r.value=Math.floor(k*a),t.value=Math.floor(g*a)):(n.value="100",r.value=k,t.value=g);d()});mxEvent.addListener(r,"change",function(){var a=parseInt(r.value)/k;0<a?(n.value=parseFloat((100*a).toFixed(2)),t.value=Math.floor(g*a)):(n.value="100",r.value=k,t.value=g);d()});mxEvent.addListener(t,"change",function(){var a=
-parseInt(t.value)/g;0<a?(n.value=parseFloat((100*a).toFixed(2)),r.value=Math.floor(k*a)):(n.value="100",r.value=k,t.value=g);d()});f=document.createElement("tr");h=document.createElement("td");h.setAttribute("align","right");h.style.paddingTop="22px";h.colSpan=2;var E=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(n.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=m.value,d=p.value,e=Math.max(0,parseFloat(n.value)||100)/100,f=Math.max(0,parseInt(D.value)),
-g=b.background,h=Math.max(1,parseInt(v.value));if(("svg"==d||"png"==d||"pdf"==d)&&x.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f,h,F.checked)}}));E.className="geBtn gePrimaryBtn";var z=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});z.className="geBtn";a.editor.cancelFirst?(h.appendChild(z),h.appendChild(E)):(h.appendChild(E),h.appendChild(z));f.appendChild(h);l.appendChild(f);e.appendChild(l);
+"50");var x=!1;mxEvent.addListener(u,"change",function(){"custom"==this.value?(this.style.display="none",v.style.display="",v.focus()):(v.value=this.value,x||(n.value=this.value))});mxEvent.addListener(v,"change",function(){var a=parseInt(v.value);isNaN(a)||0>=a?v.style.backgroundColor="red":(v.style.backgroundColor="",x||(n.value=a))});h=document.createElement("td");h.appendChild(u);h.appendChild(v);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize=
+"10pt";mxUtils.write(h,mxResources.get("background")+":");f.appendChild(h);var y=document.createElement("input");y.setAttribute("type","checkbox");y.checked=null==b.background||b.background==mxConstants.NONE;h=document.createElement("td");h.appendChild(y);mxUtils.write(h,mxResources.get("transparent"));f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("grid")+":");f.appendChild(h);var G=document.createElement("input");
+G.setAttribute("type","checkbox");G.checked=!1;h=document.createElement("td");h.appendChild(G);f.appendChild(h);l.appendChild(f);f=document.createElement("tr");h=document.createElement("td");h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("borderWidth")+":");f.appendChild(h);var E=document.createElement("input");E.setAttribute("type","number");E.setAttribute("value",ExportDialog.lastBorderValue);E.style.width="180px";h=document.createElement("td");h.appendChild(E);f.appendChild(h);l.appendChild(f);
+e.appendChild(l);mxEvent.addListener(p,"change",c);c();mxEvent.addListener(n,"change",function(){x=!0;var a=Math.max(0,parseFloat(n.value)||100)/100;n.value=parseFloat((100*a).toFixed(2));0<k?(q.value=Math.floor(k*a),t.value=Math.floor(g*a)):(n.value="100",q.value=k,t.value=g);d()});mxEvent.addListener(q,"change",function(){var a=parseInt(q.value)/k;0<a?(n.value=parseFloat((100*a).toFixed(2)),t.value=Math.floor(g*a)):(n.value="100",q.value=k,t.value=g);d()});mxEvent.addListener(t,"change",function(){var a=
+parseInt(t.value)/g;0<a?(n.value=parseFloat((100*a).toFixed(2)),q.value=Math.floor(k*a)):(n.value="100",q.value=k,t.value=g);d()});f=document.createElement("tr");h=document.createElement("td");h.setAttribute("align","right");h.style.paddingTop="22px";h.colSpan=2;var F=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(n.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=m.value,d=p.value,e=Math.max(0,parseFloat(n.value)||100)/100,f=Math.max(0,parseInt(E.value)),
+g=b.background,h=Math.max(1,parseInt(v.value));if(("svg"==d||"png"==d||"pdf"==d)&&y.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,c,d,g,e,f,h,G.checked)}}));F.className="geBtn gePrimaryBtn";var A=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});A.className="geBtn";a.editor.cancelFirst?(h.appendChild(A),h.appendChild(F)):(h.appendChild(F),h.appendChild(A));f.appendChild(h);l.appendChild(f);e.appendChild(l);
this.container=e};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
ExportDialog.exportFile=function(a,c,d,b,f,e,k,g){g=a.editor.graph;if("xml"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),c,d);else if("svg"==d)ExportDialog.saveLocalFile(a,mxUtils.getXml(g.getSvg(b,f,e)),c,d);else{var h=g.getGraphBounds(),l=mxUtils.createXmlDocument(),m=l.createElement("output");l.appendChild(m);l=new mxXmlCanvas2D(m);l.translate(Math.floor((e/f-h.x)/g.view.scale),Math.floor((e/f-h.y)/g.view.scale));l.scale(f/g.view.scale);(new mxImageExport).drawState(g.getView().getState(g.model.root),
l);m="xml="+encodeURIComponent(mxUtils.getXml(m));l=Math.ceil(h.width*f/g.view.scale+2*e);f=Math.ceil(h.height*f/g.view.scale+2*e);m.length<=MAX_REQUEST_SIZE&&l*f<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+d+"&filename="+encodeURIComponent(c)+"&bg="+(null!=b?b:"none")+"&w="+l+"&h="+f+"&"+m+"&dpi="+k)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
ExportDialog.saveLocalFile=function(a,c,d,b){c.length<MAX_REQUEST_SIZE?(a.hideDialog(),(new mxXmlRequest(SAVE_URL,"xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(d)+"&format="+b)).simulate(document,"_blank")):(mxUtils.alert(mxResources.get("drawingTooLarge")),mxUtils.popup(xml))};
-var EditDataDialog=function(a,c){function d(){0<x.value.length?F.removeAttribute("disabled"):F.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var k=mxUtils.createXmlDocument().createElement("object");k.setAttribute("label",e||"");e=k}var g={};try{var h=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(c),"metaData",null);null!=h&&(g=JSON.parse(h))}catch(E){}var l=new mxForm("properties");l.table.style.width=
-"100%";for(var m=e.attributes,p=[],n=[],r=0,t=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,c):null,u=function(a,b){var c=document.createElement("div");c.style.position="relative";c.style.paddingRight="20px";c.style.boxSizing="border-box";c.style.width="100%";var d=document.createElement("a"),e=mxUtils.createImage(Dialog.prototype.closeImage);e.style.height="9px";e.style.fontSize="9px";e.style.marginBottom=mxClient.IS_IE11?"-1px":"5px";d.className="geButton";d.setAttribute("title",
-mxResources.get("delete"));d.style.position="absolute";d.style.top="4px";d.style.right="0px";d.style.margin="0px";d.style.width="9px";d.style.height="9px";d.style.cursor="pointer";d.appendChild(e);e=function(a){return function(){for(var b=0,c=0;c<p.length;c++){if(p[c]==a){n[c]=null;l.table.deleteRow(b+(null!=t?1:0));break}null!=n[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},k=function(a,b,c){p[a]=b;n[a]=l.addTextarea(p[r]+":",c,
-2);n[a].style.width="100%";0<c.indexOf("\n")&&n[a].setAttribute("rows","2");u(n[a],b);null!=g[b]&&0==g[b].editable&&n[a].setAttribute("disabled","disabled")},h=[],v=f.getModel().getParent(c)==f.getModel().getRoot(),w=0;w<m.length;w++)!v&&"label"==m[w].nodeName||"placeholders"==m[w].nodeName||h.push({name:m[w].nodeName,value:m[w].nodeValue});h.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});null!=t&&(m=document.createElement("div"),m.style.width="100%",m.style.fontSize="11px",m.style.textAlign=
-"center",mxUtils.write(m,t),l.addField(mxResources.get("id")+":",m));for(w=0;w<h.length;w++)k(r,h[w].name,h[w].value),r++;h=document.createElement("div");h.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";h.appendChild(l.table);k=document.createElement("div");k.style.boxSizing="border-box";k.style.paddingRight="160px";k.style.whiteSpace="nowrap";k.style.marginTop="6px";k.style.width="100%";var x=document.createElement("input");x.setAttribute("placeholder",
-mxResources.get("enterPropertyName"));x.setAttribute("type","text");x.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");x.style.boxSizing="border-box";x.style.marginLeft="2px";x.style.width="100%";k.appendChild(x);h.appendChild(k);b.appendChild(h);var F=mxUtils.button(mxResources.get("addProperty"),function(){var a=x.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(p,a);if(0<=b&&null!=n[b])n[b].focus();else{e.cloneNode(!1).setAttribute(a,
-"");0<=b&&(p.splice(b,1),n.splice(b,1));p.push(a);var c=l.addTextarea(a+":","",2);c.style.width="100%";n.push(c);u(c,a);c.focus()}F.setAttribute("disabled","disabled");x.value=""}catch(y){mxUtils.alert(y)}else mxUtils.alert(mxResources.get("invalidName"))});this.init=function(){0<n.length?n[0].focus():x.focus()};F.setAttribute("title",mxResources.get("addProperty"));F.setAttribute("disabled","disabled");F.style.textOverflow="ellipsis";F.style.position="absolute";F.style.overflow="hidden";F.style.width=
-"144px";F.style.right="0px";F.className="geBtn";k.appendChild(F);h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});h.className="geBtn";k=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var b=!1,d=0;d<p.length;d++)null==n[d]?e.removeAttribute(p[d]):(e.setAttribute(p[d],n[d].value),b=b||"placeholder"==p[d]&&"1"==e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(G){mxUtils.alert(G)}});
-k.className="geBtn gePrimaryBtn";mxEvent.addListener(x,"keyup",d);mxEvent.addListener(x,"change",d);m=document.createElement("div");m.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){v=document.createElement("span");v.style.marginRight="10px";w=document.createElement("input");w.setAttribute("type","checkbox");w.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&
-(w.setAttribute("checked","checked"),w.defaultChecked=!0);mxEvent.addListener(w,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});v.appendChild(w);mxUtils.write(v,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){w=document.createElement("a");w.setAttribute("href",EditDataDialog.placeholderHelpLink);w.setAttribute("title",mxResources.get("help"));w.setAttribute("target","_blank");w.style.marginLeft=
-"8px";w.style.cursor="help";var D=document.createElement("img");mxUtils.setOpacity(D,50);D.style.height="16px";D.style.width="16px";D.setAttribute("border","0");D.setAttribute("valign","middle");D.style.marginTop=mxClient.IS_IE11?"0px":"-4px";D.setAttribute("src",Editor.helpImage);w.appendChild(D);v.appendChild(w)}m.appendChild(v)}a.editor.cancelFirst?(m.appendChild(h),m.appendChild(k)):(m.appendChild(k),m.appendChild(h));b.appendChild(m);this.container=b};
+var EditDataDialog=function(a,c){function d(){0<G.value.length?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}var b=document.createElement("div"),f=a.editor.graph,e=f.getModel().getValue(c);if(!mxUtils.isNode(e)){var k=mxUtils.createXmlDocument().createElement("object");k.setAttribute("label",e||"");e=k}var g={};try{var h=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(c),"metaData",null);null!=h&&(g=JSON.parse(h))}catch(A){}var l=new mxForm("properties");l.table.style.width=
+"100%";for(var m=e.attributes,p=[],n=[],q=0,t=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,c):null,u=function(a,b){var c=document.createElement("div");c.style.position="relative";c.style.paddingRight="20px";c.style.boxSizing="border-box";c.style.width="100%";var d=document.createElement("a"),e=mxUtils.createImage(Dialog.prototype.closeImage);e.style.height="9px";e.style.fontSize="9px";e.style.marginBottom=mxClient.IS_IE11?"-1px":"5px";d.className="geButton";d.setAttribute("title",
+mxResources.get("delete"));d.style.position="absolute";d.style.top="4px";d.style.right="0px";d.style.margin="0px";d.style.width="9px";d.style.height="9px";d.style.cursor="pointer";d.appendChild(e);e=function(a){return function(){for(var b=0,c=0;c<p.length;c++){if(p[c]==a){n[c]=null;l.table.deleteRow(b+(null!=t?1:0));break}null!=n[c]&&b++}}}(b);mxEvent.addListener(d,"click",e);e=a.parentNode;c.appendChild(a);c.appendChild(d);e.appendChild(c)},k=function(a,b,c){p[a]=b;n[a]=l.addTextarea(p[q]+":",c,
+2);n[a].style.width="100%";0<c.indexOf("\n")&&n[a].setAttribute("rows","2");u(n[a],b);null!=g[b]&&0==g[b].editable&&n[a].setAttribute("disabled","disabled")},h=[],v=f.getModel().getParent(c)==f.getModel().getRoot(),x=0;x<m.length;x++)!v&&"label"==m[x].nodeName||"placeholders"==m[x].nodeName||h.push({name:m[x].nodeName,value:m[x].nodeValue});h.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});if(null!=t){m=document.createElement("div");m.style.width="100%";m.style.fontSize="11px";m.style.textAlign=
+"center";mxUtils.write(m,t);var y=l.addField(mxResources.get("id")+":",m);mxEvent.addListener(m,"dblclick",function(b){if(mxEvent.isControlDown(b)||mxEvent.isMetaDown(b))b=new FilenameDialog(a,t,mxResources.get("apply"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&b!=t&&(null==f.getModel().getCell(b)?(f.getModel().cellRemoved(c),c.setId(b),t=b,y.innerHTML=mxUtils.htmlEntities(b),f.getModel().cellAdded(c)):a.handleError({message:mxResources.get("alreadyExst",[b])}))}),mxResources.get("id")),
+a.showDialog(b.container,300,80,!0,!0),b.init()})}for(x=0;x<h.length;x++)k(q,h[x].name,h[x].value),q++;h=document.createElement("div");h.style.cssText="position:absolute;left:30px;right:30px;overflow-y:auto;top:30px;bottom:80px;";h.appendChild(l.table);k=document.createElement("div");k.style.boxSizing="border-box";k.style.paddingRight="160px";k.style.whiteSpace="nowrap";k.style.marginTop="6px";k.style.width="100%";var G=document.createElement("input");G.setAttribute("placeholder",mxResources.get("enterPropertyName"));
+G.setAttribute("type","text");G.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");G.style.boxSizing="border-box";G.style.marginLeft="2px";G.style.width="100%";k.appendChild(G);h.appendChild(k);b.appendChild(h);var E=mxUtils.button(mxResources.get("addProperty"),function(){var a=G.value;if(0<a.length&&"label"!=a&&"placeholders"!=a&&0>a.indexOf(":"))try{var b=mxUtils.indexOf(p,a);if(0<=b&&null!=n[b])n[b].focus();else{e.cloneNode(!1).setAttribute(a,"");0<=b&&(p.splice(b,1),n.splice(b,1));
+p.push(a);var c=l.addTextarea(a+":","",2);c.style.width="100%";n.push(c);u(c,a);c.focus()}E.setAttribute("disabled","disabled");G.value=""}catch(H){mxUtils.alert(H)}else mxUtils.alert(mxResources.get("invalidName"))});this.init=function(){0<n.length?n[0].focus():G.focus()};E.setAttribute("title",mxResources.get("addProperty"));E.setAttribute("disabled","disabled");E.style.textOverflow="ellipsis";E.style.position="absolute";E.style.overflow="hidden";E.style.width="144px";E.style.right="0px";E.className=
+"geBtn";k.appendChild(E);h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});h.className="geBtn";k=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);e=e.cloneNode(!0);for(var b=!1,d=0;d<p.length;d++)null==n[d]?e.removeAttribute(p[d]):(e.setAttribute(p[d],n[d].value),b=b||"placeholder"==p[d]&&"1"==e.getAttribute("placeholders"));b&&e.removeAttribute("label");f.getModel().setValue(c,e)}catch(z){mxUtils.alert(z)}});k.className=
+"geBtn gePrimaryBtn";mxEvent.addListener(G,"keyup",d);mxEvent.addListener(G,"change",d);m=document.createElement("div");m.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){v=document.createElement("span");v.style.marginRight="10px";x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(x.setAttribute("checked",
+"checked"),x.defaultChecked=!0);mxEvent.addListener(x,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});v.appendChild(x);mxUtils.write(v,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){x=document.createElement("a");x.setAttribute("href",EditDataDialog.placeholderHelpLink);x.setAttribute("title",mxResources.get("help"));x.setAttribute("target","_blank");x.style.marginLeft="8px";x.style.cursor=
+"help";var F=document.createElement("img");mxUtils.setOpacity(F,50);F.style.height="16px";F.style.width="16px";F.setAttribute("border","0");F.setAttribute("valign","middle");F.style.marginTop=mxClient.IS_IE11?"0px":"-4px";F.setAttribute("src",Editor.helpImage);x.appendChild(F);v.appendChild(x)}m.appendChild(v)}a.editor.cancelFirst?(m.appendChild(h),m.appendChild(k)):(m.appendChild(k),m.appendChild(h));b.appendChild(m);this.container=b};
EditDataDialog.getDisplayIdForCell=function(a,c){var d=null;null!=a.editor.graph.getModel().getParent(c)&&(d=c.getId());return d};EditDataDialog.placeholderHelpLink=null;
var LinkDialog=function(a,c,d,b){var f=document.createElement("div");mxUtils.write(f,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";e.style.paddingRight="20px";var k=document.createElement("input");k.setAttribute("value",c);k.setAttribute("placeholder","http://www.example.com/");k.setAttribute("type","text");
k.style.marginTop="6px";k.style.width="400px";k.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";k.style.backgroundRepeat="no-repeat";k.style.backgroundPosition="100% 50%";k.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display="inline-block";c.style.top="3px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";
@@ -3642,20 +3647,20 @@ a)}),mxResources.get("enterName"));a.showDialog(c.container,300,100,!0,!0);c.ini
n);n=p=null;a.stopPropagation();a.preventDefault()});var k=document.createElement("img");k.setAttribute("draggable","false");k.setAttribute("align","top");k.setAttribute("border","0");k.style.padding="4px";k.setAttribute("title",mxResources.get("lockUnlock"));var l=g.getCurrentCellStyle(c);"1"==mxUtils.getValue(l,"locked","0")?k.setAttribute("src",Dialog.prototype.lockedImage):k.setAttribute("src",Dialog.prototype.unlockedImage);g.isEnabled()&&(k.style.cursor="pointer");mxEvent.addListener(k,"click",
function(a){if(g.isEnabled()){var b=null;g.getModel().beginUpdate();try{b="1"==mxUtils.getValue(l,"locked","0")?null:"1",g.setCellStyles("locked",b,[c])}finally{g.getModel().endUpdate()}"1"==b&&g.removeSelectionCells(g.getModel().getDescendants(c));mxEvent.consume(a)}});h.appendChild(k);k=document.createElement("input");k.setAttribute("type","checkbox");k.setAttribute("title",mxResources.get(g.model.isVisible(c)?"hide":"show"));k.style.marginLeft="4px";k.style.marginRight="6px";k.style.marginTop=
"4px";h.appendChild(k);g.model.isVisible(c)&&(k.setAttribute("checked","checked"),k.defaultChecked=!0);mxEvent.addListener(k,"click",function(a){g.model.setVisible(c,!g.model.isVisible(c));mxEvent.consume(a)});mxUtils.write(h,b);f.appendChild(h);if(g.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_IE&&10>document.documentMode)b=document.createElement("div"),b.style.display="block",b.style.textAlign="right",b.style.whiteSpace="nowrap",b.style.position="absolute",b.style.right="6px",
-b.style.top="6px",0<a&&(h=document.createElement("a"),h.setAttribute("title",mxResources.get("toBack")),h.className="geButton",h.style.cssFloat="none",h.innerHTML="&#9660;",h.style.width="14px",h.style.height="14px",h.style.fontSize="14px",h.style.margin="0px",h.style.marginTop="-1px",b.appendChild(h),mxEvent.addListener(h,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<r-1&&(h=document.createElement("a"),h.setAttribute("title",mxResources.get("toFront")),
+b.style.top="6px",0<a&&(h=document.createElement("a"),h.setAttribute("title",mxResources.get("toBack")),h.className="geButton",h.style.cssFloat="none",h.innerHTML="&#9660;",h.style.width="14px",h.style.height="14px",h.style.fontSize="14px",h.style.margin="0px",h.style.marginTop="-1px",b.appendChild(h),mxEvent.addListener(h,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<q-1&&(h=document.createElement("a"),h.setAttribute("title",mxResources.get("toFront")),
h.className="geButton",h.style.cssFloat="none",h.innerHTML="&#9650;",h.style.width="14px",h.style.height="14px",h.style.fontSize="14px",h.style.margin="0px",h.style.marginTop="-1px",b.appendChild(h),mxEvent.addListener(h,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a+1);mxEvent.consume(b)})),f.appendChild(b);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(f.setAttribute("draggable","true"),f.style.cursor="move")}mxEvent.addListener(f,"dblclick",function(a){var b=mxEvent.getSource(a).nodeName;
-"INPUT"!=b&&"IMG"!=b&&(e(c),mxEvent.consume(a))});g.getDefaultParent()==c?(f.style.background="white"==Dialog.backdropColor?"#e6eff8":"#505759",f.style.fontWeight=g.isEnabled()?"bold":"",t=c):mxEvent.addListener(f,"click",function(a){g.isEnabled()&&(g.setDefaultParent(d),g.view.setCurrentRoot(null))});m.appendChild(f)}r=g.model.getChildCount(g.model.root);m.innerHTML="";for(var b=r-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,g.convertValueToString(c)||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,
-b));var c=g.convertValueToString(t)||mxResources.get("background");v.setAttribute("title",mxResources.get("removeIt",[c]));F.setAttribute("title",mxResources.get("duplicateIt",[c]));x.setAttribute("title",mxResources.get("editData"));g.isSelectionEmpty()&&(w.className="geButton mxDisabled")}var g=a.editor.graph,h=document.createElement("div");h.style.userSelect="none";h.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;h.style.border="1px solid whiteSmoke";h.style.height=
+"INPUT"!=b&&"IMG"!=b&&(e(c),mxEvent.consume(a))});g.getDefaultParent()==c?(f.style.background="white"==Dialog.backdropColor?"#e6eff8":"#505759",f.style.fontWeight=g.isEnabled()?"bold":"",t=c):mxEvent.addListener(f,"click",function(a){g.isEnabled()&&(g.setDefaultParent(d),g.view.setCurrentRoot(null))});m.appendChild(f)}q=g.model.getChildCount(g.model.root);m.innerHTML="";for(var b=q-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,g.convertValueToString(c)||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,
+b));var c=g.convertValueToString(t)||mxResources.get("background");v.setAttribute("title",mxResources.get("removeIt",[c]));G.setAttribute("title",mxResources.get("duplicateIt",[c]));y.setAttribute("title",mxResources.get("editData"));g.isSelectionEmpty()&&(x.className="geButton mxDisabled")}var g=a.editor.graph,h=document.createElement("div");h.style.userSelect="none";h.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;h.style.border="1px solid whiteSmoke";h.style.height=
"100%";h.style.marginBottom="10px";h.style.overflow="auto";var l=EditorUi.compactUi?"26px":"30px",m=document.createElement("div");m.style.backgroundColor="white"==Dialog.backdropColor?"#dcdcdc":Dialog.backdropColor;m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=parseInt(l)+7+"px";h.appendChild(m);var p=null,n=null;mxEvent.addListener(h,"dragover",function(a){a.dataTransfer.dropEffect="move";n=0;a.stopPropagation();a.preventDefault()});
-mxEvent.addListener(h,"drop",function(a){a.stopPropagation();a.preventDefault()});var r=null,t=null,u=document.createElement("div");u.className="geToolbarContainer";u.style.position="absolute";u.style.bottom="0px";u.style.left="0px";u.style.right="0px";u.style.height=l;u.style.overflow="hidden";u.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";u.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;u.style.borderWidth="1px 0px 0px 0px";u.style.borderColor=
+mxEvent.addListener(h,"drop",function(a){a.stopPropagation();a.preventDefault()});var q=null,t=null,u=document.createElement("div");u.className="geToolbarContainer";u.style.position="absolute";u.style.bottom="0px";u.style.left="0px";u.style.right="0px";u.style.height=l;u.style.overflow="hidden";u.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";u.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;u.style.borderWidth="1px 0px 0px 0px";u.style.borderColor=
"#c3c3c3";u.style.borderStyle="solid";u.style.display="block";u.style.whiteSpace="nowrap";l=document.createElement("a");l.className="geButton";var v=l.cloneNode();v.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>';mxEvent.addListener(v,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.model.root.getIndex(t);g.removeCells([t],!1);0==g.model.getChildCount(g.model.root)?(g.model.add(g.model.root,new mxCell),g.setDefaultParent(null)):0<b&&b<=
-g.model.getChildCount(g.model.root)?g.setDefaultParent(g.model.getChildAt(g.model.root,b-1)):g.setDefaultParent(null)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(v.className="geButton mxDisabled");u.appendChild(v);var w=l.cloneNode();w.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));w.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';mxEvent.addListener(w,"click",function(b){if(g.isEnabled()&&!g.isSelectionEmpty()){var c=
-mxUtils.getOffset(w);a.showPopupMenu(mxUtils.bind(this,function(a,b){for(var c=r-1;0<=c;c--)mxUtils.bind(this,function(c){var d=a.addItem(g.convertValueToString(c)||mxResources.get("background"),null,mxUtils.bind(this,function(){g.moveCells(g.getSelectionCells(),0,0,!1,c)}),b);1==g.getSelectionCount()&&g.model.isAncestor(c,g.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(g.model.getChildAt(g.model.root,c))}),c.x,c.y+w.offsetHeight,b)}});u.appendChild(w);var x=l.cloneNode();x.innerHTML=
-'<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';x.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(x,"click",function(b){g.isEnabled()&&a.showDataDialog(t);mxEvent.consume(b)});g.isEnabled()||(x.className="geButton mxDisabled");u.appendChild(x);var F=l.cloneNode();F.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';mxEvent.addListener(F,"click",function(a){if(g.isEnabled()){a=null;g.model.beginUpdate();try{a=g.cloneCell(t),
-g.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),a=g.addCell(a,g.model.root),g.setDefaultParent(a)}finally{g.model.endUpdate()}null==a||g.isCellLocked(a)||g.selectAll(a)}});g.isEnabled()||(F.className="geButton mxDisabled");u.appendChild(F);l=l.cloneNode();l.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';l.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(l,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();
-try{var b=g.addCell(new mxCell(mxResources.get("untitledLayer")),g.model.root);g.setDefaultParent(b)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(l.className="geButton mxDisabled");u.appendChild(l);h.appendChild(u);k();g.model.addListener(mxEvent.CHANGE,k);g.addListener("defaultParentChanged",k);g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?w.className="geButton mxDisabled":w.className="geButton"});this.window=new mxWindow(mxResources.get("layers"),
+g.model.getChildCount(g.model.root)?g.setDefaultParent(g.model.getChildAt(g.model.root,b-1)):g.setDefaultParent(null)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(v.className="geButton mxDisabled");u.appendChild(v);var x=l.cloneNode();x.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));x.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>';mxEvent.addListener(x,"click",function(b){if(g.isEnabled()&&!g.isSelectionEmpty()){var c=
+mxUtils.getOffset(x);a.showPopupMenu(mxUtils.bind(this,function(a,b){for(var c=q-1;0<=c;c--)mxUtils.bind(this,function(c){var d=a.addItem(g.convertValueToString(c)||mxResources.get("background"),null,mxUtils.bind(this,function(){g.moveCells(g.getSelectionCells(),0,0,!1,c)}),b);1==g.getSelectionCount()&&g.model.isAncestor(c,g.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(g.model.getChildAt(g.model.root,c))}),c.x,c.y+x.offsetHeight,b)}});u.appendChild(x);var y=l.cloneNode();y.innerHTML=
+'<div class="geSprite geSprite-dots" style="display:inline-block;"></div>';y.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(y,"click",function(b){g.isEnabled()&&a.showDataDialog(t);mxEvent.consume(b)});g.isEnabled()||(y.className="geButton mxDisabled");u.appendChild(y);var G=l.cloneNode();G.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>';mxEvent.addListener(G,"click",function(a){if(g.isEnabled()){a=null;g.model.beginUpdate();try{a=g.cloneCell(t),
+g.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),a=g.addCell(a,g.model.root),g.setDefaultParent(a)}finally{g.model.endUpdate()}null==a||g.isCellLocked(a)||g.selectAll(a)}});g.isEnabled()||(G.className="geButton mxDisabled");u.appendChild(G);l=l.cloneNode();l.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';l.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(l,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();
+try{var b=g.addCell(new mxCell(mxResources.get("untitledLayer")),g.model.root);g.setDefaultParent(b)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(l.className="geButton mxDisabled");u.appendChild(l);h.appendChild(u);k();g.model.addListener(mxEvent.CHANGE,k);g.addListener("defaultParentChanged",k);g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?x.className="geButton mxDisabled":x.className="geButton"});this.window=new mxWindow(mxResources.get("layers"),
h,c,d,b,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.init=function(){m.scrollTop=m.scrollHeight-m.clientHeight};this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.refreshLayers=k;this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;
-a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var D=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",D);this.destroy=function(){mxEvent.removeListener(window,"resize",D);this.window.destroy()}};
+a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var E=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",E);this.destroy=function(){mxEvent.removeListener(window,"resize",E);this.window.destroy()}};
(function(){Sidebar.prototype.tagIndex="5V1dV+M6sv01rDvngax0oLvveYQEaGaAziE0PW8sxVYSDbblI9uk6V9/VVWS7ST+kB0zL3etbmIn3ltlfZRKUqkU/rpRLN6MmFJym5yM/8QL/Xnw7yLceXQ03fA3JaOTyfjCQCKZehvu66tErCMW6J9E1M4jlJcFTJWIPP1VIKK1ixj/zML4VBRiTMaf9HOKx8G7/lwy71V/ZJEv8Vv8cKea9KW646tU41nk678/4tK7SZVu5FpC9oz/TDPVnkEPJlsn4wVma1lEnVemGByy6q+M+SXkSmaQ6Vv27gJeBDzyOQDMu1ma5FVEEVBEtuokgQhdyZ62Uv/9qWWoYPRltgx4A3U970/hc6BnIuD+kdI+KbGTcelGce6ec4evOBl/k0r8llGKtWBTvulF98xVKjzEvxWXDVS/M8VHF57Hk0TDpzpxJQGScC9TIoX3euXvVV/UcWWpDFkqsCYyfaM/1ly36vGfgVhv0oiasyfh7ypgyaaBaKHl5/nThqb5VeAvZEigXx8k0AolJJUkVjo7jGBOHFOm29Se3FZin6VsyRL42V+2U90z9crTOGAeIEK8Q1UCnMlGxk4CLWb/gsflKt0y/MLnbzyQccgjaIivAjgTT/Gtr4Quf9cXXWRLjRKxyRwvkBko75hHnjisPzUkP/kyESnHtwoAtQ7kkrehL7UyzUAtLrh6E5g7Nnn9iYo2SWW8ZVr1QYsTIW8gE+ll5kHWQlXGdr/Qug1Zl/RDe2O4FL+fWPBaiJSUZGoDT6HRYT3DN9Gdgy4agY3Q59gj+iIOdAOB/MmYYlHKqYp5PMLaFHMVirSSG2XYySnnZrGHNW19JdaZoiYxGV8LbGq+9DKsT0APT3Sk1ldzXaZszQvOpfzlkndUYodytAPDOEuxuocyEqlUmM+Jbm6HevkAq0sAW8+MB9BmQJs+8HQr1Wup3G2zL6uCetJZjXKofV7J+FLnUUWtxZyLTYa20FzpV1GxEgnVdxH4JOgyS0QECr4F3z3nEUHWUQfUjUi/ZUv7tjqTGaCkl0q6Wou0Ef9tdhslUBAn9Xq4GshZkG6gTmx0m8EqvuGoYzb4iwMYdDnVMcpbS2QM3TYB3mM0Sp71/0fuSVPf7lmki1d10DN3LE6x0/CKut+GuddVgGpRyFCtc/sZYS/Cm9FySdUj3sgIPlOZeZvWNAm1o0uTXH81UO3zZEEqQDkwD5q37t+zdAOqNe/RS/aJ6Tdi5purBt73xV930PiLapT8HTTXqz2Kh7JloQ26bIlVOtAl6dIY9uBPMhbeCdgtu/ZLJeEe1XdduTSPrpc6v9+TlIf64jakMpeQ9RumQFVr3YiV3vcb+eZyy9Viw4Ogl1p+nM2xmofSyNSdYgHjnSzA6m26fu+wTKtwYM30S1LXTkxPsYp0qp+nbu8yg271r4xnWM3/hoseBI+8qttygmLlSfLhZtmsS7CZUd1Kds295iT2m4dTh7aH0qLgF2QqGo5qVVdLtHiPvIp2mdDXinvvXtBgGhLRI4/1sJs09z5TqY6sRCNVqlU+2qxPDNuRuxm20MqLmqNOO3CqHRqxEGEclC3jNtATkMOLhFZpOynrH5FAc3UlcKRsbJHvy/9wD8iylUSFJHhrrfmRYBPaZCGDZ2Mu6QXolr3prFf16OdvsxOjqyqUVPXzVEngw+g2Qrur8WehCxWnqu71sE9gv/QWnrSalK00WglxllLFX+VXVaxv1TMae7yFcRrlV2059PNiNr2+wdxh60gmKamJ7trRDvIm4xsecYXqxI7z6sQ5pICWKDHp6jFiEyjpgtLioL1lU6MmSu3VHZm0QtcI1RVNeCPPjIeKHnuZLamxJzHnNIzdyIzsV2+DJm+Y22ZVlPINS35AxuFl1Bo4nQ5IJ7PIfxyW8xzGplLgaG9BGginPqsrUhn55RCZiLoxbRn4v4dAbkYubdBLFkWoRfXYs24CvPz8lGzpNZchT1XDzN8OSEkcF8ZBhnP+1cq2jJgddJORxMmOmMX7w5A96HXzILoS882Mr/IBWqAHTcjxejheKQPvJRo3kWNuP0g0msMlzn6upFoK36/o6A6R34t5fG0RKMGiNdXSwyFVJX4R6mwE9Y+GsodSb1gcv7cCTRUWmCEx1rI2SAbsPvY2+m9QmTl7mCeBdrAdKeMnTGC24X4ylMvU3qWtzY2Yf5/QdB+kwyKPB1i9agqkwEqZJqm+HLULWY27rx0Q72mUWoass8VjGOIQHihN0cRKenQVagMsqEtZ40YXPq4geB2yGWCXNjHdvWUBLwzZJqO0hL+TVEJ2va5urbACZWbCVYXEuLKywZep5bhnERlBRuANDHRa5c1HgwZlFJY2kWnipFFzIUE+znKy+EtINIQLcbvWDo8tdUmlOANNl1A7/85EXGmvHeBG00tYB81LS0AuLBVnVATUY8Ryv9DreSbjX5/Gw7BN6qTSVmRHniapOrKd1UqFa33dmLRcn4eiO68TzJgwXYga5OrAdj+l/P+s/3w5u4BXnkOdFpGwo5wOb+7Cf+7CX/0GtfRfzjCN8YfJX05g2BeQMAv9mxwCtgIWyOwr5L/o7pR+6SJ3Fe/5QLwwr4C6BIv1fKyzpToXHJTbLiG8/GQotrMJyTgA31zp7sYz07uavDfhI0+ET93fNFPKrlqZnmkCBaS85u7Qkeu8E9ciU7jYt/Oin4Cirkdwp8G3qlPh7jTYKupVrjsR5kytjqzkeYIFXRodnI/DcJL3VsvKmexWjgEoQCsdT/N5gLf5grrxeJ6vHTm4gO6UlxdM9fCJr5VdTooZGIdRDXwVSKniAK23gL3Xr/TsPT66RK06s+5MS1xeX2UqEqZDcGRYCDPKrMfWwKV89WhCtCt0umFC9cHJWKCO87lZ93ND0Yx1Ilesax5NH5/A6H4+Kc+ulmZcK+SoYJnx5BWnwRUNUOzoqJMouyS0VN6PSOkRm10jTnAgsGXKVzQTWkNVwXMVcD3cwHzgiccCc+0iwrV+eIB8vYYrzXPHQmiE1ZMQ1dCqZe8YRowhM391K5bkoGWFgTnpJC0cvypov69W1PHZKu61VvUKlrlgOFehv8dRqYiSVFVPrFeh9R+a6FKwUKF/2DYN5EtABZqrc/t6ZBF2b+Aky+I4EDDf0hE76YPlKyXWsFCNdaYrfEHqwDPaoVMBPZl25/OkuXfYh1AuGViPJI2HzBH4syPx50fiP/fFS0ErkVp1KFpUCxjqH1AdWqWlSspDr9t9mp8sRe05lZKcAbbwhWfvXCT5uaMGgh6KpJLW1xfoBw3LaFijA7pLbA/dLBaAHq0vExEoc+vIsCVvS8dsgKfzHs2zF5UcNegfdc9XQw7LtzEBEfnVuw5qsk9o/ZpU+TG0Qy5lmqJsZZKl/bKVR1cmoRI9kMKywhvIGYGrFIq+bi/73BQ0hZ97urenL6JXo5mqakobbtIVV66p/w8gNxay1cYALkHB9QnaBuTxx//OCudewXQalev3OcXoIopkah29PmH7C415oHVru0dODdPkGKapDAJyVt7oUe06YBVuotXIfZ+gJPdtaYfWuto0odAH8LSEDeELJ+eFgmTOYjMjHzutTu3jF0WpG5cTsOdrF/oO4OA7ZEqfB4GIEzsLWN3o6/CT3nipaAhKotcVWg06C0PjypdFnnW8zKDa16wc7zM8ads4WfHympGqW4QkbMBZ9BJqM5HWi99YkIFBog0Hzio7lkrk6FpEIqHNUzdS+rD2lUqc/dJZEPYVaHSDy8bczBP5mZ0nMo6LJDO2Kt7crnZYv2dpIkqO4Lj+UwiaZGA0N9XXHbZnPaKg7UVm+cmsVbpgLwQqTBDlK2QRjYqU9WGg36q1rR4EKSmgVoQS93g0qWbzMLnj/zKeThc2Ny9xdcxvW89tJ4FBZ+TrYS822IEJJ+OfG7MBproKdaU+lm6ha0k6VD5Wkg2Rn63EH5QRvWjn4LGOw95S7TY+lo3TH5bgr0x4r7qHlmhA5xdL8inC2+X+qnIjibHk+hEt7HPJHmiPr5FDKwqa25qJBIaLoGOvda+c0H4n10rRyKPrgymjDoVVMM5x8qynOBbcSwY9gDZTfidm4q9hNigH6Zq7EjwAgaEWn4CdRLdtSHCS1yLr+oE6voukO1CwEDCn2jNsm2CDCNlvtAe2HK3BYr8H2yZ1uJHuZl7so7STbMGZwqkd6+yc2C8a0q/ngU2T1/pvyFPmk83Tn/jK+AeZjy7QxdUCkrSe3NbTqNgL40jzsEOzt6u1D9tkTG81GT/skQ2ayLenp/lHp2H3zgzG+tdOZtsNHX1oJuNi99VAhH9Z9NF0P6/LNDBfboa6fZhgGdkTPhmqg3Eaf+zelGaa70Uruxfjpw7m7dWUBlIMPOJLqqEnlbYw7m/rCMN8W4EIq3yU28lRr/00O6EP07B7pPtJPgO3BzSObqMkNTPyh4nQVpli6C+Kh7umeGXIdYrzyrTE4a54V+7GdziaNakWdy8rutDfP+5Q6uGXHqZnFasiznRQXfSQERvNwMTfZtcLB/4N88lR1Bd6tC6Wmg+3UpO1nNAGReekn+dT/fCb2QYDbrLizeyyPyxWZ8bSBMBkfKP5KJTH8MncwhpdhJEJPjKZR2kWM4anfp4/4AqMtort1M9HJXJkDjXvCa99fDR7j1goZ+Ci5eNlH6zuA1JT24fiScpErMTelfGWWtwxQgHFjjzCtuJuPPlabFdZTK9hY7OU1LD5pjsLmKV+V7LRWsksxq1hcNHhDR5nYFYqnRg0I1Y7DGhmMD12qaM7njEng52y6I//yONAG9BDsy/0hb98H4T2Hv7Q9t5BMyMPDTB4Nn9XzMNV9SGpaZMwKq/cRu6MBdc0PRqMupDoGiLfYQUGNXqIoSzglobh11Ll0aDyYCql7wahxgrlvX5sEk9cZ8huDzRQKtakbzDk+1FCGCwTPmIQ6tuLe/08bRLHSBvMs1uV8of6M2tpff8UM/Pjklg8LY7ij2R0alrmSxLrke4KNjZKlWGvuIKL9jaT+K844epjeCsbzgtnkPNwXuM/X3fC4BwyjB44eY2kUW1gqzKElvowWzyKevTim5hHprYrSXGfbPU290OwgmbZRoHEXmVmBwR7emHQ9K589FG7k96B/hk0nQWuRNKy6Ee92NUl1NrCPFkWodFqXT7dWLX8EYuTjUw/LIFnGWQh/wD6BXjF5f1UsZTtMB/UxgsRVUy8uA9OYDJGlyEbZyNpS1HacBx90z06HU8knhzZ+GJAVIo1Vl/L92CjS6WtHnxx8r5FZ4xmPbZPYWNQQGbmEnRmuZ+BSxs5k2zBqQJpskiklWy1PIuQ4XrcZbGXdyOzpNmGIhLrhZhgucX6peINVyxIRreX0Gvda5tspRgFQCo8FlPjIwyemeTOGHtHJCIiCLF1sTgfj3fTib1jX+DJSDoQaa0feE+++5K/Z4mSnEGL3N11JS8SdE9HeEraqGfFD0fVEJwXKwldJ25PbrDKdG6T+y0F1RlOcDth5Q1LnHvED0S48Kx/2FCEsd33NxRhFplVkqLAB2obiywGV+ucayDaPEbVTg7QOnlfSrsfbDAhf+w3rmPInvWoA13OtB5XbLiyp9hIlxATesgqVVuZanqbKm6MJh1Y9lBCLL9k9Gl8cwW+HVN5dYJRLrKWiYZmurNPX2FH4z9mJNcfpaWJPKJ1YKpu6aZ3cv+m5HAb00cnVoSnzXdi39v8OjrjroXiW7JZiggXhh5ecLu4/2OIdA7Ih+C08S2Hz/Mi1Fqe56VEdMY8L6Zn4/H4j64J+gKCZEl0trLXXWAjGMsGJWQg26I8EcMmW9IrrmlhBZrg+JIlHLZJUsDSTda8UlJHNIXvj2Y5Dm0N7+NY9pee1o2LUIfB7vYSCPXf0b/4OxT2bsD8RsTjfKH/6Z9VXOcwfICpjK3rhMzX9DytZOyWPLfXrWCUPg9NPwImrq4cFDp2bgze3FOyVbYDpm9SprndbD67s+TRiPMDD27nJfk83rKrqZ7X5xQq0q9YDHNhWMhV5/fLowhZv+42gEJbG6qJssvEbZBSVOXSZTsKYuja+uiYEEIglnuoh940Z5eYnsnancUvHRghyGUuRsN2kzpsWYZVmcuVBAd9W77MgSF8cWI9JZs5sAeipm0DrrRhtrqDCGj+YStWogZxgwj9oEfBAkdsCZHMvHQ0uwCj1xdrQQeRMG1SSzqzI4JDRSpiZTWQ8TCDQIm6wsMEi66wv1qClVex6HKgZJe6zcRte5SqGO6zX6dWll1JmiVrIz2g68ZgQnab6IEXIcRmwh3ZYRxAHN5hGCfHMT5dGKlkiVuP1WAvj64TsOvFLGDWJOJAP/lY+rOPooctUXaFcG5CMCa1a0AHPB6LmSeMTZjfdEePpjmWiipzbiI1JJMhSCDb6SkZvNPUfwVnB0LYx541RzxuJ/k8hFT3ptWjI2OJC8b3RVLQnYF/CSf9GYYUlJRr45LCdn5cmnOM+J+nGctEOKfpC22h0DCFPGOcUCZPT0PubViEX01O6XyqRR4tbFvn7ONCdyczP8nnzoqrvnzzLNmUx3kP0PNFsKof4FFvGGqlYWNjR/bvu+xaITXs0W3mplMCaGSq9dDgslfw95VecO/809fRxfT0YkqMuRWRmxYdiWa1RIXZ4s43G5IMY9p07mxL6Mn4UtAY33ZVfdkuC2NpZQ2orngTjbcXfnaxl7EVNqU7WUX1OZLvoBYVfDWmbgulWK24yneHH1cVriJPvce4Kh95HZSwgX8Tx5T8neyLftHFIDycVUHfSFbhqFqHRluMTCF73Rk7urVIY0gLE+jEreOr5DkbiOfzMTy0c16rX25fTSgzM38k16QXl41tRaVVG+mqHQ9Kj2tRjO4N49KlY/vbrXN4V1f3WuAjOGZmozND0lk84L9yZ3zmzFEzTpQwu8YD2B2viUbXWWKDSOkmchQHFhbnzo2qkgRHQ8tEBty9dVYSnR8lzW0QZLBgZ46HuswCmA8R9ltgtcHh8HNJD3RKA4PMUdZbLlFOtrvUhnEyICPSHGYAsR3mR598eOA4RDUx91qTOIbeVNIBkpDJiqcJlB1dnsAJOg2hOSqwoxkt5cC8PixAfV9cX8Gqx8PJzjAM7N5oP9h+T2rYzFYabfWizslupwMJu8s4qIywhoDnZ+gK/DqkqPM94mMlfji1sFJxfTppGJD3YpwMzng2OOP54IyfB2f8cgzjvK6saydCejFOBmc8G5zxfHDGz4MzfunPCEXQt3+YDK4TahiP0Ak1jEfohBrGI3RCDeMROqGG8QidMBlcJ9QwHqETahiP0Ak1jEfohBrGI3RCDWMfnSDjVL6Y+cxIeMnoK67frkNzxEEetjrhb7XHe/VlzX35Z/NSCj73REj+FIdndDml9mfNO0Si1lGgL+nuK5gEjn+Du6vZ3iiMhyK1J7EeLjJ0IJ0MTApUp8xL0fUFY+1PIThD4lH4kcAc0ZZ7fsEUO87W7k3yOaX2XX9x6sksJg8y+L2461euSImrmyKhGTR4ZOeLfsTzjUylzdYYbqqzuZbvRY8OMSAUjkF3l2M7rL3GgfcSMN/nCg7P1gX0PUvjzEbVbDt124lo0ptoAFl6SwF7LF4S3QbMsrY0LjilL47hGt08fS+aQ3tDMPNvaYbHaMjVCm4278rUQudkb2+mtp+2Z3RgWoYf/YJS812Jv/v7mYQmH57QA7rd3d5cFu+VZMFuaksRSzpcr7Lp9ktr8l9M6+y/mNb5x6Y1f5j/18prJ60PLq+dtD64vHbS+uDyAhVlI6M799fdE5h8YAK31gsPt6BVaZt6RsUp69DTk3fr9ROx1h3yS5LHHaarfvARrtguLAODtUQzBeyZU8d6kM5KpOZkDlwuH5J18iGsZwOxPmOw7TcZpG2xuxs4cH33aI5Jd5J0A/u0wKZ8oZC56GjUdHaNAwVZp8aD2xqnlQ7dlXy5uknqlI8rfmfa4p+V00n/cZ2kaqGdDEA7r5a267C7hbLPjMiWvXFYo0Y/ZnPdiBUy+ToCJYpL0l6tk/j+06MLbE6e4m3OCmUMBlbBmIwYySAVIUXwCUXkNy1blzguKWaN4jE6VDljtma3rNJVX2ak5eHgFEcCGB0nG3TrWcrDQ+wrQdSQmIkm0+0tpXzFpGTTidwVMBCtiEwAsXob3RfLWCX4ypxyl0oZVL1mDXTKAh75Jk66e3WYbjBMgC8SL0vqzqOpBO7WH5vDDkAZ6haFYTV80TxG3EGhkULjQpwqMUeO68F4KirOKKgkwXBn/2FvzDVZc9pEc2C+SiA3Pgq6yskW3VGGFYeCeDJ2blwWhh1SQRGzpMmTZIdgizN+NtQNGoLctdpe2WPnJ+N/XIVx+o67L/O4wYoztyZe5jFhh4EpiyoZ6kje0SLH+OEmmkWxpN90tkyJ4zpgyWbHhcM19WsZkH6Ras0i8du55AloXNdaztzYgSmjVSMTb53tH+BUg7xhGZYONOBme6EMCujYxrX+rN3BeYD6xunkoQ3XlnTdTqBDlETN0hSK5ABzV3IzOXRyoYOyyjWjlS7C4Gzl2KFuctjgTfkpR62bf3bRrzgai5lv1GzlwbDVWPlKbkk35kykmnDxNfh7Eyk+b73cNsoi+HsbRY71qHcpDnlyBic7MhgeB3Q5TsmbJMsckqeTLbVSk+tI5EHclWjjK84IzRcv3ASRtGEiPyEv+h/61AUTSdPlpplatvIkMKP6LPiW06Ed6OhY1wfKmLYftpG+gY7Fc4RyhcXwxBznF3yQ2LXoERXmbJgl6LsIFIGoOEPugOC7tnWi/CywOxNXSxuzuPakZB7BoTLnqxhxGxNtsOAVRmUdSnF0fvb2MtDBzKimE2/MA2mNB7qTEI8873ZXiid0El/MsdYrniqHt38sni8oclZHCnqsvxCLcqZV5+t+fnro/r7m5ryWStYNhRnMYvM+Tnm60EOFmFThlPqfZeZcvRe6EzZntaWkS0wsOJ8spTa4HjHk+6Ibt48fQlPMCVXtlFkLkvG2iMbZYpnXMBwMWHzFas7yPYRn2FSxmTraXlU05nQ71NwNh5Uc4uTB2MANp7Sh5+EmdN03vFN026Vw7ud/xJ2r5Q8KdgOHyTIb+oN5bt1bHpGwXf/vNj8HUrMgLTPqDioiQ1eBf7KAoiFR2zLDcwecuIa+t7TluwWGYR+m9rzA4ghBJ5iZsdwJqknTOi4mHXJ0HtARirSFPaHPBXL1KyZjxYJaSwJh5izfLind6Vpr9KPN18QcHuVG8GizwuetHvkllLGJuoi6sGeG/eObVOI3NJkAhoY154U58DxDm/F6suBsH7TdDa8wy2tA3fQ6YlC9NOXTGgF0TuGI+bD1SyTEX3M0aAXOM1NHtJU7n0ZywCkYmwWjBz30PNV21NvJzuSeO0EfLBzLSaFI8HQybXkJbo+4tZ/tLMW0krl0QcGMLniY2CkXc+kC1c9lJPUyS1OcetH6+4SiDIMPmf4dGpT+0lgaIX3TQmvUXIL7tS5MjYlzg7gjwTfSQF3xN9z0aDhTy1PUXKarOmnpnCoJzWDUmgLFgLBZGF0hcDmELWGhtiVWVYyHIcbCnNNabPDKOwolTaRtHq1FxLnabcBlpslwVCMGezrNyo69hvxMhe7NKq2yCuzowiK1zpsqmSSnl5yFGAIM7kBRVJ1H68B2DYvgp5cBwwNf58z3A5yua4hje1NQxjHTqlC3Bed2VIAx6JNYZTRNUNy1A2UYw6GIJmxFftcFSGvDF8JELCgYOq0S75NO7UvgzpwS72R8qv8/ZWop8DTbmR5fknemaluT2kvj5fRFJLLje6ss2UCcubWuqSZOMX53Uj4XDH+0nxTziHBunKMpfIOWCGTtjU0KwgfbJPYIawXWuUKzqHiBn+9NQxjAUFssWiW8m2z0WSihRldm5Q/ElaZpXEz/6FMhmihnSOm+CF/mw3DTbBjZdrj6CLXi3E5041VrkdJWbsdN3SXA6E78nQk8jJVwWuBLIXHTLNl9S9Ec04PI8pHWKvfRbYEEcvuS8CixfoyRS1PbcJa+8F+wBL2m181vTnDqPM0v3FlG1+IX+QKnipndmk/ZksMe4W/ANBlflVJJs2W7StlP4oAHehqJJ3NiUn8MSXwN4xO/eAtQGNcsGjSN/bzqTf4DMn7D4rLAvbO91851AIa6CmB9wgvHx0e30ekd9TiPUo9cwMH+3uBFFLT571cSLcAO8roTkUFVIjoWj5N7XieKjDzA4dPtYd3b+jiPZCB+xaTSDirhaBFZnWFuWhNLdP3Sb/diemM6EMb2ms3QNzgeGsc+dOUKGM1ktsSZMgjAqTjuIn5idqksZYIGnp6A8MItr205EY/N+dkKcxzX0bLo3kLK9I8hiEr5BNFrh+KEfgwopR5JhgOTPkq5+gBK/QFjy4GFftODSX9ILqqJg5X/TGjj1R8yV3cYSdoPqRDXLMCAGUNSBtJGzhgsO/Y4jyg+xbxXE4/UhoiespQF77gOa0e7eWi0s/FkrD9WNG0CW882fBvwlNxvvFfyzRgorU/HptUVBG6zdODOGk83i2jQkJ/09x4uccbM/F6NH7EINuHhNEZktuOlMlO0SkxXYfnHZpoRBlaYybU5t2wpfL9lQyThV1L6NUm34kZThkF9C91FPjq0dLTEeyeea4Zle02yhLzFiaaEfORJyjLFIrtJa9XA0Uow6UZAnjseLcPmbjwh94VHlsZGJvFhyLlaFp2fuFnzDo/N8PQNxE4Sv5tiJNcw3WJ05d/Mzi2K0n03poX0KACac1zyGqKn2QyqF6wS7MV+zr3Ffc5W5pn9sNl7vLq9ZZrziinM8xgi12CwVt16W+ucAf8z04VDZ2xY+BrLXtdGBSPi9wrCaqp7RnE87+gFdANgfrM75R4c7dvjxeDKy9T7IFTkqpPoAXYQiJZlrB3kA4/TjEKfHyvEPMjQ8/9oogUz+xaPZ4rkdhWwV3hy27QQUIXFY31wI1PasqxWgZv0xJ31xJ13xv3QajQbpCI/82OJnMLpHwJG11x3p1i4shPunlAdMbY+mDQ74SadcT/xlUw/yfthJ12wCVtxPGJgw35XmVR1CLBmupkxBU53VCE5e4Jdu6a1N/jU1l1rz5B4AuZARroHljjTAMIHFadYVUBjqegcRrgofTqgIKykRANWm7VhSMLHsnbdtYLhX+yd4fYTuTUr3ZK8TFkk6wIn7BA84rk3y4CZBY38HByV/9CefZZqa1Lfl8YJ/XyCfkewgYfsgze+EV67KWnwCyZouIcpJvqubXp6Dx4JM7UHUTRkQsZPvlpZHKKVgpsUaIrDDQU11B6PcKoPHFdt7I03bXa7mAqW41X3yDo3lSmmJL/vwBFhASlaZ0jsXfm6MfThLpmtsXarWZdaWwJP3MEp9za1p9FUGY8NLHuHwdEZkWHpAMndYxfT4lC6Wk739fkD6OMCDguCJSBoA4IClZL1lcDRBKiPmgie8rc3xdFw+kwjeHIM+OwY8Pkx4M9dwLDLEephqUG/cXOaBJxi241gdIG+4kXW43VXMcosk0FYzgZhOR+E5fMgLF8GYfnan+USwwljIWfLACtK/kQvqslwVGfDUZ0PQTVlefBuPZhz8PpuYJkMwnI2CMv5kSxwXGOqMvSUXAmcQrK3XWhuFO41mYyfKrRZTYG1ki5oNfaSB2hC6bslXXbkMUtOTIXkCwSfOD/vaNHt0ykmoqEaniUbpOlZskEanyYLB3zLcLiXhOpJgh1RuSzNZBias2Fozoeh+TwMzZdhaL52pzEGUM0iQB1kRM61k/HD1QkeK5NuTjntucUb3rj/tprpZ8605QWTue7CtACZEpkVMuFND5kWP3MmIwfedJDpkq3XNBgIMnvlDFVLdMVZ0HaSDRPKa4knt0sAoRsm4wvsLhYye9Oj0RIfhHRISpdp4+kRO8y0lcR7L3nwnGCMOLdFAsNyFfA3490RiFWHF8OdweQFbLdrOSJxvmjOlJkv6jLjZBjmZqunZ7Og8kSzaixkPM4YUa53yfEfsR6TCvKKsRd7//4P";
Sidebar.prototype.searchIndexData="7Z1rU+M40Kh/zVbN+wEq98vHkHDbJUxeHGDrfFEpjkh0cKwc2R6G/fVHchKGKMwuRo7Usr21xQyBzUaPW62+qfuP9tkf3bM/Go0ofg2I+POP5kB+t8Rr8kdztPq54Hi9PMWcs5fodCD/QCP2Ev7RPFvGq0D8Sl389QfhMfVxcINnJJiwiMaUiV8ZzVgcs9W7XxgEdCF/ELO1eDWKOXsmj3QeL8VrjbdXhixgXLzyR6NZS/8RP5EfrTEUX182H7Jb23y73Hzb726+pfO3NWw+89t/F9DZBz/qjuRPsxK4IU+xdQK7JS/3gZghcEcXy5IjuF9bX7+lTXBGwjjdAyglYR2DIgZGMaQboeIgdgNMCL2mGQhDHAQsicXhmMwCAoRF245+2LH43wTPgZCwtDV2JMDsjo4iET1DHJbkB2chEAj9zh6EjiGzYUi5nwSYQ6GwvyU6fTMU/kxW6xO6FQVUt49hXxj6VjA0yoohtSJxOIejIVUQHYMgvCXma3Q+X5A5uiJQD09T+vKWxf5SkPDEOnDwtlns49iXkKYhHJU1tfG1dmIBBMW+MJgKQbzXFEBA2FES4JRD14py8AISzgkHHJUxJhBbEtMXhh7xawVDwhAfmqAppgEcdWHHB/NiTtdwINiJX3vil2gkKIA+Sk2JxJRTqIZVx1B4Zk9XoivG6T8sjHFgn4clkdjj8bBdlnUaavDOkGt6j6YJB2pfmQpgbhnI1DdMEJ2GURCA7Mzdyg07o1sQkPJ/dknAieAZ3hk+jXx2OktoMKfhIjo94zj0l+j70xP1yT6NNaNhTPj5DxLG0fa1OY6EDSa+kWt5okHwfo3NTk8s54PVP6X/fEjqi8jx9jufyI8oXmBJHNBQ/E/DkPjx9gOqsNv1fRO2fQA7xfMh6/QnZztuWszPw3lZgLf2gLcPjQAjwC9JSDj10e7dio69v2971Zu2uDOxqnAlSy7Kgr5eU9zkQ5vPCPrx6L7oqDv7/lbv0N8yQtpb4SAQ8h2JDxxFRYe+82F2Gr1lB/qUBMRnq1UiPjq6YklU+KO0Xts/S3uWFMsheTQZVvDNwL8PqViWWOtr4Yk3m/uK5rA08ojEhYCvpYBHabnHWhiP6yXhOIhOr8/GaIxp+MTxqvA6RynJ/CDk/x/PYLjj+EejJkiKr5NfLPN/LjSkaOC1Uke70A+mtb85PogagHowU/aSrq3Yz2Q/oNU9DGiBeSY3eL1ZaaEfiOIFd+pwH8gY+4I+i5aFfyb9/WeS2X0w+Eyoz9l6ycLCH/O9/0zVgXkoxXc1uj1nbK7JEA3m4igRjuAQ83nRn0xH8QFBbxN0x+SP/BI8F5d2DKfblRX6ifT382xNwKe852OxksI/EeWIz575NPhE1gQ/F/+JtPdd+D7kPZKE6JHx5yjGGyLFfjK99r6PAtiR9xLx3e7HhX8uyo45vPUH5rlM8SwgcdEfiHLMtwEbXlPCVzRUy2KL90g6yiMBfKrcF9+XVzYIZI/xgc4JE278Snxb9MfS2S/R+aAsG8xjeSQzdCaLPIt/vCsFwZBDw2UyhuFlGkNBJAh2z2XF5klAotN67fIcXQzZedGfiBqG/IL2eiP49kzGG4o5Po9mvdtC30YkehaL/R80DJIoDRS//XrRn1N3/5RpfmHnGHlOf8vndBEwxqun9FZTCu0pyf+LLKP2XmjsL9Hmf1D0Z9PraFsEJp7NBeXkRdYAe4T/oD7ZPh2xqV688f8U/SEpcczeFyLLJh7S/rMp/EOpO6HVvFdx2qxKdNqo4RmgttsD5XGCg91p8+t/ir49eEN5mbHwaq2ldFbLXH6c75OaizPGjxn/ZQmchwuxCPRtiP0lQaPtzwv/XNSivsw2wY6U3lPYvcvJMMBRhC7ojBM0XMpccvD2MIr+LNRTJnNCJq9nITjQWRKTeWnQK5FlW9vghon1zEvCXKkzameuJ86HuQw+LjhL1qURdjUGmTkhrwN+mcw2xtECx8LNe5WRxtoZjsgUXSWzoqNXjttWZu9OMPpl/1xuEebyGIby9TI8A+Wec3an4XjPYNdYYfumJXsS3cyn7vGeRLUPbNIfD7yy7IG2YgVlNvqP9xQ2nRhKsBMAn8rbG+o4KM1+0G1xdLxn8TC5LctTUPzhlrWzYSW+ntbbjeLfQe/rHsdj8eWrhDvdWk3m2ygpfMcdpd4je6hHh3O3XathHqFv3Xa9WfjgsnqTzKhID3yfRBGaSKqFB71/xSL7BTEt0MPC14hpZ0n0+HpF56vIb/bmRFp8R+PC89UNtWvx9Qao3S6+AddWenFkDqtrQY6ojyacyTOv+BkMJWjywZzXo8rzHarXSmMv9xTWmR1yLdbTQdH51mu61/70AI9Rs1d85azcUcp+YV8L8kPhLTi7FvLfk6LzVV1po3zPzrzCm8iqGt61HzREmBP8LIeFn7GfRSetNNs0q4rPOJ0vCl+v3tVNomghnnrCPi5BxF5t52tUkIcyNzvGIV6Ursy/aTSOPMTF57sfuWgajVwIvsKN5mmDPRou0OYSS9GRW02NDEeja3QhvhSdsl3felj8wHJ/35bLXr2kxVf+NQ3FFR2zcim0ZdSe22AeFj4Qp10Wrw/5PqTxKzr/ueYlGH2ktgqwwDttPFN0ztr9F7U4y1nSfowG/v9LKC++q6IOrTYap9vBHu4+cqFRd3Qv5euilteGpxyH0RPjq7R71a9bxNPzwld3KaPrDIu6dzIe3BU+raIWxpj1X7zxSeEJq+2/zAbxvHs08go/WbRe2+9FmP2ChRbk+7PCFyiqAxXNVtCNSFyKi9OKx5K9G7AWZBafzFnhS5mb+4yNxkVHk2nR8SpGW/aLPVp8vZtB4UOiSqcjs7W2I9lmaszmxc9wt22q4sfRGF3QoAROttKTKPswKB3OMkWF7mi4KDrlerNjUS1fcJY2QJuXp4BcGS5rVkmnXT6Enh6s1wHFoV94Za342Gavtu56qpRGtq1ejrjC4XxJgsIPSVTqyc2WzFxN0tnsRWes1NeZtfGuULPRLDzhusVj8HpYeF9QCWZkn2Gvx7fwwftuzSZf+UlDEiMv5kQOeio67Xptv07U7CWU6+8e8m7Oig5Z7bxjNFVyXfh7VIor0jV6y+d6Mi38jL6DklujZRmC8APa1WaU5HaE1eYO1xOBe7VKQrGaEmQA1UCd4SNwgkbeTdEZd21eJb6eFv4IVPWF0fjQn2ffR0UH3FAawRi1Mf4ihW9O2doX4LrRSyeCb+ErxpXrw9knw+sAvhncopgh8UfRMasFzEYNtxu6WMYvRH5Fg8KfeXa9khsWLjjBcvTXpPCliOpMNqPKYzwofDFtbz913TAqyeNh4fm2bd7gGZ/X68W/zqrdXVwLMZnTMoQqFCOuZ9QLGRMimzmsA1z86paWzXjFmETLyn47OmSxelQvQQ9b7ZlAWphpSNHD4O+iQ27rjpvRgsxmNCAlylkrCT+jBcxjr/DunnKhxGyR1vi+8MpCyYaYjdaP/y68/Kpd240G4W4Hw/JUgfcUx9qoCXdbDSk5Ll9hIuOwDNUWysUzs/qCxBELS9CQUrkOZdRCFpBfGH/elg+tSPHHRylnoFkb7pb8TKJSdPGzrKAl5oacW3KBZ/JC1PnPmITz4mtsu01AN9zbJRBvCJy7JeCsXNrpGE2wfvdjEhSdsJI6MesTfr/16mUYl6Z2wDaan/q+TteBBivhfD/R4h+Cyn1Vs27LjnbaLHHNeOENaqVRlNl7aZPBCNWLTliZSmc2rC8JNwpPeD/QYbZIYyI8b3Tty9UVm7JSy2zWmJucFT59ojTDMJvQngyRx57iF8wLH9xXSrrMTgkVnB/onLCiQ1ZLa43mAiejwk+A2Pkgu4slNaNW8mRc/MvBjX3Chg1jzmLms60fEpShCFQxL8yOqJv8fVF0vmr3cKNBjDsck1VS+HmhVodZ3pE1wSXo86kIstnpt3L0H0HeC439ZXn69Km6w6xcTzzxb9ERW22N4RH+gwpRLjpk5cKU2eqBLeS05wtnZctMmQ3KeSRGU7Yuw4zyet3meeh5hfcElXiR2aF0nneDpoSvaFgGH1Dtvmw0xOxNC9+xT6lrNtsK2Ct+vyI1hG9WfktyT0oZ5Gy2NtF7KH4eymYQY0oC4ssufeIDlyKrumu5ZSVRImnLAc6kBHd66k1FORutw5iKpRdelq1eUJtOUAlavih5P7ORuE1RHJYrLzblTt+iiTHlif9cdMIH2tjsuZdwTgpf2lnv7NfFmb3GOn0oOt9206II35/d9euFr7y3e1HnfnyJPMJp8RMjljlX6b2j8n3ASVD4085qWOihdONIzHoeD5NbmTeVn5hXiZBjw/YKr46tCvPjoGrwclS+117hx/X19gH3jQkwm5NVhHA4R+slC0l0OsSzgKSD3FdFh66UtDSzlyin9P5o1AQ/8XWSEsznKZAgQOn7Ff0hNLUnNB/tIVzg4lcbNTq6lsnR8F8xFq/LsAXUCujsyv9oz+B6Ug4tpBg4X4iXHO0RbNvmDnxZm45K+kB6oB5IGWyj/T4SjeylZUfjn77VyVMJDudaB+zBUAolBPhgvrsoh4+mzBz6QjX80R6BbLBQDvtUewJGTs9gTdg6IKeDcM7ZgoQsidCE8KgEVYX7BSzZL/tOUnJfRz7GPnpkK1x80vt2T72W2fDRRx2WA7Vq3tTbmQNwuqwnQ9lrufig9+2YeitzlEcX9F0ShjRclIF2bz9x3c9cRqTL2qOxnIBWDiWiXAHuZ44TaNOOhVFTEtFu7Bvj2ceL5wa7FLJtDzeXbTF4dCrMn9K1A85e93m3oaXBeTAdo827VLCNwJ7ixa7rSzm4a7eL0ud+xhme+ziKS4JcbTOeObOtj1z2JhGfGe16lZQSvA0dc0kXeEbjnY7ZqZxS8rch+NeDUTlh2xD26wlKbx4vWfhaTurZm2fnQN0bXpeEtnqdJXszUX3c+2UY5eDeV6azWVDkt8PzksAGoMhvSfwUsJeyAFcG02QOHeoD342n2TVsLAt5ZcpV5usE+uRLAtq+Ttm8A7oO0VlCAxm8LTp0pcHgW2sEC9QfabxEHg2oz8KtL1p0+kpHlex9SvXhV9EW08DXuDS468qFmezzx3LgHTMux2SVg7hSfJX9rr8+8Omoyg8Zg/3AKuVtEPcj/kECEi7isqTiAPidj5QL5qWJY6kJicw1nV8nHhE/4TR+PR3KXhcUXQjyLzgo/LiAltK+JXO+2duC02Iuv0Vv71Rw5KqUZ9YreSAvi3w3lJaSmVVKHrAvcUyeCVkXX4MrI4GzX1PPBXeC+bzwpBWLMHNsNg/S19+98pyUSm+dzLer8gB+w4rfo1bp75m9nXUeoG9J/ML4c2mMkpaiuDOHY/OAPrn+uzTqRPUurUj5Nv1QGuZKNZBZZ4f/SEs9U1/nPqRPlMzRZDsFIs0sF988VGacfMUaTynq8JdTTkKxILnOqJzcs98M1+c+EjrGjxl/LQlyJb/5FU9IF/kFDUhUCtg5RLHygF0S0VZof8VW1KV9xaLCd9ZWr4N/xUTU5Xw9mT6URKpzMMh1aY+pz9kLmZVDaUMA/v2qJNIN4ITcvMOm1q0c+Uxl2FL2+tkcoMtGlJz9LIvZrcSxvpJc00bOnuIXzAk6w5Fw8cvBXenHlD11nwN32XQC8zkqg3EIQZ9vqwvLIeBKCKWXuQJLH/h9SOOy6PG2km2zED7Z1BfKeGE57HEAQcLHx8eSyHdnvx+W0Uj4Rm9vMxFp3Oo8XNDi90fVno6zPfF0mAcsKXxpSr2nNIysZVcl2qRHNHomcVx4oW7rTpDUR30xRLs3KThsJWTVym4E6sOmM+FaDpdYfM4ASSlHXjKLXqO4+E3G9Z2eHPCL43KIZ+KzFt7HVFSLDdx3JEgT9ViIOo7xDEeF1zGKZZj9qo8+9an4IRpwjotf9mZfozySGRoGSVSCeLhdwzC9Vk82fSUvZHvDXfO383gpPKlS3Lrv6Hb08LYUdR9AOZoc6IdUcsA9DHAUoRZqlwS6cg88e6vxXKArHT23DSbr9eL3ae5D0DFv/Msh8rpztfNAvu+ZXuAZp35J+B80PrQi85ckJClz9hSXw5xRskTZ+03mgf1afOIgoJvvkRfj4l/RUrMX2bNzeXD3Rrcl0S9t5bKnFd43+JVw1EB3ZMViUhLyqmb/Qnw9N/TNkjAH4aSOL/9GvVqthsZJENNoz4wv+gPQbgyfywOQ3E92ZuSmdrQc+JVZWXasmhR/kOqdUil81ZWyJ/tbg3JEpOYpOnb1nLWj9Cdnf5dEzFWLMnuWKQ/cnInXVys8C8qiXkBEhMt8mloiTle/ztOScFc0jJWD9FcoDE0uH9H4clh47B0A5+gD5XGCA3RTInkHEYPf1KxXCVYL0MsBHEY87JHx5wVnybqifnzqL9smxKcDmVINcdFhK50V39owfB72rm2zDuxLId7hHE0JX9EQF741lzLCrL77sVnod3hOGZqyl+LX4jW7ipRnbr+QB3APp7nT4l/TUMeBtDIHdXPFLS8OFP7UVHRK9qKMPJA/0pMLKocKF5229rC4fGhv36PgsBXtnf36aJ6w0Rmn8xJc/tpvLZK9L3GuzG/YpoUlGqzXAcVh8VNEfd2O57nyn3IcRmvGC38LTG3TZQf7zeAWyZpezoKg+Mb5gb+fOa71Jegc+8+neO2fDiZD5K0wj9H9xEP1Wq120pS1MA8D1Ljfhx8oPDhdLON3Cw/Ik/w2WmOfhoub9LtRva0+IvFR5uzl4+f19lQOMHX2MTUPwyJySR9Skj8Qy8yDT3uLpg0YzQfGrwk03XZKpg6YTP3QE8ufzEadDeVXVO/X2rKgieIAydph8Wvxtk/Yb2dLuwxsuNNUOsgadSdZZdVIubBq1VPxEngqZJ9C1ujX3BQvC1ux0a+7yeqDiNvxWTmqtqywalesPsmq2W+0K1afZdWqWH2SVbdTa4Ln0jFvHwguLfBcPrgmYIBLBzyXj/L3BsD0wYNp1g8j2McHU4evYRofpFOODabXbNU2ofxNWP/ku3DgQnlgbScRilX/LtQPiZ2FU2vgDVC73Wuf/I0Gc7yO6Q/yNrbRBWQWHN6BdyejunXwW9GCg7tl0wDPxp7cNMRWq+j8jg58U9GCCb1lA99c7B32VjDDxgHDqN4/vCZoAk5fHFVwqVjSNAJKBy6UesvOPurX6jW4VBotS7LSl78OlUqnfVjsfWwqAsD8rStfs9aEJDRK2ap5OEPMhffJ0UT8gMS/Sp1QQ+1eCEmMLOjh34JqA+Zkwaf6LacOZIGyYAoOcYyD1yhGLXG8f3yJExIhK1vujVCjJ8zm/S7OIfm45SckaFb23xu0VgXtS9AqQL8H1GnXmifn8BC1lPmrFrWVQNRyAJGFJOJ7RB0HENU/aIdnklEfPKFGw3yY6B2hutBFgOH0zScX3+AoXm+jhp4YR1cTQLjUe+Dmc9S/o9VspLRGJAjg8vpgJJktXq0afF5Wgisf4qrXHMAFSLzqlfLKQqtZSdeHvK7nJIx3Y7XTutCPZuGW3NG7nnio1RYKyiNhJD8wVDYW4lHb8iw08H15LXh7RxUuIgvic0t+JpHMcNfQrjHg225zoD7LGrGG8B2mu0E65z9jEs5BVwdY49RotKYTdHlesfoEq2ZjMhGbsaL1SVrTcUXrs7Ravcn/VrQ+T6vSWp9j1azVO/DCnnDoVPmpf6PTaVV0fkunXcnO7+m0BZ1Jhef3ePqdKVwuVqIBOy738OXGGp+OvHoEnY61XdWRV0ig07FQS7Gh05XNtuq1Ey9gu6olOXM4imgEl5aNq7bvcfUcw9W1iqvlFi0bF9zf0eq7RatRM1++8/3WQ/V2s9beHyY6TKKYrQjf5Q4mAY6fGF/BhWfhTNyyExp/eIO877fn032IFbR/hTYeIG90BR1Zb39olYXC+w2xVru1kbGTQ2ic/aCRQCMbMcAjeCh05svMNgw7H89MhomtoTTabdTNFwRNlq+RbBz8q2lF6x55MeNY7akOScAsOACHoD5Ua4XqNmsQW5E6OxvE1gKMzcImvR96qC2LGcF7AhasDAmn02j17ie7pJ/sTMj9XTN4qKgsaK0NqjSO6hQqC5pKoho2GmjcRJvJznDpWBIkQadW4fkXPC0X6FjbWi0nhMcank6F51/wtNxQPdbwSOlpgMdjwZJ+HJyftOsNuEwsnFaSSadicsik24LLxIJqkUy6zVbVNe4QSreCsg/l4Rw1+oC3jxWVIqC0KyiHUDoVlEMo3XalaT+iUqnaQyq9SlYUKmT2Qbt65NW7NbicbGia33BqQuYESJ46FafT5fr0aoKEA9m+/NX67n2nBECENHtJXE2+iifl4b1GMVkhPx37ex76AYsSDrgcIWsyLyc8XUfw1FtWxCfqtN3gkzW893U81+ETDekZDufoYnQHXe00zMnNhLMbcVQJfXzTadT8bUR4I05g+RhUy+/5dCo+/8qn14bKp9m1zmd0U+/U0GUPDhRd7yIXKM1GjVRUDqh0KiofUllXVA6o9IDLSlYvMy8qsGXFEpV2ReWAShv4wWwBinfTaNYiUFR61nWtgNKGDcWcpOxaCg43lcHoIiA/T+o18e8IDh0bbhGdrU6vz8aoXq/Vag8DdD/xAAHRnF4uFqZBpF2rnTQa8Klk3UV6VLrtFrph/mYvRSwgaIxDvIBclpdV9+oBuhfKBcdogkPyi9FfNK74pHyaDuiZrPPJtYB0HACSNfKtBWT+U3jOcFkYVbdCKuTBDBhH1pyaLo62TKZdPcAFYlR5CCDddiUeWxo/m8LjQeMCFd9p4mg3KxzvcVTS8R5HR0pHEy4OoyftFgdg6TCNA/hmMY2jD/iUNcyiC3lytXEW7UqJ/sLRE1rj7zZcHEY92Z/NfoXj+ZSJrwE5vSUxx9tC2r+bJ40zePd5NQPw39OFagIaTprysvxgOhzsqo6hYVKs1nrG1qK5YepWmP4T07Rfg01J9YGyTk7OD1OtgvMhnG2RpNTZcNFktXPyIbPG3EfT1kkdvOhY5rM77NGYzZMAUK0tiDP/jVPxepzkwufvljzroaOxssX+7vxCU22ufUKbbXUuWwKuOY0IGrdcOOWz5kxyp9R2gVK9ZQNTddb/G5nqlP8PQvDP96zp67zItMCTyVp9qEsmCbcue8eZ+8OGNbJCaHdXfzdt/fznmsuRKRtlhBqtNarX0OXsHBBCy3ppn+C2Spr+Q+aolZL6DcsK4AHAKqL973hSN+Wth2clR4egRjjGQyLN8O39/5m8/78dmdXsAGKlWbaSA6udWqrXpJLaMuo21hWkDyD97+jufUeJSxyTF/wKr6uEfWK7SHfjBHDhi2kLfY8LoMtkAOxzJzIjFveR4HIDF4zpMIkEs5nYhRrycpmwhgac49eK0DtC/+fCe6PUrTcKVGiWN5wmZDiG00QCzgXlBE3roC/LmFfFKZW/G3VYVBogqLSAUYEhKy3Q94ks6ZW/W52SU1nT+Sle0BiL4yc6HWz/Jv5jcSBRztWg15pRGck4/0HCONq+tiPjp0EO8YKwEWM5PfFGQTljccxW735hsP0vY7ZW+aloejUlkHOIZr35+wEZ8fpuXVEObNC3QegvGf+fiswBmSFnUXRyRvCqonNIZ0QjHyqX5uGxZIyLbKxATjYB5QmezwMClVLLovRcpt0nINOxubeuSCA/PVQ0HziVxtBcr9YkCAjYA8smmwlnsOD0FR+q2bAHZ5rwGQ3BqhtjR9Z6jTmOkwiRgKzkqk/HOFwyNc9pDYz0d/fI1LLtqN36/mjUzrcrzAOSx/xnEktXYtueTawU3bJ//gEDrrnPLePpfixsyXrNeIzOpEdHYiCo6qqIQUJ1QxZAMDXaIHfiltMdDaGAUnVWI5syPzIo75lyODvPvnaXC+T0KVmQ6HT49nep2kfEx2ltyzfP5+QlDRyxgM6RtxR2FRTToX6gvjIx/LXkvNAJh4UulshbEzIHA0kVtGxK/hiQJoQ/MSG9BJo8AUSViM8Lxo0BuOHe9BNYoQLIjKSHh3AGIcUuAe4+YTCsVtX2+zdCAK0Ci3LEVmnhPeMROkE0YqdnAXshaeLtAodQAWUUo1+LFMbntfc9B0y/3lOiesB+kqzQJFmtK2T/jQx9e5NZOKFy4MRGVPwexwswGU3gvM7/L/FjONlx4LQmNIpZWMH6FCwZvqpQfQ4Vk0ktcT7CSd+AJxZj/lrB+hSs1JeuWH2KlcyisorVjhVP41QRWnAazoVCPx1uXgEK6IMSzH/js12dgHO5XV9+hIT1zuCqc1CgrjCoaAxkVNerNfbjCtUnUP2JwZ55oDhtjM8K1X+gSt9qiHZvi8bYF69BqY2BiG1MgyDN4CSBWBH9p7IaMsGqzsWvUauOyM9Qq/T+Zzk90BnHcoUVqh2qOafiHU5H8g+gUDJe/kiXkj0x+B6EvBmT0Hnat+sMcJ2QBTDb+KZwiH+QV8YFngCsgjbM51Xakt/FquUxtv12uMSr2Sa7LDPwT/L1aqNJXlcEx+k432QFF0i2IJ0ekE0cXAhIskIbdSyEZpqsZoEUpEpBbzF5a45fKxw7HGmQ+5e8yGqxX9+N2Q8pOzvNU3ZkT4TMJbOL9M9d5glN8QzO1c56raWjgjZL+zoaeS2PcbkOHKDNm4EBo6WbjwAGfRsTsV5AufGmwqhtH9F2jz1g4dVDwWRZlDYnGKj7eCoRQ4JD41jsnuj0TJg48/TsAsKjpXU8XWzXpQGEE/wcLzlLFksgSJo9rT2jjWQY4NVa+OMXAQ4XRHgOyTqAc6uuradR9OkwASeM0hZCMIgoW6hnHEglH+9wiF2zIrI7JongiAgsKOjbiMTCdpELOxG2DHsqir2SO6jzn+tALK3i9B+cZKu7kzsS0SjGIdwwKSxMaRij2om/RSesn/m7xh5AyDS0HIjcuIyS1epV0PkBJm7Ra9sFkwhBCaCwsOxWXbEIjMetsMjWi0sfxXW4uS4EBIdCw7RgXMul+UupQ2QweBNG//YrLAHl/LEdl/iY03fhem7+eh0ioXB8SCUWtpG9wal4bHhw+kR9giay92jFJGVyR+aJD8Zi6do15e6SdZxwAmnP2A5UeCR4OhGKRBavhQt0RwKCI7JJqgBBdJi3bBlmRAMSwtlEdVWnGJcZ8VWc0BvHCAgUu66QF3NMQzASYjlAvqMB63KbZSgPYm1ASNj2lR8oeZGHzWWAowgIE800db5M0LcbOaEEUPmHrejkUpZykp8bv5DL3Fs4J2EERtP2dJSKrFOVHTzflqeNZ8QS6TtP6JqgtAr27b2B8Orr7LL8eZ0HxI859VNYYCBpGnj5Y7qgP2VjRXmsC7WEpsmMRDDlS9VT2Y62/MldYcrXNATHqf+f8xHNYoK0/YDp9P19Jm1qGmy2IFTjAII0vSd2QcNQ6K+K2ReZ/bFpYAkVnfXj8YBdwDbRNPEDsDf8oAlcGrSvYH0OlremvDDdPg3g2rNcoWKzLWTpDkQ4nKMLLquonDDwMw6oy5/aHZkJgwwMH9Wwb9qlk/YGT2VKbj1FpFAdCLTOvkxla5VgGlqjgpYdWrOC9iG0TSZvImPOINV9H9YRubG7YKJST8Z+pulb+bOaLml4ckGDFTr/gdeMA7pApDfkNn9U9ycf6CwgrIBFCu+RJ39r7lIQ2jSzFf0pUV2HJzc0JGh7T3osX4VCqK/lMaZL0ebixVh8blhc9DxpPS5/hQQDasrQtYhC/NcyfjfBMZQ70o2ODRzrZLWOTof4B41fQU3kaTT3NWwmW0cu5MssyNuwnRQIGB9W2S6drjUiYBzUxh6Rrj0iULxPazIi23iA0h9aZQI6JC5xhLZj4WCg6DYsyYQk8W7yGwwaB2WAxg6WS4I5pC3S7u5HE+qmQFwxTv9hYbxVnkBw1NvKFPi6MSBFuk+pw2FCuLzGH4gPDASFGs3tm0KRzmqCtD1Uy6JjngQYu1N1TsztEC+ZrYSbR9MaYDjCUa/tA+lmur+lB0TIBWAS9Z6xjSK7ucKZRNLfb/mWLQ+mgwHedOF+f19bGDtEHrafFRKMutLspd4ytUHQCZrT8L3vDgWJXkx4i6Q2ur7VAvM2M7nC8h7Lue+nEuOjR8YrNvts0ts1bIUXIYFjtAOBI/39ish7Ilevc46ToBKUfSw39P8ldI7+JFCuDwPhckd8uubMT0vtKzR7aDYZ/80g+grNezRpvKBCskMiB1sLzbIJoHzbqBqo9fFfxPOVidbv8WzQvPMLKj4f8HlzDyo6H9CRxl4F5gMwlcb5LZrNmn6k3crWAfbJihSm0XPOpDhbyCyyhLWpVaowfYBpz2DeGocVqA9ApTZiReY0Imuclu1Hp5d8UwPo7V76Q46dJHEcvB9FCYOYXnX/2wqzx5Hf8dqMl36Hq0KzQ7MvQvQJbOMPu3SEy/HqB4D65wGjowSXK0r/RinaXHWYcGkC0Fj+rAKWEZhUV48EjAUOjNuE8BUOxYLRON2RFaYPMckuoAmnSJiYyUyYTBWmDzGJfVYh+ggRC+icPtG0D1jAIgImdAKNjpyNULF5xyadDLvbU6UHI16TjusK+0sakuj0/GfMk3SqMLC4SF2nYYS3WaZw/8fbheZJClaYBByoCQkC4Zn8I18ENHBCjScBACVjt+A2HlRMd0yIFRijCB6m7Xui7Tuib7/uE1XQPg1tVxtcIdsi+yE2Hwmi0zMMpdZImRyUrd3Pw2Y5OhjQt2vvOxT5sAyDcxLI+NCIJ1BqgJXb7xnTRvkiASUqeo00tMEk4fN2Mk569+IsXQkUNprJRl04AorwKWKCpjh8hoJEkZeuUdUylIZLOllKbKWUivhzKCxlwqEWdnZNi8xvAaFvZ4yBiUSrnLLNFTg2p0oLfRLVDVmA7SBdr9lRTuhbGnpNBwVsKvrSv17iCFC3bcVEzDZ6SBfVdjBTdcAdgJHmIeMI2mAvrbaXulAuGPfJ/GTE8VMsyLC0yGoKqGmQcme5n+nOsjadhIfYh3KTXclhWEHRgMnC8LmdttYSnz6AIhrN/ZZBZoMSksYVC+A09OzaDNFc4eBpMxZx29pz84ZA0BzYcd1MYxt04VyHckY86PNmv12IWRfzT+w/C5tt7ojoZGquo8vmr5D5zycsiSGFPtt1i5oGUjtppZlKr2cYhNwtdwQDal6n5gkydZfRJSJrktBZEjwjTxDBCyh2it7sa10qaV474fQfoWFBq9aGWXN2wtkaDRbb4mMYSKwqFFiapGXTnH27eQUpjmQ1vr2pbxxxCubwtcxjc8Igb70kHMpBYzc+sAvlgz5kzLo2gNSHVX0qOcDOFmbrv50Pj7dsxRmOwFxDVDtEWgJTFW/8O5o7xp6ggulb5pJOqYQmO/sxk7pZH3DHSHxyOFeaDo5mC0fSFok0WyCfTj0LaEZUfkDYisYuFik1jhxVDQukLnAQEWBgFCu4Xm9Y4BKwTYsgyFvLvJ+kgAGvks0CApQsrLf2lXCmiVa5gECPNF6iCfafAbWmtUplM3wCWji72dlnYjTrLltBoG9nBFJTPyXfYR5Hau9WPFIe8k9pzz09CRdAwBlRvCJitWBKatVkqlGV8otPau9uzDh5KHsJf8I+QdfhnMpeh3DuFCvGXc8mr/NwU6N9xtPqFjAy1bHpQf2G0aYnVOpGyeHs4kyHQsvqtcff0NoiOtnVkW3Kp8AQa8AjBulKieqANow6oL8BdAdpywEUIO+ZcjgqHKQITZeyQV0grIIoCUBZBTAEiq3AZPj6+2Xz2UYw5wXkIgmCk2kyIwfn2ZBROG0xGjajYjtWEwrmeAchOx5ZUQdkp25adiLx2aJTHFKhiKPTMznwvP7fMJ5oEAxZIING4n/UrKX/iNejmLNnsvtJyNLZpl8EdQD8QK6UeaWHR1q6uA9ppT8ZbFaty6vhCC81n/zBQOijAxsR4o6A9RQr4LCy1gwvVwRsF2z6fezp+LzYAn0PhfcmtKyj1A5rp45PLfE/UXIIgtZbO4XdCXmYHzg6rgvhxqArHPvCf3l1hJsiZR8Uhxwd218kDD9T4wuRV//wBt/ReY0Ziz5RJQ4Dl2KLWRCvW4aE9o/cBGbDtvDIZ+apg6B1UMRlwdb3AhY7Y1Ps9wLpWbApvBA/O6q9rGzGGM8+0ySj4rXhNSXz+Ss6+9TAdhDMOv/ZnudozJ4Ym8vun46Q0pauC7Her2Ia4jB6uwsQEFfMiW7LJjP29EQc1V2dzEejDqkRp6GsP0SPOHYpEGZTuhRmDUeYdTsWmV3gKEbpG7gBS9mUH1RhHROW+IKm3J0YmELrg2thR6T1V0ifnNH1+0GculFdf0eiGCcch7Ezel5tjmdUZ73j5YqOV8pE6rXMUcIvAlsSHMRLH3NyOgjEZwtxOpV+TObUp6Ez21NxiTIHDa/eMGgyDIXsLUlEsSvklPPSHrkoolEqezeyGXco7TTvVfztE33nQJDs6ZppeZE845iGjkADI35DzOdUrHnhTBpOiW1kNnRzJEeQF+OnJzTgxBm91wWyW4c4XiKxOle47YvdR11ITIGTv+BK2qmrWwCUF7URwU+uMOuDYcZXOHbqcFDQZa7Pyw0dFSuLnQl+q/EQa+bI+aujrpdVZOjRoWK9pmYWLy9uF3hFg1c04dgX63BG7HRTe7nhozyK0YA6GiC3B+6ShEQswNGjwd5+3bwPOp8nm/vvjvKzJnfifbg7gfR6TTknMgeG8+XWcISbKm6Zi7tzw8aiNY1x4IzEwdmoO3KuyFxPN+mVF7nr1SoJ6T/p8eDM+QrF278On4iwhFkSoRGNCHa1ct4mwbUQPfExXQEHJXNzLT5gGMkcmAyqu0IPjtil+evAteR1tw4E4F90HhJXQpxgqN0koTt3hRRo1pzYMV6tmPiZK8l9MEou1W1ppxvxQddyfgN3BaFyk8haoHiH8IbOOHbn2i00CbwjPuNzZzQfHHxhvGk1GDhzCVC7aj83eHfXjiADE3+6JQl3KXUNRtZuk5hTlwLsutcC8wL3PfRdEjgwJ8P3JEYTpwIn7Q4QkZssMV9h3xWRazeBiNxk+RqlxpxsoInXrvBTXQlrcndHFlSs3Kk8LJRgpydeQDc4XCSfmpUNAp7a+K5nLRvrMZ+KfesR/oP67tTXQUnyeAlfuNNy66BpjTVu09HIEWZg/Igpc6fbz8EI58z3XPOidh+IYzViSehMXZ2yRa3ZJI9LQgJ/iSlHA18cDRGdBcSZ6pPdhX2gGBuOYrSm/T7G2HQEo9p6w6w0hjhOZGE75s4cINrBlNt0zV+H9Weypu7kxHq6lwB0cY3xWmzHG3cuhfVsC9gYc2e8LeusCPcTZ7ysXdt/e5uRORNF0j4YdVndknWcOFPipW2O6eKaBEnMHIHV0Y2O68Ly5B+u7ER1pKLxneiF7OUpcKdFr/W96CWhM+64dlI5D1iuON0gYLniWls3TiWsVgXrc7CmURLiFXUFl5IfNo7rnuMwccVN7LQsq60H4hAs3Tt+X4a1JmwdkNMzPHt1xnxQ3MR6rZEV1yRdtSYuVwyIrm7yQ5fWcInDRdp5MXaqpkU316vNjYViwYnvEDM1kGpc1i7ICjszp0S7B7surbE7rNSWFW/fm6Tljovd1I1H5AHLlROyqRt31oaVrFauJDTUJuzGYU3InIgVU+zMoagbTNUl5i3Zi0PjXNR6WPPKawvMFf2lBnKM+0OeWG0QOFMgoVa+Zr81rAvsPqQR+ekILjUCbdzwesRiKcJ/vGNs5YwWU9zuL/S0zhWbK7qsp1vMr08tkOO8HMHVtm2NPbKVQ25RS7vRfD68XNmNLWviFeEnEr+enlG2xP9g7krBfr2m+JKZJ2h46cK/TmyIE4cChtrZbW1cS7JKL6s+Erx2FlvmU1IX2wUOgo1t4T+7kmXTbracBzSWxMhbksCdcnLrW/SC4wV1JlDd1a2+18V1hcN5QNAjjZdOdXzU7SKnzY0uluiBBTFeuHOzrWX7INij5oxZqxuRzZWaM8V1ugVQutT+ImSNRs5c/dC+h6XL69aV4nzrJsYtC0+uWUj/SW1aPKdOFaoo4y4zx2f16aHzMHZmXwKQNuStmENRRuvu5q+cLxpyFkUOodMtstZF55o2eyvn/PJsGl1iXkDX6MqlqGNXO6ytzSxmnKA7YdbG6H7tjPvUte0IKNxccaAsajWfktAnp2JFjGNBzxmrQxvZZuUazMZ4ERJX2oB2dS+Q5MCL+sLY8NnalRia9qUbfWa3iR8Q7E6xmX5QIzdkrip/C1L2SMP5SrBwhJg6qN0ksTXjcXQ6WK2XNCbYobSTbumBl65cAxn3l+5081RFLLse08R1hiMyw85syba2EtPlRUPmJ0GJGj9pE2PCI3/BwbMrwHSvd+UALEY3OAl9Rzv9tTNXsusiG+LV2qGrEor12jWuxba8HDVd21Z4PVF3ijJsWxWS14K71LFZ8SezR6+1iYXMnfoVNXeZvVw2F1yu6C/1FnTLvAJLuy7f0CdX4ojaLfu1iQV0NXMoYamdHdflJRO8aCh0fsxfkfdMZU2Go/rsC8nLY9BzRb2psmfe/H/1A4e2qnJ4Ghe2EeUxOqPOdOlU5csCsB8OiZd2NkmXFnsJl4KEc4eAImbGjVoVnKP637xCO/9JuE+jSp99ktcF5eSFMVec84POItnrpLSBRUuXVNnBkLjsxcU5EXNGhym1eHXj2n9HbELdSfbadtIlMzQMCA4dss/2Ja1jfGtessCVCT/q+Afjtqxk5Y5oabcV0ccVzlmAHcGlPTpaF9cVFvr+MqBzd0RMYdbpGGdGn505H7Wn1+QAyyHRUoKwxg/GK8ZlMZT/jKYcU1dKoqxH/q99grbGa4Xs88i8Zxw7hGzftPjKXSVdZsK0YBx5L3S1coibbRvjTxLLeKKjuIybF3/hV+xMpaJtNXZDnwj6UxyYzlxPOgiMGWc2ZjHjM1ni6UowUREz88Urv5A13ETWNK7GJtQPqe9ayzLbVRhbalMs59I7uj07xp3MPWqO7lDzFYx3OFwQvhuu5I602S4tVrg5I2+6s+K0uTH/GTlW1Kg9aSkfaHJIgkvjvOzv0XSsxCzALgW2bZdN3bEXaeO6gks5P+vGcSWhQ0lftWON+S354Agp1Zw1XkzsYRqgM4d2onaXAm1gIY0xf0UjKl6JcODaxFDbroAnPppwoB4oeUkhOcJNe0CaPrdkhpFbxdmKrBnPcXqERPjFTVpt4wEhjwRP6DJJCzSqpHAmck5HHo0nN2UymMxkpwx3dFnHtnfuPVP0Z7JaO8JrV9Bij1dA5g7Jl3pPzngSRfAia6n5HVNmfdvKbIWDjQvlVhsb+7cmvDANAvG5s8Jm3tAQyFZs5s6kIdUFML89BTGh0hhx5yhQu0GYl7KEO3QPQG1hZh7XtkjPnbTmvq2xa8togVjDFWJKVVDmYdw5EHNnQ+p3+tekNSVhSJ3pWWnbqKhCPRlgybi1I6x2sX1rLvijUylx7flB2rTEB4vSZhgVsk8iW+KApKkkh6DZbuos+9JHbln41uWMsTm6xPGScIeoWSuMiom/PB04VPOvuyWnYsEanBz1gvqZvSAdTkO8Ihy7KlPZ20TlwMpRucoej9BiRYIATZabFbpAq6Vr1mvRYqsVdrXRtVnFLlCtE4cSabqjM7RYceZMYtumTJ3/X+K7UjGnRpkzVxpqgZK2ujuDBNX4stHNlzZIdGjeg26bLB1WY2dDpV2j1vqEvbhz8tUtnnxy9DVzBZRSoZq5RkkLlOe5gslmOGFKArKW3owznnJrP071hXRhPrxc8ZabupWo+eBqOoJLmdH81l7ZNK+WK7zqILRX2xFcVnfjvXfmCKaWbjm4DqYHOicMbYKijvBSbIiW0TPxEW+ac4+xL/50xS/s6jad+CoyjsM0T5heAz1tocclEWrMGe9HCdNkPx731q8PcED5DLuSZFWH3fWz+0T541sH2CH7X20flj1OcSyCrngE9dq+C9XOHmo9FkJXvIS+dlLtWARd8Rv0o2jHIuiKK6HdNetoBDuuENzfxV/x9Y+FsOsIQvVaYCt74UreCFezRCD0XfFDtFtU5g4w9JeMu2MP6tYtHomfK9ag9pyqI/FzxhTUrTY+Ej9nDEHtQqKc+Z1R/9V3KCADzQzc8nPnANFtqncsgM6cINp5/iMBdPQIaWfPoR0JoDNniAIQjA50JpawfwhnbyaXO8AkcvUAAXACC3iOHh4N+4eHgOfowdHM3JPpGPBcOTR6+xHorxSS5UxviB0KuyidmqwrPQnPFaWnRk3tb1xJz1WtB0L0XNF62o0jjwHvhvnOzBVU6l+slx/IFt9zMkdXdLF8wa+OYFSb1lnfwxeEc1fgKTLYsR4vkFfCYp64s4mVE8R63veC8eeAPjlz/1A5RKwXEF1id8IFHe3a5iPAc8Vy1q/aPQI8ZwxnaFVrEp4rhjM8yeMsCedIeVs3YKoWjPWc2xXmM7lwF+llb2KfOz0SUJ+t3eleogZgOtYDMG65bx1oRRt/ErJ2xgJUs23WhS+l54oJqN/8JGd6N2LrxkuWRA7VvEDbv+8YuiKHbWgG4ZitydxVEbR/CWmDzxXpA1exMWYx42nVi5sEO9YzIRMs1oGD4BV5yWxF+EKI4yMn7kRVldSIdaCyWRIWUonSXuluUuxb39iez5hD+JRqXvv4CI7RGQlcie33oF3MFADRRF6KcwQguAtd3pK66xtbjwym9JyxCqGVok5x6Ir5osYE29bDqlP8kzoCD5zVMmUvaOBOQFXhZ78iQbyfH7t0DVhpX2vd+dgBdPTosF/YJufMhc7IXxua2bzB54r0dXSnsh4HnzOVHdDusG7weS4XJYCQwZUzClB13CBYMCtn9J96gxXABk78Z3eErw9O+CQ+R6WvBUDzSXzOnL5K9137zm+Kz5XKSnC3WDf4nLm7r9ygtp5I3+BzpQlgF1zINMXnSgNA9eiwfvLeh0RAQncMOzp20H7C6IEsqexe4tSdOAWilfjfDxKcDjinP2Q7/ItA1rRFjvA7mHvyFQ9ErF8LHHtB5zhyJVOu3oL7it2SA7Hbc1d45XDS5sFL7PGlI8h2MmUb2aMjvPKoa86Bl+fMlgTCiyXVlsyIrNqSmXg9EnfsCqW1knG74gwvFnjhTL2dYoYZN1zP3KlxUkXrK16SJis+Ixx5S3cGuO/r+6+1idNjRnASvyIPB+6kUjvWoTH2jAbhXNoWAg91S+aUM9O4SpNNue7Ep8OuTC9XujN8bZSLJrJoSV29JvGlWgc9XAzHaLh053aTWh78pcmHesgSzknov6Lzn/4Sh+4YaIqsGbdnh0kkFuBKJFa10b6STdbCNWIvYRRjyl0lZlzARpyGz2nMnyXi0KSumGk7X8neqTnaJkumLHHm6GxYPjrPA/JDXmt1hFdHNc2M+wLnkfjUDhFTL1J/paIjH2BIngWuUFNOAfP78o3avTOOpmKamd+aCWeOsOopVxSMB7LPf1JnQthKAMO4RXYlzFc/cQVXu2f7iLxiMXEl1qOW+tiBha7DJ8ZXTl1wUZquGz8hr1crKl6ukGVA9kvK3LmNYTvl+x5awxFobdvVUXIIhzPx624Od/U0aUVxml+SIR9HK437X7njrUVtnEQkWblCK4eeFlq0bhmaYC4Di64Qs51V2uJy5qTs5jAGJxdgrpyS1k2LiSSDvj8J8198QmeLyixsTYfOyTzam+vBEpIlPpwjuLq2I2OytMeZZKUiW8ZtMM+p1K7tOzZTKryiGI2xv6TOtKDsWY8nbrFNEu4vceQKN+t7c5qEoTNxWOsJkfu1W2Uqii7Tk6726P8D";
Sidebar.prototype.gearImage=GRAPH_IMAGE_PATH+"/clipart/Gear_128x128.png";Sidebar.prototype.libAliases={aws2:"aws3",gcp:"gcp2"};Sidebar.prototype.defaultEntries="general;uml;er;bpmn;flowchart;basic;arrows2";Sidebar.prototype.signs="Animals Food Healthcare Nature People Safety Science Sports Tech Transportation Travel".split(" ");Sidebar.prototype.ibm="Analytics Applications Blockchain Data DevOps Infrastructure Management Miscellaneous Security Social Users VPC Boxes Connectors".split(" ");Sidebar.prototype.allied_telesis=
@@ -5638,39 +5643,39 @@ this.createVertexTemplateEntry("points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,
120,80,"","Manual Call Activity",null,null,"bpmn business process model notation task manual call activity"),this.createVertexTemplateEntry("points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;rectStyle=rounded;size=10;bpmnShapeType=call;taskMarker=businessRule;",120,80,"","Business Rule Call Activity",null,null,"bpmn business process model notation task business rule call activity"),this.createVertexTemplateEntry("points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;rectStyle=rounded;size=10;bpmnShapeType=call;taskMarker=script;",
120,80,"","Script Call Activity",null,null,"bpmn business process model notation task script call activity"),this.createVertexTemplateEntry("points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;rectStyle=rounded;size=10;bpmnShapeType=call;isLoopSub=1;",120,80,"","Call Activity, Collapsed",null,null,"bpmn business process model notation task call activity collapsed"),this.createVertexTemplateEntry("points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;rectStyle=rounded;size=10;bpmnShapeType=call;verticalAlign=top;align=left;spacingLeft=5;",
180,100,"","Call Activity, Expanded",null,null,"bpmn business process model notation task call activity expanded")];this.addPalette("bpmn2Tasks","BPMN 2.0 Tasks",!1,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))};Sidebar.prototype.addBPMN2ChoreographiesPalette=function(a,c,e){var b=[this.addEntry("bpmn business process model notation choreography choreography task",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"points=[];html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Choreography Task")}),this.addEntry("bpmn business process model notation choreography choreography task loop",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;");a.vertex=!0;
-var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopStandard=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopStandard=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Choreography Task, Loop")}),this.addEntry("bpmn business process model notation choreography choreography task sequential multi instance",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiSeq=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiSeq=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Choreography Task, Sequential Multi Instance")}),this.addEntry("bpmn business process model notation choreography choreography task parallel multi instance",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiParallel=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiParallel=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Choreography Task, Parallel Multi Instance")}),this.addEntry("bpmn business process model notation choreography sub choreography collapsed",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Sub-Choreography, Collapsed")}),this.addEntry("bpmn business process model notation choreography sub choreography loop collapsed",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopStandard=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopStandard=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Sub-Choreography, Loop, Collapsed")}),this.addEntry("bpmn business process model notation choreography sub choreography sequential multi instance collapsed",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiSeq=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiSeq=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Sub-Choreography, Sequential Multi Instance, Collapsed")}),this.addEntry("bpmn business process model notation choreography sub choreography parallel multi instance collapsed",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiParallel=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiParallel=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Sub-Choreography, Parallel Multi Instance, Collapsed")}),this.addEntry("bpmn business process model notation choreography sub choreography expanded",function(){var a=new mxCell("",new mxGeometry(0,0,400,200),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,400,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,400,160),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;verticalAlign=top;align=left;spacingLeft=5;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,400,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,400,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,400,160),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;verticalAlign=top;align=left;spacingLeft=5;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,400,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Sub-Choreography, Expanded")}),this.addEntry("bpmn business process model notation choreography call choreography activity calling global task",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Call Choreography calling Global")}),this.addEntry("bpmn business process model notation choreography call choreography activity calling global task loop",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopStandard=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopStandard=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Call Choreography calling Global, Loop")}),this.addEntry("bpmn business process model notation choreography call choreography activity calling global task sequential multi instance",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiSeq=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiSeq=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Call Choreography calling Global, Sequential Multi Instance")}),this.addEntry("bpmn business process model notation choreography call choreography activity calling global task parallel multi instance",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiParallel=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiParallel=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Call Choreography calling Global, Parallel Multi Instance")}),this.addEntry("bpmn business process model notation choreography call choreography activity calling",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Call Choreography calling a Choreography")}),this.addEntry("bpmn business process model notation choreography call choreography activity calling loop",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopStandard=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopStandard=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Call Choreography calling a Choreography, Loop")}),this.addEntry("bpmn business process model notation choreography call choreography activity calling sequential multi instance",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiSeq=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiSeq=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Call Choreography calling a Choreography, Sequential Multi Instance")}),this.addEntry("bpmn business process model notation choreography call choreography activity calling parallel multi instance",function(){var a=new mxCell("",new mxGeometry(0,0,120,100),"rounded=1;whiteSpace=wrap;html=1;container=1;collapsible=0;absoluteArcSize=1;arcSize=20;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;strokeWidth=8;");
-a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiParallel=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
+a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,120,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,120,60),"shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiParallel=1;connectable=0;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,1,20,20),"connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;");
b.vertex=!0;b.geometry.relative=!1;a.insert(b);return e.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Call Choreography calling a Choreography, Parallel Multi Instance")}),this.createVertexTemplateEntry("shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;",120,20,"","Participant, Initiating, Top",null,null,"bpmn business process model notation choreography initiating participant top"),this.addEntry("bpmn business process model notation choreography initiating participant top with decorator",
function(){var a=new mxCell("",new mxGeometry(0,60,120,20),"shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;");a.vertex=!0;var b=new mxCell("",new mxGeometry(40,0,40,30),"shape=message;");b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;elbow=horizontal;endArrow=none;labelBackgroundColor=none;endSize=12;endFill=0;dashed=1;dashPattern=1 2;exitX=0.5;exitY=0;rounded=0;");c.geometry.relative=
!0;c.edge=!0;a.insertEdge(c,!0);b.insertEdge(c,!1);return e.createVertexTemplateFromCells([a,b,c],120,80,"Participant, Initiating, Top with Decorator")}),this.createVertexTemplateEntry("shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=square;",120,20,"","Additional Participant, Initiating",null,null,"bpmn business process model notation choreography initiating additional participant"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;rectStyle=rounded;isLoopSub=0;topLeftStyle=square;topRightStyle=square;",
@@ -9706,7 +9711,7 @@ DrawioFile.prototype.updateFile=function(a,d,c,b){null!=c&&c()||(this.ui.getCurr
DrawioFile.prototype.mergeFile=function(a,d,c,b){var g=!0;try{this.stats.fileMerged++;var f=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),m=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=m&&0<m.length){this.shadowPages=m;this.backupPatch=this.isModified()?this.ui.diffPages(f,this.ui.pages):null;var n=[this.ui.diffPages(null!=b?b:f,this.shadowPages)];if(!this.ignorePatches(n)){var e=this.ui.patchPages(f,
n[0]);b={};var k=this.ui.getHashValueForPages(e,b),f={},l=this.ui.getHashValueForPages(this.shadowPages,f);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",n,"checksum",l==k,k);if(null!=k&&k!=l){var p=this.compressReportData(this.getAnonymizedXmlForPages(m)),q=this.compressReportData(this.getAnonymizedXmlForPages(e)),t=this.ui.hashValue(a.getCurrentEtag()),u=this.ui.hashValue(this.getCurrentEtag());this.checksumError(c,n,"Shadow Details: "+JSON.stringify(b)+
"\nChecksum: "+k+"\nCurrent: "+l+"\nCurrent Details: "+JSON.stringify(f)+"\nFrom: "+t+"\nTo: "+u+"\n\nFile Data:\n"+p+"\nPatched Shadow:\n"+q,null,"mergeFile");return}this.patch(n,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw g=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=d&&d()}catch(x){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
-null!=c&&c(x);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,x);else{var v=this.getCurrentUser(),y=null!=v?v.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),y,x)}}catch(A){}}};
+null!=c&&c(x);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,x);else{var v=this.getCurrentUser(),A=null!=v?v.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),A,x)}}catch(y){}}};
DrawioFile.prototype.getAnonymizedXmlForPages=function(a){var d=new mxCodec(mxUtils.createXmlDocument()),c=d.document.createElement("mxfile");if(null!=a)for(var b=0;b<a.length;b++){var g=d.encode(new mxGraphModel(a[b].root));"1"!=urlParams.dev&&(g=this.ui.anonymizeNode(g,!0));g.setAttribute("id",a[b].getId());a[b].viewState&&this.ui.editor.graph.saveViewState(a[b].viewState,g,!0);c.appendChild(g)}return mxUtils.getPrettyXml(c)};
DrawioFile.prototype.compressReportData=function(a,d,c){d=null!=d?d:1E4;null!=c&&null!=a&&a.length>c?a=a.substring(0,c)+"[...]":null!=a&&a.length>d&&(a=Graph.compress(a)+"\n");return a};
DrawioFile.prototype.checksumError=function(a,d,c,b,g){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=d)for(a=0;a<d.length;a++)this.ui.anonymizePatch(d[a]);var f=mxUtils.bind(this,function(a){var b=this.compressReportData(JSON.stringify(d,null,2));a=null!=a?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement)),
@@ -9786,11 +9791,11 @@ StorageFile.listFiles=function(a,d,c,b){a.getDatabaseItems(function(a){var b=[];
StorageLibrary.prototype.isRenamable=function(a,d,c){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};RemoteFile=function(a,d,c){DrawioFile.call(this,a,d);this.title=c;this.mode=null};mxUtils.extend(RemoteFile,DrawioFile);RemoteFile.prototype.isAutosave=function(){return!1};RemoteFile.prototype.getMode=function(){return this.mode};RemoteFile.prototype.getTitle=function(){return this.title};RemoteFile.prototype.isRenamable=function(){return!1};RemoteFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};RemoteLibrary=function(a,d,c){RemoteFile.call(this,a,d,c.title);this.libObj=c};mxUtils.extend(RemoteLibrary,LocalFile);RemoteLibrary.prototype.getHash=function(){return"R"+encodeURIComponent(JSON.stringify([this.libObj.id,this.libObj.title,this.libObj.downloadUrl]))};RemoteLibrary.prototype.isEditable=function(){return!1};RemoteLibrary.prototype.isRenamable=function(){return!1};RemoteLibrary.prototype.isAutosave=function(){return!1};RemoteLibrary.prototype.save=function(a,d,c){};
RemoteLibrary.prototype.saveAs=function(a,d,c){};RemoteLibrary.prototype.updateFileData=function(){};RemoteLibrary.prototype.open=function(){};UrlLibrary=function(a,d,c){StorageFile.call(this,a,d,c);a=c;d=a.lastIndexOf("/");0<=d&&(a=a.substring(d+1));this.fname=a};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(a,d,c){return!1};UrlLibrary.prototype.saveAs=function(a,d,c){};UrlLibrary.prototype.open=function(){};EmbedFile=function(a,d,c){DrawioFile.call(this,a,d);this.desc=c||{};this.mode=App.MODE_EMBED};mxUtils.extend(EmbedFile,DrawioFile);EmbedFile.prototype.getMode=function(){return this.mode};EmbedFile.prototype.getTitle=function(){return this.desc.title||""};/*
mxClient.IS_IOS || */
-var StorageDialog=function(a,d,c){function b(b,k,f,g,u,v){function l(){mxEvent.addListener(q,"click",null!=v?v:function(){f!=App.MODE_GOOGLE||a.isDriveDomain()?f==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(f,!0);d()})):f==App.MODE_ONEDRIVE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.oneDrive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(f,!0);d()})):
-(a.setMode(f,!0),d()):window.location.hostname=DriveClient.prototype.newAppHostname})}++m>c&&(mxUtils.br(n),m=0);var q=document.createElement("a");q.style.overflow="hidden";q.style.display="inline-block";q.className="geBaseButton";q.style.boxSizing="border-box";q.style.fontSize="11px";q.style.position="relative";q.style.margin="4px";q.style.marginTop="8px";q.style.marginBottom="0px";q.style.padding="8px 10px 8px 10px";q.style.width="88px";q.style.height="100px";q.style.whiteSpace="nowrap";q.setAttribute("title",
-k);var p=document.createElement("div");p.style.textOverflow="ellipsis";p.style.overflow="hidden";p.style.position="absolute";p.style.bottom="8px";p.style.left="0px";p.style.right="0px";mxUtils.write(p,k);q.appendChild(p);if(null!=b){var t=document.createElement("img");t.setAttribute("src",b);t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";q.appendChild(t)}else p.style.paddingTop="5px",p.style.whiteSpace="normal",
-mxClient.IS_IOS?(q.style.padding="0px 10px 20px 10px",q.style.top="6px"):mxClient.IS_FF&&(p.style.paddingTop="0px",p.style.marginTop="-2px");if(null!=u)for(b=0;b<u.length;b++)mxUtils.br(p),mxUtils.write(p,u[b]);if(null!=g&&null==a[g]){t.style.visibility="hidden";mxUtils.setOpacity(p,10);var z=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});z.spin(q);var B=window.setTimeout(function(){null==
-a[g]&&(z.stop(),q.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(b,c){null!=a[g]&&c.getProperty("client")==a[g]&&(window.clearTimeout(B),mxUtils.setOpacity(p,100),t.style.visibility="",z.stop(),l(),"drive"==g&&null!=e.parentNode&&e.parentNode.removeChild(e))}))}else l();n.appendChild(q)}c=null!=c?c:2;var g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace="nowrap";g.style.paddingTop="0px";g.style.paddingBottom="20px";var f=document.createElement("div");
+var StorageDialog=function(a,d,c){function b(b,k,f,g,u,v){function l(){mxEvent.addListener(p,"click",null!=v?v:function(){f!=App.MODE_GOOGLE||a.isDriveDomain()?f==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(f,!0);d()})):f==App.MODE_ONEDRIVE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.oneDrive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(f,!0);d()})):
+(a.setMode(f,!0),d()):window.location.hostname=DriveClient.prototype.newAppHostname})}++m>c&&(mxUtils.br(n),m=0);var p=document.createElement("a");p.style.overflow="hidden";p.style.display="inline-block";p.className="geBaseButton";p.style.boxSizing="border-box";p.style.fontSize="11px";p.style.position="relative";p.style.margin="4px";p.style.marginTop="8px";p.style.marginBottom="0px";p.style.padding="8px 10px 8px 10px";p.style.width="88px";p.style.height="100px";p.style.whiteSpace="nowrap";p.setAttribute("title",
+k);var q=document.createElement("div");q.style.textOverflow="ellipsis";q.style.overflow="hidden";q.style.position="absolute";q.style.bottom="8px";q.style.left="0px";q.style.right="0px";mxUtils.write(q,k);p.appendChild(q);if(null!=b){var t=document.createElement("img");t.setAttribute("src",b);t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";p.appendChild(t)}else q.style.paddingTop="5px",q.style.whiteSpace="normal",
+mxClient.IS_IOS?(p.style.padding="0px 10px 20px 10px",p.style.top="6px"):mxClient.IS_FF&&(q.style.paddingTop="0px",q.style.marginTop="-2px");if(null!=u)for(b=0;b<u.length;b++)mxUtils.br(q),mxUtils.write(q,u[b]);if(null!=g&&null==a[g]){t.style.visibility="hidden";mxUtils.setOpacity(q,10);var z=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});z.spin(p);var B=window.setTimeout(function(){null==
+a[g]&&(z.stop(),p.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(b,c){null!=a[g]&&c.getProperty("client")==a[g]&&(window.clearTimeout(B),mxUtils.setOpacity(q,100),t.style.visibility="",z.stop(),l(),"drive"==g&&null!=e.parentNode&&e.parentNode.removeChild(e))}))}else l();n.appendChild(p)}c=null!=c?c:2;var g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace="nowrap";g.style.paddingTop="0px";g.style.paddingBottom="20px";var f=document.createElement("div");
f.style.border="1px solid #d3d3d3";f.style.borderWidth="1px 0px 1px 0px";f.style.padding="10px 0px 20px 0px";var m=0,n=document.createElement("div");n.style.paddingTop="2px";f.appendChild(n);var e=document.createElement("p"),k=document.createElement("p");k.style.cssText="font-size:22px;padding:4px 0 16px 0;margin:0;color:gray;";mxUtils.write(k,mxResources.get("saveDiagramsTo")+":");g.appendChild(k);g.appendChild(f);m=0;"function"===typeof window.DriveClient&&b(IMAGE_PATH+"/google-drive-logo.svg",
mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive");"function"===typeof window.OneDriveClient&&b(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive");b(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline||b(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);"function"===typeof window.DropboxClient&&b(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),
App.MODE_DROPBOX,"dropbox");null!=a.gitHub&&b(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub");null!=a.gitLab&&b(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab");f=document.createElement("span");f.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0)");mxUtils.write(f,mxResources.get("decideLater"));mxEvent.addListener(f,
@@ -9815,22 +9820,22 @@ mxClient.IS_CHROMEAPP)){if(51200>d.length){var p=mxUtils.button("",function(){tr
" max)");p.style.verticalAlign="bottom";p.style.paddingTop="4px";p.style.minWidth="46px";p.className="geBtn";f.appendChild(p)}7168>d.length&&(p=mxUtils.button("",function(){try{var b="https://twitter.com/intent/tweet?text="+encodeURIComponent(m)+"&url="+encodeURIComponent(e.value);a.openLink(b)}catch(t){a.handleError({message:t.message||mxResources.get("drawingTooLarge")})}}),l=document.createElement("img"),l.setAttribute("src",Editor.tweetImage),l.setAttribute("width","18"),l.setAttribute("height",
"18"),l.setAttribute("border","0"),l.style.marginBottom="5px",p.appendChild(l),p.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),p.style.verticalAlign="bottom",p.style.paddingTop="4px",p.style.minWidth="46px",p.className="geBtn",f.appendChild(p))}l=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});f.appendChild(l);p=mxUtils.button(mxResources.get("copy"),function(){e.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?e.select():
document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>d.length?mxClient.IS_SF||null!=document.documentMode?l.className="geBtn gePrimaryBtn":(f.appendChild(p),p.className="geBtn gePrimaryBtn",l.className="geBtn"):(f.appendChild(k),l.className="geBtn",k.className="geBtn gePrimaryBtn");b.appendChild(f);this.container=b};EmbedDialog.showPreviewOption=!0;
-var GoogleSitesDialog=function(a,d){function c(){var a=null!=H&&null!=H.getTitle()?H.getTitle():this.defaultFilename;if(z.checked&&""!=q.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(q.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<B.length&&(b+="&s="+B);""!=t.value&&"0"!=t.value&&(b+="&border="+t.value);""!=p.value&&(b+="&height="+p.value);b+="&pan="+(u.checked?"1":"0");b+="&zoom="+(v.checked?"1":"0");b+="&fit="+(E.checked?"1":"0");
-b+="&resize="+(A.checked?"1":"0");b+="&x0="+Number(l.value);b+="&y0="+e;g.mathEnabled&&(b+="&math=1");x.checked?b+="&edit=_blank":y.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));k.value=b}else H.constructor==DriveFile||H.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=q.value?b+=encodeURIComponent(mxUtils.htmlEntities(q.value))+"&type=3":(b+=H.getHash().substring(1),b=H.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=
+var GoogleSitesDialog=function(a,d){function c(){var a=null!=G&&null!=G.getTitle()?G.getTitle():this.defaultFilename;if(z.checked&&""!=q.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(q.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<B.length&&(b+="&s="+B);""!=t.value&&"0"!=t.value&&(b+="&border="+t.value);""!=p.value&&(b+="&height="+p.value);b+="&pan="+(u.checked?"1":"0");b+="&zoom="+(v.checked?"1":"0");b+="&fit="+(E.checked?"1":"0");
+b+="&resize="+(y.checked?"1":"0");b+="&x0="+Number(l.value);b+="&y0="+e;g.mathEnabled&&(b+="&math=1");x.checked?b+="&edit=_blank":A.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));k.value=b}else G.constructor==DriveFile||G.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=q.value?b+=encodeURIComponent(mxUtils.htmlEntities(q.value))+"&type=3":(b+=G.getHash().substring(1),b=G.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=
a&&(b+="&title="+encodeURIComponent(a)),""!=p.value&&(a=parseInt(p.value)+parseInt(l.value),b+="&height="+a),k.value=b):k.value=""}var b=document.createElement("div"),g=a.editor.graph,f=g.getGraphBounds(),m=g.view.scale,n=Math.floor(f.x/m-g.view.translate.x),e=Math.floor(f.y/m-g.view.translate.y);mxUtils.write(b,mxResources.get("googleGadget")+":");mxUtils.br(b);var k=document.createElement("input");k.setAttribute("type","text");k.style.marginBottom="8px";k.style.marginTop="2px";k.style.width="410px";
b.appendChild(k);mxUtils.br(b);this.init=function(){k.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?k.select():document.execCommand("selectAll",!1,null)};mxUtils.write(b,mxResources.get("top")+":");var l=document.createElement("input");l.setAttribute("type","text");l.setAttribute("size","4");l.style.marginRight="16px";l.style.marginLeft="4px";l.value=n;b.appendChild(l);mxUtils.write(b,mxResources.get("height")+":");var p=document.createElement("input");p.setAttribute("type","text");
p.setAttribute("size","4");p.style.marginLeft="4px";p.value=Math.ceil(f.height/m);b.appendChild(p);mxUtils.br(b);f=document.createElement("hr");f.setAttribute("size","1");f.style.marginBottom="16px";f.style.marginTop="16px";b.appendChild(f);mxUtils.write(b,mxResources.get("publicDiagramUrl")+":");mxUtils.br(b);var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","28");q.style.marginBottom="8px";q.style.marginTop="2px";q.style.width="410px";q.value=d||"";b.appendChild(q);
mxUtils.br(b);mxUtils.write(b,mxResources.get("borderWidth")+":");var t=document.createElement("input");t.setAttribute("type","text");t.setAttribute("size","3");t.style.marginBottom="8px";t.style.marginLeft="4px";t.value="0";b.appendChild(t);mxUtils.br(b);var u=document.createElement("input");u.setAttribute("type","checkbox");u.setAttribute("checked","checked");u.defaultChecked=!0;u.style.marginLeft="16px";b.appendChild(u);mxUtils.write(b,mxResources.get("pan")+" ");var v=document.createElement("input");
-v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="8px";b.appendChild(v);mxUtils.write(b,mxResources.get("zoom")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";y.setAttribute("title",window.location.href);b.appendChild(y);mxUtils.write(b,mxResources.get("edit")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft="8px";b.appendChild(x);mxUtils.write(b,
-mxResources.get("asNew")+" ");mxUtils.br(b);var A=document.createElement("input");A.setAttribute("type","checkbox");A.setAttribute("checked","checked");A.defaultChecked=!0;A.style.marginLeft="16px";b.appendChild(A);mxUtils.write(b,mxResources.get("resize")+" ");var E=document.createElement("input");E.setAttribute("type","checkbox");E.style.marginLeft="8px";b.appendChild(E);mxUtils.write(b,mxResources.get("fit")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft=
-"8px";b.appendChild(z);mxUtils.write(b,mxResources.get("embed")+" ");var B=a.getBasenames().join(";"),H=a.getCurrentFile();mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(A,"change",c);mxEvent.addListener(E,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(x,"change",c);mxEvent.addListener(z,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(l,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(q,"change",c);c();
+v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="8px";b.appendChild(v);mxUtils.write(b,mxResources.get("zoom")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";A.setAttribute("title",window.location.href);b.appendChild(A);mxUtils.write(b,mxResources.get("edit")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft="8px";b.appendChild(x);mxUtils.write(b,
+mxResources.get("asNew")+" ");mxUtils.br(b);var y=document.createElement("input");y.setAttribute("type","checkbox");y.setAttribute("checked","checked");y.defaultChecked=!0;y.style.marginLeft="16px";b.appendChild(y);mxUtils.write(b,mxResources.get("resize")+" ");var E=document.createElement("input");E.setAttribute("type","checkbox");E.style.marginLeft="8px";b.appendChild(E);mxUtils.write(b,mxResources.get("fit")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft=
+"8px";b.appendChild(z);mxUtils.write(b,mxResources.get("embed")+" ");var B=a.getBasenames().join(";"),G=a.getCurrentFile();mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(E,"change",c);mxEvent.addListener(A,"change",c);mxEvent.addListener(x,"change",c);mxEvent.addListener(z,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(l,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(q,"change",c);c();
mxEvent.addListener(k,"click",function(){k.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?k.select():document.execCommand("selectAll",!1,null)});f=document.createElement("div");f.style.paddingTop="12px";f.style.textAlign="right";m=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});m.className="geBtn gePrimaryBtn";f.appendChild(m);b.appendChild(f);this.container=b},CreateGraphDialog=function(a,d,c){var b=document.createElement("div");b.style.textAlign="right";this.init=
function(){var d=document.createElement("div");d.style.position="relative";d.style.border="1px solid gray";d.style.width="100%";d.style.height="360px";d.style.overflow="hidden";d.style.marginBottom="16px";mxEvent.disableContextMenu(d);b.appendChild(d);var f=new Graph(d);f.setCellsCloneable(!0);f.setPanning(!0);f.setAllowDanglingEdges(!1);f.connectionHandler.select=!1;f.view.setTranslate(20,20);f.border=20;f.panningHandler.useLeftButtonForPanning=!0;var m="curved=1;";f.cellRenderer.installCellOverlayListeners=
function(a,b,e){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(e.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(e){b.fireEvent(new mxEventObject("pointerdown","event",e,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchstart",function(e){b.fireEvent(new mxEventObject("pointerdown","event",e,"state",a))})};f.getAllConnectionConstraints=function(){return null};f.connectionHandler.marker.highlight.keepOnTop=
!1;f.connectionHandler.createEdgeState=function(a){a=f.createEdge(null,null,null,null,null,m);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var n=f.getDefaultParent(),e=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,c){f.connectionHandler.reset();f.clearSelection();var d=f.getCellGeometry(a),k;p(function(){k=f.insertVertex(n,null,"Entry",d.x,d.y,80,30,"rounded=1;");e(k);f.view.refresh(k);
f.insertEdge(n,null,"",a,k,m)},function(){f.scrollCellToVisible(k)})});b.addListener("pointerdown",function(a,b){var e=b.getProperty("event"),c=b.getProperty("state");f.popupMenuHandler.hideMenu();f.stopEditing(!1);var d=mxUtils.convertPoint(f.container,mxEvent.getClientX(e),mxEvent.getClientY(e));f.connectionHandler.start(c,d.x,d.y);f.isMouseDown=!0;f.isMouseTrigger=mxEvent.isMouseEvent(e);mxEvent.consume(e)});f.addCellOverlay(a,b)});f.getModel().beginUpdate();var k;try{k=f.insertVertex(n,null,"Start",
0,0,80,30,"ellipse"),e(k)}finally{f.getModel().endUpdate()}var l;"horizontalTree"==c?(l=new mxCompactTreeLayout(f),l.edgeRouting=!1,l.levelDistance=30,m="edgeStyle=elbowEdgeStyle;elbow=horizontal;"):"verticalTree"==c?(l=new mxCompactTreeLayout(f,!1),l.edgeRouting=!1,l.levelDistance=30,m="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"radialTree"==c?(l=new mxRadialTreeLayout(f,!1),l.edgeRouting=!1,l.levelDistance=80):"verticalFlow"==c?l=new mxHierarchicalLayout(f,mxConstants.DIRECTION_NORTH):"horizontalFlow"==
-c?l=new mxHierarchicalLayout(f,mxConstants.DIRECTION_WEST):"organic"==c?(l=new mxFastOrganicLayout(f,!1),l.forceConstant=80):"circle"==c&&(l=new mxCircleLayout(f));if(null!=l){var p=function(a,b){f.getModel().beginUpdate();try{null!=a&&a(),l.execute(f.getDefaultParent(),k)}catch(A){throw A;}finally{var e=new mxMorphing(f);e.addListener(mxEvent.DONE,mxUtils.bind(this,function(){f.getModel().endUpdate();null!=b&&b()}));e.startAnimation()}},q=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=
+c?l=new mxHierarchicalLayout(f,mxConstants.DIRECTION_WEST):"organic"==c?(l=new mxFastOrganicLayout(f,!1),l.forceConstant=80):"circle"==c&&(l=new mxCircleLayout(f));if(null!=l){var p=function(a,b){f.getModel().beginUpdate();try{null!=a&&a(),l.execute(f.getDefaultParent(),k)}catch(y){throw y;}finally{var e=new mxMorphing(f);e.addListener(mxEvent.DONE,mxUtils.bind(this,function(){f.getModel().endUpdate();null!=b&&b()}));e.startAnimation()}},q=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=
function(a,b,e,c,d){q.apply(this,arguments);p()};f.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);p()};f.connectionHandler.addListener(mxEvent.CONNECT,function(){p()})}var t=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){null!=d.parentNode&&(f.destroy(),d.parentNode.removeChild(d));a.hideDialog()})});t.className="geBtn";a.editor.cancelFirst&&b.appendChild(t);var u=mxUtils.button(mxResources.get("insert"),function(b){f.clearCellOverlays();
var e=f.getModel().getChildren(f.getDefaultParent());b=mxEvent.isAltDown(b)?a.editor.graph.getFreeInsertPoint():a.editor.graph.getCenterInsertPoint(f.getBoundingBoxFromGeometry(e,!0));e=a.editor.graph.importCells(e,b.x,b.y);b=a.editor.graph.view;var c=b.getBounds(e);c.x-=b.translate.x;c.y-=b.translate.y;a.editor.graph.scrollRectToVisible(c);a.editor.graph.setSelectionCells(e);null!=d.parentNode&&(f.destroy(),d.parentNode.removeChild(d));a.hideDialog()});b.appendChild(u);u.className="geBtn gePrimaryBtn";
a.editor.cancelFirst||b.appendChild(t)};this.container=b};
@@ -9843,8 +9848,8 @@ function(a,b,c,d,k,l){f.value=a;e()},function(){},function(a){return"image/"==a.
":");var k=document.createElement("input");k.setAttribute("type","text");k.style.width="60px";k.style.marginLeft="4px";k.style.marginRight="16px";k.value=null!=c?c.width:"";b.appendChild(k);mxUtils.write(b,mxResources.get("height")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="16px";l.value=null!=c?c.height:"";b.appendChild(l);c=mxUtils.button(mxResources.get("reset"),function(){f.value="";k.value="";l.value=
"";m=!1});mxEvent.addGestureListeners(c,function(){m=!0});c.className="geBtn";c.width="100";b.appendChild(c);mxUtils.br(b);mxEvent.addListener(f,"change",e);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(f.value=a.url,e()));f.focus()};c=document.createElement("div");c.style.marginTop="40px";c.style.textAlign="right";g=mxUtils.button(mxResources.get("cancel"),function(){m=!0;a.hideDialog()});
g.className="geBtn";a.editor.cancelFirst&&c.appendChild(g);applyBtn=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();e(null,function(a){d(""!=a&&null!=a?new mxImage(f.value,k.value,l.value):null,null==a)})});mxEvent.addGestureListeners(applyBtn,function(){n=!0});applyBtn.className="geBtn gePrimaryBtn";c.appendChild(applyBtn);a.editor.cancelFirst||c.appendChild(g);b.appendChild(c);this.container=b},ParseDialog=function(a,d,c){function b(b,e,c){var d=b.split("\n");if("plantUmlPng"==
-e||"plantUmlSvg"==e||"plantUmlTxt"==e){if(a.spinner.spin(document.body,mxResources.get("inserting"))){var k=function(b,e,d,k,g){f=mxEvent.isAltDown(c)?f:l.getCenterInsertPoint(new mxRectangle(0,0,k,g));var q=null;l.getModel().beginUpdate();try{q="txt"==e?a.insertAsPreText(d,f.x,f.y):l.insertVertex(null,null,null,f.x,f.y,k,g,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(d)+";"),l.setAttributeForCell(q,"plantUmlData",JSON.stringify({data:b,format:e},null,
-2))}finally{l.getModel().endUpdate()}null!=q&&(l.setSelectionCell(q),l.scrollCellToVisible(q))},l=a.editor.graph,g="plantUmlTxt"==e?"txt":"plantUmlPng"==e?"png":"svg";"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml"==b&&"svg"==g?window.setTimeout(function(){a.spinner.stop();k(b,g,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iMjEycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDoyOTVweDtoZWlnaHQ6MjEycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOTUgMjEyIiB3aWR0aD0iMjk1cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMSIgeDI9IjMxIiB5MT0iMzQuNDg4MyIgeTI9IjE3MS43MzA1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjY0LjUiIHgyPSIyNjQuNSIgeTE9IjM0LjQ4ODMiIHkyPSIxNzEuNzMwNSIvPjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMyIgeD0iMTUiIHk9IjIzLjUzNTIiPkFsaWNlPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjE3MC43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMzMiIHg9IjE1IiB5PSIxOTEuMjY1NiI+QWxpY2U8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgaGVpZ2h0PSIzMC40ODgzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iMjQ0LjUiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjIzLjUzNTIiPkJvYjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBoZWlnaHQ9IjMwLjQ4ODMiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSIyNDQuNSIgeT0iMTcwLjczMDUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjE5MS4yNjU2Ij5Cb2I8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNTIuNSw2MS43OTg4LDI2Mi41LDY1Ljc5ODgsMjUyLjUsNjkuNzk4OCwyNTYuNSw2NS43OTg4IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMS41IiB4Mj0iMjU4LjUiIHkxPSI2NS43OTg4IiB5Mj0iNjUuNzk4OCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE0NyIgeD0iMzguNSIgeT0iNjEuMDU2NiI+QXV0aGVudGljYXRpb24gUmVxdWVzdDwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyLjUsOTEuMTA5NCwzMi41LDk1LjEwOTQsNDIuNSw5OS4xMDk0LDM4LjUsOTUuMTA5NCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDIuMCwyLjA7IiB4MT0iMzYuNSIgeDI9IjI2My41IiB5MT0iOTUuMTA5NCIgeTI9Ijk1LjEwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNTciIHg9IjQ4LjUiIHk9IjkwLjM2NzIiPkF1dGhlbnRpY2F0aW9uIFJlc3BvbnNlPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjUyLjUsMTIwLjQxOTksMjYyLjUsMTI0LjQxOTksMjUyLjUsMTI4LjQxOTksMjU2LjUsMTI0LjQxOTkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjMxLjUiIHgyPSIyNTguNSIgeTE9IjEyNC40MTk5IiB5Mj0iMTI0LjQxOTkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxOTkiIHg9IjM4LjUiIHk9IjExOS42Nzc3Ij5Bbm90aGVyIGF1dGhlbnRpY2F0aW9uIFJlcXVlc3Q8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0Mi41LDE0OS43MzA1LDMyLjUsMTUzLjczMDUsNDIuNSwxNTcuNzMwNSwzOC41LDE1My43MzA1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogMi4wLDIuMDsiIHgxPSIzNi41IiB4Mj0iMjYzLjUiIHkxPSIxNTMuNzMwNSIgeTI9IjE1My43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjA5IiB4PSI0OC41IiB5PSIxNDguOTg4MyI+QW5vdGhlciBhdXRoZW50aWNhdGlvbiBSZXNwb25zZTwvdGV4dD48IS0tTUQ1PVs3ZjNlNGQwYzkwMWVmZGJjNTdlYjQ0MjQ5YTNiODE5N10KQHN0YXJ0dW1sDQpza2lucGFyYW0gc2hhZG93aW5nIGZhbHNlDQpBbGljZSAtPiBCb2I6IEF1dGhlbnRpY2F0aW9uIFJlcXVlc3QNCkJvYiAtIC0+IEFsaWNlOiBBdXRoZW50aWNhdGlvbiBSZXNwb25zZQ0KDQpBbGljZSAtPiBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVxdWVzdA0KQWxpY2UgPC0gLSBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVzcG9uc2UNCkBlbmR1bWwNCgpQbGFudFVNTCB2ZXJzaW9uIDEuMjAyMC4wMihTdW4gTWFyIDAxIDA0OjIyOjA3IENTVCAyMDIwKQooTUlUIHNvdXJjZSBkaXN0cmlidXRpb24pCkphdmEgUnVudGltZTogT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50CkpWTTogT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNCkphdmEgVmVyc2lvbjogMTIrMzMKT3BlcmF0aW5nIFN5c3RlbTogTWFjIE9TIFgKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IFVTCi0tPjwvZz48L3N2Zz4=",
+e||"plantUmlSvg"==e||"plantUmlTxt"==e){if(a.spinner.spin(document.body,mxResources.get("inserting"))){var k=function(b,e,d,k,g){f=mxEvent.isAltDown(c)?f:l.getCenterInsertPoint(new mxRectangle(0,0,k,g));var p=null;l.getModel().beginUpdate();try{p="txt"==e?a.insertAsPreText(d,f.x,f.y):l.insertVertex(null,null,null,f.x,f.y,k,g,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(d)+";"),l.setAttributeForCell(p,"plantUmlData",JSON.stringify({data:b,format:e},null,
+2))}finally{l.getModel().endUpdate()}null!=p&&(l.setSelectionCell(p),l.scrollCellToVisible(p))},l=a.editor.graph,g="plantUmlTxt"==e?"txt":"plantUmlPng"==e?"png":"svg";"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml"==b&&"svg"==g?window.setTimeout(function(){a.spinner.stop();k(b,g,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iMjEycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDoyOTVweDtoZWlnaHQ6MjEycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOTUgMjEyIiB3aWR0aD0iMjk1cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMSIgeDI9IjMxIiB5MT0iMzQuNDg4MyIgeTI9IjE3MS43MzA1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjY0LjUiIHgyPSIyNjQuNSIgeTE9IjM0LjQ4ODMiIHkyPSIxNzEuNzMwNSIvPjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMyIgeD0iMTUiIHk9IjIzLjUzNTIiPkFsaWNlPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjE3MC43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMzMiIHg9IjE1IiB5PSIxOTEuMjY1NiI+QWxpY2U8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgaGVpZ2h0PSIzMC40ODgzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iMjQ0LjUiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjIzLjUzNTIiPkJvYjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBoZWlnaHQ9IjMwLjQ4ODMiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSIyNDQuNSIgeT0iMTcwLjczMDUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjE5MS4yNjU2Ij5Cb2I8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNTIuNSw2MS43OTg4LDI2Mi41LDY1Ljc5ODgsMjUyLjUsNjkuNzk4OCwyNTYuNSw2NS43OTg4IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMS41IiB4Mj0iMjU4LjUiIHkxPSI2NS43OTg4IiB5Mj0iNjUuNzk4OCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE0NyIgeD0iMzguNSIgeT0iNjEuMDU2NiI+QXV0aGVudGljYXRpb24gUmVxdWVzdDwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyLjUsOTEuMTA5NCwzMi41LDk1LjEwOTQsNDIuNSw5OS4xMDk0LDM4LjUsOTUuMTA5NCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDIuMCwyLjA7IiB4MT0iMzYuNSIgeDI9IjI2My41IiB5MT0iOTUuMTA5NCIgeTI9Ijk1LjEwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNTciIHg9IjQ4LjUiIHk9IjkwLjM2NzIiPkF1dGhlbnRpY2F0aW9uIFJlc3BvbnNlPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjUyLjUsMTIwLjQxOTksMjYyLjUsMTI0LjQxOTksMjUyLjUsMTI4LjQxOTksMjU2LjUsMTI0LjQxOTkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjMxLjUiIHgyPSIyNTguNSIgeTE9IjEyNC40MTk5IiB5Mj0iMTI0LjQxOTkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxOTkiIHg9IjM4LjUiIHk9IjExOS42Nzc3Ij5Bbm90aGVyIGF1dGhlbnRpY2F0aW9uIFJlcXVlc3Q8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0Mi41LDE0OS43MzA1LDMyLjUsMTUzLjczMDUsNDIuNSwxNTcuNzMwNSwzOC41LDE1My43MzA1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogMi4wLDIuMDsiIHgxPSIzNi41IiB4Mj0iMjYzLjUiIHkxPSIxNTMuNzMwNSIgeTI9IjE1My43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjA5IiB4PSI0OC41IiB5PSIxNDguOTg4MyI+QW5vdGhlciBhdXRoZW50aWNhdGlvbiBSZXNwb25zZTwvdGV4dD48IS0tTUQ1PVs3ZjNlNGQwYzkwMWVmZGJjNTdlYjQ0MjQ5YTNiODE5N10KQHN0YXJ0dW1sDQpza2lucGFyYW0gc2hhZG93aW5nIGZhbHNlDQpBbGljZSAtPiBCb2I6IEF1dGhlbnRpY2F0aW9uIFJlcXVlc3QNCkJvYiAtIC0+IEFsaWNlOiBBdXRoZW50aWNhdGlvbiBSZXNwb25zZQ0KDQpBbGljZSAtPiBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVxdWVzdA0KQWxpY2UgPC0gLSBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVzcG9uc2UNCkBlbmR1bWwNCgpQbGFudFVNTCB2ZXJzaW9uIDEuMjAyMC4wMihTdW4gTWFyIDAxIDA0OjIyOjA3IENTVCAyMDIwKQooTUlUIHNvdXJjZSBkaXN0cmlidXRpb24pCkphdmEgUnVudGltZTogT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50CkpWTTogT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNCkphdmEgVmVyc2lvbjogMTIrMzMKT3BlcmF0aW5nIFN5c3RlbTogTWFjIE9TIFgKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IFVTCi0tPjwvZz48L3N2Zz4=",
295,212)},200):a.generatePlantUmlImage(b,g,function(e,c,d){a.spinner.stop();k(b,g,e,c,d)},function(b){a.handleError(b)})}}else if("mermaid"==e)a.spinner.spin(document.body,mxResources.get("inserting"))&&(l=a.editor.graph,a.generateMermaidImage(b,g,function(e,d,k){f=mxEvent.isAltDown(c)?f:l.getCenterInsertPoint(new mxRectangle(0,0,d,k));a.spinner.stop();var g=null;l.getModel().beginUpdate();try{g=l.insertVertex(null,null,null,f.x,f.y,d,k,"shape=image;noLabel=1;verticalAlign=top;imageAspect=1;image="+
e+";"),l.setAttributeForCell(g,"mermaidData",JSON.stringify({data:b,config:EditorUi.defaultMermaidConfig},null,2))}finally{l.getModel().endUpdate()}null!=g&&(l.setSelectionCell(g),l.scrollCellToVisible(g))},function(b){a.handleError(b)}));else if("table"==e){var p=null,q=[],m=0;for(e=0;e<d.length;e++){var t=mxUtils.trim(d[e]);if("create table"==t.substring(0,12).toLowerCase())t=mxUtils.trim(t.substring(12)),"("==t.charAt(t.length-1)&&(t=mxUtils.trim(t.substring(0,t.length-1))),p=new mxCell(t,new mxGeometry(m,
0,160,40),"shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;"),p.vertex=!0,q.push(p),t=a.editor.graph.getPreferredSizeForCell(n),null!=t&&(p.geometry.width=t.width+10);else if(null!=p&&")"==t.charAt(0))m+=p.geometry.width+40,p=null;else if("("!=t&&null!=p&&(t=t.substring(0,","==t.charAt(t.length-1)?t.length-1:t.length),"primary key"!=t.substring(0,11).toLowerCase())){var u=t.toLowerCase().indexOf("primary key"),
@@ -9853,7 +9858,7 @@ t=t.replace(/primary key/i,""),n=new mxCell("",new mxGeometry(0,0,160,30),"shape
f.x,f.y)),l.scrollCellToVisible(l.getSelectionCell()))}else if("list"==e){if(0<d.length){l=a.editor.graph;n=null;q=[];for(e=p=0;e<d.length;e++)";"!=d[e].charAt(0)&&(0==d[e].length?n=null:null==n?(n=new mxCell(d[e],new mxGeometry(p,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;"),n.vertex=!0,q.push(n),t=l.getPreferredSizeForCell(n),null!=t&&n.geometry.width<t.width+10&&(n.geometry.width=
t.width+10),p+=n.geometry.width+40):"--"==d[e]?(t=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),t.vertex=!0,n.geometry.height+=t.geometry.height,n.insert(t)):0<d[e].length&&(m=new mxCell(d[e],new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),
m.vertex=!0,t=l.getPreferredSizeForCell(m),null!=t&&m.geometry.width<t.width&&(m.geometry.width=t.width),n.geometry.width=Math.max(n.geometry.width,m.geometry.width),n.geometry.height+=m.geometry.height,n.insert(m)));if(0<q.length){f=mxEvent.isAltDown(c)?f:l.getCenterInsertPoint(l.getBoundingBoxFromGeometry(q,!0));l.getModel().beginUpdate();try{q=l.importCells(q,f.x,f.y);t=[];for(e=0;e<q.length;e++)t.push(q[e]),t=t.concat(q[e].children);l.fireEvent(new mxEventObject("cellsInserted","cells",t))}finally{l.getModel().endUpdate()}l.setSelectionCells(q);
-l.scrollCellToVisible(l.getSelectionCell())}}}else{var n=function(a){var b=G[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,G[a]=b,q.push(b));return b},G={},q=[];for(e=0;e<d.length;e++)if(";"!=d[e].charAt(0)){var L=d[e].split("->");2<=L.length&&(u=n(L[0]),F=n(L[L.length-1]),L=new mxCell(2<L.length?L[1]:"",new mxGeometry),L.edge=!0,u.insertEdge(L,!0),F.insertEdge(L,!1),q.push(L))}if(0<q.length){d=document.createElement("div");d.style.visibility="hidden";
+l.scrollCellToVisible(l.getSelectionCell())}}}else{var n=function(a){var b=H[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,H[a]=b,q.push(b));return b},H={},q=[];for(e=0;e<d.length;e++)if(";"!=d[e].charAt(0)){var L=d[e].split("->");2<=L.length&&(u=n(L[0]),F=n(L[L.length-1]),L=new mxCell(2<L.length?L[1]:"",new mxGeometry),L.edge=!0,u.insertEdge(L,!0),F.insertEdge(L,!1),q.push(L))}if(0<q.length){d=document.createElement("div");d.style.visibility="hidden";
document.body.appendChild(d);l=new Graph(d);l.getModel().beginUpdate();try{q=l.importCells(q);for(e=0;e<q.length;e++)l.getModel().isVertex(q[e])&&(t=l.getPreferredSizeForCell(q[e]),q[e].geometry.width=Math.max(q[e].geometry.width,t.width),q[e].geometry.height=Math.max(q[e].geometry.height,t.height));p=new mxFastOrganicLayout(l);p.disableEdgeStyle=!1;p.forceConstant=120;p.execute(l.getDefaultParent());m=new mxParallelEdgeLayout(l);m.spacing=20;m.execute(l.getDefaultParent())}finally{l.getModel().endUpdate()}l.clearCellOverlays();
t=[];a.editor.graph.getModel().beginUpdate();try{q=l.getModel().getChildren(l.getDefaultParent()),f=mxEvent.isAltDown(c)?f:a.editor.graph.getCenterInsertPoint(l.getBoundingBoxFromGeometry(q,!0)),t=a.editor.graph.importCells(q,f.x,f.y),a.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",t))}finally{a.editor.graph.getModel().endUpdate()}a.editor.graph.setSelectionCells(t);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());l.destroy();d.parentNode.removeChild(d)}}}function g(){return"list"==
n.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean\n\nAddress\n-street: String\n-city: String\n-state: String":"mermaid"==n.value?"graph TD;\n A--\x3eB;\n A--\x3eC;\n B--\x3eD;\n C--\x3eD;":"table"==n.value?"CREATE TABLE Suppliers\n(\nsupplier_id int NOT NULL PRIMARY KEY,\nsupplier_name char(50) NOT NULL,\ncontact_name char(50),\n);\nCREATE TABLE Customers\n(\ncustomer_id int NOT NULL PRIMARY KEY,\ncustomer_name char(50) NOT NULL,\naddress char(50),\ncity char(50),\nstate char(25),\nzip_code char(10)\n);\n":
@@ -9863,46 +9868,46 @@ null!=c&&"fromText"!=c||e.setAttribute("selected","selected");e=document.createE
mxUtils.write(e,mxResources.get("diagram"));"plantUml"!=c&&n.appendChild(e);e=document.createElement("option");e.setAttribute("value","plantUmlSvg");mxUtils.write(e,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==c&&e.setAttribute("selected","selected");var k=document.createElement("option");k.setAttribute("value","plantUmlPng");mxUtils.write(k,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");var l=document.createElement("option");l.setAttribute("value",
"plantUmlTxt");mxUtils.write(l,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==c&&(n.appendChild(e),n.appendChild(k),n.appendChild(l));var p=g();m.value=p;d.appendChild(m);this.init=function(){m.focus()};Graph.fileSupport&&(m.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),m.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();if(0<a.dataTransfer.files.length){a=
a.dataTransfer.files[0];var b=new FileReader;b.onload=function(a){m.value=a.target.result};b.readAsText(a)}},!1));d.appendChild(n);mxEvent.addListener(n,"change",function(){var a=g();if(0==m.value.length||m.value==p)p=a,m.value=p});a.isOffline()||"mermaid"!=c&&"plantUml"!=c||(e=mxUtils.button(mxResources.get("help"),function(){a.openLink("mermaid"==c?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),e.className="geBtn",d.appendChild(e));e=mxUtils.button(mxResources.get("close"),
-function(){m.value==p?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});e.className="geBtn";a.editor.cancelFirst&&d.appendChild(e);k=mxUtils.button(mxResources.get("insert"),function(e){a.hideDialog();b(m.value,n.value,e)});d.appendChild(k);k.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(e);this.container=d},NewDialog=function(a,d,c,b,g,f,m,n,e,k,l,p,q,t,u,v,y){function x(){var a=!0;if(null!=ia)for(;G<ia.length&&(a||0!=mxUtils.mod(G,30));){var b=
-ia[G++],b=z(b.url,b.libs,b.title,b.tooltip?b.tooltip:b.title,b.select,b.imgUrl,b.info,b.onClick,b.preview,b.noImg,b.clibs);a&&b.click();a=!1}}function A(){if(W)c||a.hideDialog(),t(W,da,F.value);else if(b)c||a.hideDialog(),b(ga,F.value,ja,Y);else{var e=F.value;null!=e&&0<e.length&&a.pickFolder(a.mode,function(b){a.createFile(e,ga,null!=Y&&0<Y.length?Y:null,null,function(){a.hideDialog()},null,b,null,null!=ca&&0<ca.length?ca:null)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}
+function(){m.value==p?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});e.className="geBtn";a.editor.cancelFirst&&d.appendChild(e);k=mxUtils.button(mxResources.get("insert"),function(e){a.hideDialog();b(m.value,n.value,e)});d.appendChild(k);k.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(e);this.container=d},NewDialog=function(a,d,c,b,g,f,m,n,e,k,l,p,q,t,u,v,A){function x(){var a=!0;if(null!=ia)for(;H<ia.length&&(a||0!=mxUtils.mod(H,30));){var b=
+ia[H++],b=z(b.url,b.libs,b.title,b.tooltip?b.tooltip:b.title,b.select,b.imgUrl,b.info,b.onClick,b.preview,b.noImg,b.clibs);a&&b.click();a=!1}}function y(){if(W)c||a.hideDialog(),t(W,da,F.value);else if(b)c||a.hideDialog(),b(ga,F.value,ja,Y);else{var e=F.value;null!=e&&0<e.length&&a.pickFolder(a.mode,function(b){a.createFile(e,ga,null!=Y&&0<Y.length?Y:null,null,function(){a.hideDialog()},null,b,null,null!=ca&&0<ca.length?ca:null)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}
function E(a,b,c,d,k,l,f){null!=X&&(X.style.backgroundColor="transparent",X.style.border="1px solid transparent");I.removeAttribute("disabled");ga=b;Y=c;ca=l;X=a;W=d;ja=f;da=k;X.style.backgroundColor=n;X.style.border=e}function z(b,e,c,d,k,l,f,g,p,q,t){var m=document.createElement("div");m.className="geTemplate";m.style.height=V+"px";m.style.width=Q+"px";Editor.isDarkMode()&&(m.style.filter="invert(100%)");null!=c?m.setAttribute("title",mxResources.get(c,null,c)):null!=d&&0<d.length&&m.setAttribute("title",
d);if(null!=l){m.style.display="inline-flex";m.style.justifyContent="center";m.style.alignItems="center";c=document.createElement("img");c.setAttribute("src",l);c.setAttribute("alt",d);c.style.maxWidth=V+"px";c.style.maxHeight=Q+"px";var M=l.replace(".drawio.xml","").replace(".drawio","").replace(".xml","");m.appendChild(c);c.onerror=function(){this.src!=M?this.src=M:(this.src=Editor.errorImage,this.onerror=null)};mxEvent.addListener(m,"click",function(a){E(m,null,null,b,f,t)});mxEvent.addListener(m,
-"dblclick",function(a){A()})}else if(!q&&null!=b&&0<b.length){d=p||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";m.style.backgroundImage="url("+d+")";m.style.backgroundPosition="center center";m.style.backgroundRepeat="no-repeat";null!=c&&(m.innerHTML='<table width="100%" height="100%" style="line-height:1.3em;'+(Editor.isDarkMode()?"":"background:rgba(255,255,255,0.85);")+'border:inherit;"><tr><td align="center" valign="middle"><span style="display:inline-block;padding:4px 8px 4px 8px;user-select:none;border-radius:3px;background:rgba(255,255,255,0.85);overflow:hidden;text-overflow:ellipsis;max-width:'+
+"dblclick",function(a){y()})}else if(!q&&null!=b&&0<b.length){d=p||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";m.style.backgroundImage="url("+d+")";m.style.backgroundPosition="center center";m.style.backgroundRepeat="no-repeat";null!=c&&(m.innerHTML='<table width="100%" height="100%" style="line-height:1.3em;'+(Editor.isDarkMode()?"":"background:rgba(255,255,255,0.85);")+'border:inherit;"><tr><td align="center" valign="middle"><span style="display:inline-block;padding:4px 8px 4px 8px;user-select:none;border-radius:3px;background:rgba(255,255,255,0.85);overflow:hidden;text-overflow:ellipsis;max-width:'+
(V-34)+'px;">'+mxUtils.htmlEntities(mxResources.get(c,null,c))+"</span></td></tr></table>");var u=!1;mxEvent.addListener(m,"click",function(c){I.setAttribute("disabled","disabled");m.style.backgroundColor="transparent";m.style.border="1px solid transparent";var d=b,d=/^https?:\/\//.test(d)&&!a.editor.isCorsEnabledForUrl(d)?PROXY_URL+"?url="+encodeURIComponent(d):TEMPLATE_PATH+"/"+d;L.spin(O);mxUtils.get(d,mxUtils.bind(this,function(a){L.stop();200<=a.getStatus()&&299>=a.getStatus()&&(E(m,a.getText(),
-e,null,null,t,d),u&&A())}))});mxEvent.addListener(m,"dblclick",function(a){u=!0})}else m.innerHTML='<table width="100%" height="100%" style="line-height:1.3em;"><tr><td align="center" valign="middle"><span style="display:inline-block;padding:4px 8px 4px 8px;user-select:none;border-radius:3px;background:#ffffff;overflow:hidden;text-overflow:ellipsis;max-width:'+(V-34)+'px;">'+mxUtils.htmlEntities(mxResources.get(c,null,c))+"</span></td></tr></table>",k&&E(m),null!=g?mxEvent.addListener(m,"click",g):
-(mxEvent.addListener(m,"click",function(a){E(m,null,null,b,f)}),mxEvent.addListener(m,"dblclick",function(a){A()}));O.appendChild(m);return m}function B(){la&&(la=!1,mxEvent.addListener(O,"scroll",function(a){O.scrollTop+O.clientHeight>=O.scrollHeight&&(x(),mxEvent.consume(a))}));var a=null;if(0<fa){var b=document.createElement("div");b.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(b,mxResources.get("custom"));aa.appendChild(b);for(var e in U){var c=
+e,null,null,t,d),u&&y())}))});mxEvent.addListener(m,"dblclick",function(a){u=!0})}else m.innerHTML='<table width="100%" height="100%" style="line-height:1.3em;"><tr><td align="center" valign="middle"><span style="display:inline-block;padding:4px 8px 4px 8px;user-select:none;border-radius:3px;background:#ffffff;overflow:hidden;text-overflow:ellipsis;max-width:'+(V-34)+'px;">'+mxUtils.htmlEntities(mxResources.get(c,null,c))+"</span></td></tr></table>",k&&E(m),null!=g?mxEvent.addListener(m,"click",g):
+(mxEvent.addListener(m,"click",function(a){E(m,null,null,b,f)}),mxEvent.addListener(m,"dblclick",function(a){y()}));O.appendChild(m);return m}function B(){la&&(la=!1,mxEvent.addListener(O,"scroll",function(a){O.scrollTop+O.clientHeight>=O.scrollHeight&&(x(),mxEvent.consume(a))}));var a=null;if(0<fa){var b=document.createElement("div");b.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(b,mxResources.get("custom"));aa.appendChild(b);for(var e in U){var c=
document.createElement("div"),b=e,d=U[e];18<b.length&&(b=b.substring(0,18)+"&hellip;");c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;";c.setAttribute("title",b+" ("+d.length+")");mxUtils.write(c,c.getAttribute("title"));null!=k&&(c.style.padding=k);aa.appendChild(c);(function(b,e){mxEvent.addListener(c,"click",function(){a!=e&&(a.style.backgroundColor="",a=e,a.style.backgroundColor=m,O.scrollTop=
-0,O.innerHTML="",G=0,ia=U[b],N=null,x())})})(e,c)}b=document.createElement("div");b.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(b,"draw.io");aa.appendChild(b)}for(e in ea)c=document.createElement("div"),b=mxResources.get(e),d=ea[e],null==b&&(b=e.substring(0,1).toUpperCase()+e.substring(1)),18<b.length&&(b=b.substring(0,18)+"&hellip;"),c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;",
-c.setAttribute("title",b+" ("+d.length+")"),mxUtils.write(c,c.getAttribute("title")),null!=k&&(c.style.padding=k),aa.appendChild(c),null==a&&0<d.length&&(a=c,a.style.backgroundColor=m,ia=d),function(b,e){mxEvent.addListener(c,"click",function(){a!=e&&(a.style.backgroundColor="",a=e,a.style.backgroundColor=m,O.scrollTop=0,O.innerHTML="",G=0,ia=ea[b],N=null,x())})}(e,c);x()}c=null!=c?c:!0;g=null!=g?g:!1;m=null!=m?m:"#ebf2f9";n=null!=n?n:Editor.isDarkMode()?"#a2a2a2":"#e6eff8";e=null!=e?e:Editor.isDarkMode()?
-"1px dashed #00a8ff":"1px solid #ccd9ea";l=null!=l?l:EditorUi.templateFile;var H=document.createElement("div");H.style.height="100%";var D=document.createElement("div");D.style.whiteSpace="nowrap";D.style.height="46px";c&&H.appendChild(D);var C=document.createElement("img");C.setAttribute("border","0");C.setAttribute("align","absmiddle");C.style.width="40px";C.style.height="40px";C.style.marginRight="10px";C.style.paddingBottom="4px";C.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":
+0,O.innerHTML="",H=0,ia=U[b],N=null,x())})})(e,c)}b=document.createElement("div");b.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(b,"draw.io");aa.appendChild(b)}for(e in ea)c=document.createElement("div"),b=mxResources.get(e),d=ea[e],null==b&&(b=e.substring(0,1).toUpperCase()+e.substring(1)),18<b.length&&(b=b.substring(0,18)+"&hellip;"),c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;",
+c.setAttribute("title",b+" ("+d.length+")"),mxUtils.write(c,c.getAttribute("title")),null!=k&&(c.style.padding=k),aa.appendChild(c),null==a&&0<d.length&&(a=c,a.style.backgroundColor=m,ia=d),function(b,e){mxEvent.addListener(c,"click",function(){a!=e&&(a.style.backgroundColor="",a=e,a.style.backgroundColor=m,O.scrollTop=0,O.innerHTML="",H=0,ia=ea[b],N=null,x())})}(e,c);x()}c=null!=c?c:!0;g=null!=g?g:!1;m=null!=m?m:"#ebf2f9";n=null!=n?n:Editor.isDarkMode()?"#a2a2a2":"#e6eff8";e=null!=e?e:Editor.isDarkMode()?
+"1px dashed #00a8ff":"1px solid #ccd9ea";l=null!=l?l:EditorUi.templateFile;var G=document.createElement("div");G.style.height="100%";var D=document.createElement("div");D.style.whiteSpace="nowrap";D.style.height="46px";c&&G.appendChild(D);var C=document.createElement("img");C.setAttribute("border","0");C.setAttribute("align","absmiddle");C.style.width="40px";C.style.height="40px";C.style.marginRight="10px";C.style.paddingBottom="4px";C.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":
a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":a.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":a.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":a.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!d&&c&&D.appendChild(C);c&&mxUtils.write(D,(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):
mxResources.get("filename"))+":");C=".drawio";a.mode==App.MODE_GOOGLE&&null!=a.drive?C=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?C=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?C=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?C=a.gitHub.extension:a.mode==App.MODE_GITLAB&&null!=a.gitLab?C=a.gitLab.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(C=a.trello.extension);var F=document.createElement("input");F.setAttribute("value",a.defaultFilename+
C);F.style.marginLeft="10px";F.style.width=d?"144px":"244px";this.init=function(){c&&(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?F.select():document.execCommand("selectAll",!1,null))};c&&(D.appendChild(F),null!=a.editor.diagramFileTypes&&(C=FilenameDialog.createFileTypes(a,F,a.editor.diagramFileTypes),C.style.marginLeft="6px",C.style.width=d?"80px":"180px",D.appendChild(C)),null!=a.editor.fileExtensions&&(C=FilenameDialog.createTypeHint(a,F,a.editor.fileExtensions),C.style.marginTop=
-"12px",D.appendChild(C)));var D=!1,G=0,L=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),I=mxUtils.button(v||mxResources.get("create"),function(){I.setAttribute("disabled","disabled");A();I.removeAttribute("disabled")});I.className="geBtn gePrimaryBtn";if(p||q){var M=[],N=null,K=null,Z=null,J=function(a){I.setAttribute("disabled","disabled");for(var b=0;b<M.length;b++)M[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},
-D=!0;v=document.createElement("div");v.style.whiteSpace="nowrap";v.style.height="30px";H.appendChild(v);C=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){aa.style.display="";O.style.left="160px";J(0);O.scrollTop=0;O.innerHTML="";G=0;N!=ia&&(ia=N,ea=K,fa=Z,aa.innerHTML="",B(),N=null)});M.push(C);v.appendChild(C);var R=function(a){aa.style.display="none";O.style.left="30px";J(a?-1:1);null==N&&(N=ia);O.scrollTop=0;O.innerHTML="";L.spin(O);var b=function(a,b,e){G=0;L.stop();ia=
+"12px",D.appendChild(C)));var D=!1,H=0,L=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),I=mxUtils.button(v||mxResources.get("create"),function(){I.setAttribute("disabled","disabled");y();I.removeAttribute("disabled")});I.className="geBtn gePrimaryBtn";if(p||q){var M=[],N=null,K=null,Z=null,J=function(a){I.setAttribute("disabled","disabled");for(var b=0;b<M.length;b++)M[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},
+D=!0;v=document.createElement("div");v.style.whiteSpace="nowrap";v.style.height="30px";G.appendChild(v);C=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){aa.style.display="";O.style.left="160px";J(0);O.scrollTop=0;O.innerHTML="";H=0;N!=ia&&(ia=N,ea=K,fa=Z,aa.innerHTML="",B(),N=null)});M.push(C);v.appendChild(C);var R=function(a){aa.style.display="none";O.style.left="30px";J(a?-1:1);null==N&&(N=ia);O.scrollTop=0;O.innerHTML="";L.spin(O);var b=function(a,b,e){H=0;L.stop();ia=
a;e=e||{};var c=0,d;for(d in e)c+=e[d].length;if(b)O.innerHTML=b;else if(0==a.length&&0==c)O.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found"));else if(O.innerHTML="",0<c){aa.style.display="";O.style.left="160px";aa.innerHTML="";fa=0;ea={"draw.io":a};for(d in e)ea[d]=e[d];B()}else x()};a?q(S.value,b):p(b)};p&&(C=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){R()}),v.appendChild(C),M.push(C));if(q){C=document.createElement("span");C.style.marginLeft=
"10px";C.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+":");v.appendChild(C);var S=document.createElement("input");S.style.marginRight="10px";S.style.marginLeft="10px";S.style.width="220px";mxEvent.addListener(S,"keypress",function(a){13==a.keyCode&&R(!0)});v.appendChild(S);C=mxUtils.button(mxResources.get("search"),function(){R(!0)});C.className="geBtn";v.appendChild(C)}J(0)}var Y=null,ca=null,ga=null,X=null,W=null,ja=null,da=null,O=document.createElement("div");O.style.border="1px solid #d3d3d3";
O.style.position="absolute";O.style.left="160px";O.style.right="34px";v=(c?72:40)+(D?30:0);O.style.top=v+"px";O.style.bottom="68px";O.style.margin="6px 0 0 -1px";O.style.padding="6px";O.style.overflow="auto";var aa=document.createElement("div");aa.style.cssText="position:absolute;left:30px;width:128px;top:"+v+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";var V=140,Q=140,ea={},U={},fa=0,la=!0;ea.basic=[{title:"blankDiagram",select:!0}];var ia=ea.basic;if(!d){var P=function(){mxUtils.get(ba,
function(a){if(!ma){ma=!0;a=a.getXml().documentElement.firstChild;for(var b={};null!=a;){if("undefined"!==typeof a.getAttribute)if("clibs"==a.nodeName){for(var e=a.getAttribute("name"),c=a.getElementsByTagName("add"),d=[],k=0;k<c.length;k++)d.push(encodeURIComponent(mxUtils.getTextContent(c[k])));null!=e&&0<d.length&&(b[e]=d.join(";"))}else e=a.getAttribute("url"),null!=e&&(c=a.getAttribute("section"),null==c&&(c=e.indexOf("/"),c=e.substring(0,c)),e=ea[c],null==e&&(e=[],ea[c]=e),c=a.getAttribute("clibs"),
-null!=b[c]&&(c=b[c]),e.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),preview:a.getAttribute("preview"),clibs:c}));a=a.nextSibling}L.stop();B()}})};H.appendChild(aa);H.appendChild(O);var ma=!1,ba=l;/^https?:\/\//.test(ba)&&!a.editor.isCorsEnabledForUrl(ba)&&(ba=PROXY_URL+"?url="+encodeURIComponent(ba));L.spin(O);null!=y?y(function(a,b){U=a;Z=fa=b;P()},P):P();K=ea}mxEvent.addListener(F,"keypress",function(b){a.dialog.container.firstChild==
-H&&13==b.keyCode&&A()});l=document.createElement("div");l.style.marginTop=d?"4px":"16px";l.style.textAlign="right";l.style.position="absolute";l.style.left="40px";l.style.bottom="24px";l.style.right="40px";d||a.isOffline()||!c||null!=b||g||(y=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),y.className="geBtn",l.appendChild(y));y=mxUtils.button(mxResources.get("cancel"),function(){null!=f&&f();a.hideDialog(!0)});y.className=
-"geBtn";!a.editor.cancelFirst||g&&null==f||l.appendChild(y);d||"1"==urlParams.embed||g||(d=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(F.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),
+null!=b[c]&&(c=b[c]),e.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),preview:a.getAttribute("preview"),clibs:c}));a=a.nextSibling}L.stop();B()}})};G.appendChild(aa);G.appendChild(O);var ma=!1,ba=l;/^https?:\/\//.test(ba)&&!a.editor.isCorsEnabledForUrl(ba)&&(ba=PROXY_URL+"?url="+encodeURIComponent(ba));L.spin(O);null!=A?A(function(a,b){U=a;Z=fa=b;P()},P):P();K=ea}mxEvent.addListener(F,"keypress",function(b){a.dialog.container.firstChild==
+G&&13==b.keyCode&&y()});l=document.createElement("div");l.style.marginTop=d?"4px":"16px";l.style.textAlign="right";l.style.position="absolute";l.style.left="40px";l.style.bottom="24px";l.style.right="40px";d||a.isOffline()||!c||null!=b||g||(A=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),A.className="geBtn",l.appendChild(A));A=mxUtils.button(mxResources.get("cancel"),function(){null!=f&&f();a.hideDialog(!0)});A.className=
+"geBtn";!a.editor.cancelFirst||g&&null==f||l.appendChild(A);d||"1"==urlParams.embed||g||(d=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(F.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),
d.className="geBtn",l.appendChild(d));Graph.fileSupport&&u&&(u=mxUtils.button(mxResources.get("import"),function(){if(null==a.newDlgFileInputElt){var b=document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(e){a.openFiles(b.files,!0);b.value=""});b.style.display="none";document.body.appendChild(b);a.newDlgFileInputElt=b}a.newDlgFileInputElt.click()}),u.className="geBtn",l.appendChild(u));l.appendChild(I);a.editor.cancelFirst||
-null!=b||g&&null==f||l.appendChild(y);H.appendChild(l);this.container=H},CreateDialog=function(a,d,c,b,g,f,m,n,e,k,l,p,q,t,u,v,y){function x(b,e,c,k){function l(){mxEvent.addListener(f,"click",function(){var b=c;if(m){var e=z.value,k=e.lastIndexOf(".");if(0>d.lastIndexOf(".")&&0>k){var b=null!=b?b:C.value,l="";b==App.MODE_GOOGLE?l=a.drive.extension:b==App.MODE_GITHUB?l=a.gitHub.extension:b==App.MODE_GITLAB?l=a.gitLab.extension:b==App.MODE_TRELLO?l=a.trello.extension:b==App.MODE_DROPBOX?l=a.dropbox.extension:
-b==App.MODE_ONEDRIVE?l=a.oneDrive.extension:b==App.MODE_DEVICE&&(l=".drawio");0<=k&&(e=e.substring(0,k));z.value=e+l}}A(c)})}var f=document.createElement("a");f.style.overflow="hidden";var g=document.createElement("img");g.src=b;g.setAttribute("border","0");g.setAttribute("align","absmiddle");g.style.width="60px";g.style.height="60px";g.style.paddingBottom="6px";f.style.display="inline-block";f.className="geBaseButton";f.style.position="relative";f.style.margin="4px";f.style.padding="8px 8px 10px 8px";
+null!=b||g&&null==f||l.appendChild(A);G.appendChild(l);this.container=G},CreateDialog=function(a,d,c,b,g,f,m,n,e,k,l,p,q,t,u,v,A){function x(b,e,c,k){function l(){mxEvent.addListener(f,"click",function(){var b=c;if(m){var e=z.value,k=e.lastIndexOf(".");if(0>d.lastIndexOf(".")&&0>k){var b=null!=b?b:C.value,l="";b==App.MODE_GOOGLE?l=a.drive.extension:b==App.MODE_GITHUB?l=a.gitHub.extension:b==App.MODE_GITLAB?l=a.gitLab.extension:b==App.MODE_TRELLO?l=a.trello.extension:b==App.MODE_DROPBOX?l=a.dropbox.extension:
+b==App.MODE_ONEDRIVE?l=a.oneDrive.extension:b==App.MODE_DEVICE&&(l=".drawio");0<=k&&(e=e.substring(0,k));z.value=e+l}}y(c)})}var f=document.createElement("a");f.style.overflow="hidden";var g=document.createElement("img");g.src=b;g.setAttribute("border","0");g.setAttribute("align","absmiddle");g.style.width="60px";g.style.height="60px";g.style.paddingBottom="6px";f.style.display="inline-block";f.className="geBaseButton";f.style.position="relative";f.style.margin="4px";f.style.padding="8px 8px 10px 8px";
f.style.whiteSpace="nowrap";f.appendChild(g);f.style.color="gray";f.style.fontSize="11px";var q=document.createElement("div");f.appendChild(q);mxUtils.write(q,e);if(null!=k&&null==a[k]){g.style.visibility="hidden";mxUtils.setOpacity(q,10);var t=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});t.spin(f);var u=window.setTimeout(function(){null==a[k]&&(t.stop(),f.style.display="none")},3E4);a.addListener("clientLoaded",
-mxUtils.bind(this,function(){null!=a[k]&&(window.clearTimeout(u),mxUtils.setOpacity(q,100),g.style.visibility="",t.stop(),l())}))}else l();H.appendChild(f);++D==p&&(mxUtils.br(H),D=0)}function A(b){var e=z.value;if(null==b||null!=e&&0<e.length)y&&a.hideDialog(),c(e,b,z)}m=null!=m?m:!0;n=null!=n?n:!0;p=null!=p?p:4;y=null!=y?y:!0;f=document.createElement("div");f.style.whiteSpace="nowrap";null==b&&a.addLanguageMenu(f);var E=document.createElement("h2");mxUtils.write(E,g||mxResources.get("create"));
+mxUtils.bind(this,function(){null!=a[k]&&(window.clearTimeout(u),mxUtils.setOpacity(q,100),g.style.visibility="",t.stop(),l())}))}else l();G.appendChild(f);++D==p&&(mxUtils.br(G),D=0)}function y(b){var e=z.value;if(null==b||null!=e&&0<e.length)A&&a.hideDialog(),c(e,b,z)}m=null!=m?m:!0;n=null!=n?n:!0;p=null!=p?p:4;A=null!=A?A:!0;f=document.createElement("div");f.style.whiteSpace="nowrap";null==b&&a.addLanguageMenu(f);var E=document.createElement("h2");mxUtils.write(E,g||mxResources.get("create"));
E.style.marginTop="0px";E.style.marginBottom="24px";f.appendChild(E);mxUtils.write(f,mxResources.get("filename")+":");var z=document.createElement("input");z.setAttribute("value",d);z.style.width="200px";z.style.marginLeft="10px";z.style.marginBottom="20px";z.style.maxWidth="70%";this.init=function(){z.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?z.select():document.execCommand("selectAll",!1,null)};f.appendChild(z);null!=v&&(null!=a.editor.diagramFileTypes&&(g=FilenameDialog.createFileTypes(a,
z,a.editor.diagramFileTypes),g.style.marginLeft="6px",g.style.width="80px",f.appendChild(g)),f.appendChild(FilenameDialog.createTypeHint(a,z,v)));v=null;if(null!=q&&null!=t&&"image/"==t.substring(0,6)&&("image/svg"!=t.substring(0,9)||mxClient.IS_SVG)){z.style.width="160px";g=document.createElement("img");var B=u?q:btoa(unescape(encodeURIComponent(q)));g.setAttribute("src","data:"+t+";base64,"+B);g.style.position="absolute";g.style.top="70px";g.style.right="100px";g.style.maxWidth="120px";g.style.maxHeight=
"80px";mxUtils.setPrefixedStyle(g.style,"transform","translate(50%,-50%)");f.appendChild(g);mxClient.IS_FF||null==navigator.clipboard||"image/png"!=t||(v=mxUtils.button(mxResources.get("copy"),function(b){b=a.base64ToBlob(B,"image/png");b=new ClipboardItem({"image/png":b,"text/html":new Blob(['<img src="data:'+t+";base64,"+B+'">'],{type:"text/html"})});navigator.clipboard.write([b]).then(mxUtils.bind(this,function(){a.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(b){a.handleError(b)}))}),
-v.style.marginTop="6px",v.className="geBtn");e&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addGestureListeners(g,null,null,function(a){mxEvent.isPopupTrigger(a)||A("_blank")}))}mxUtils.br(f);var H=document.createElement("div");H.style.textAlign="center";var D=0;H.style.marginTop="6px";f.appendChild(H);var C=document.createElement("select");C.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(q=document.createElement("option"),q.setAttribute("value",
+v.style.marginTop="6px",v.className="geBtn");e&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addGestureListeners(g,null,null,function(a){mxEvent.isPopupTrigger(a)||y("_blank")}))}mxUtils.br(f);var G=document.createElement("div");G.style.textAlign="center";var D=0;G.style.marginTop="6px";f.appendChild(G);var C=document.createElement("select");C.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(q=document.createElement("option"),q.setAttribute("value",
App.MODE_GOOGLE),mxUtils.write(q,mxResources.get("googleDrive")),C.appendChild(q),x(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(q=document.createElement("option"),q.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(q,mxResources.get("oneDrive")),C.appendChild(q),a.mode==App.MODE_ONEDRIVE&&q.setAttribute("selected","selected"),x(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,
"oneDrive")),"function"===typeof window.DropboxClient&&(q=document.createElement("option"),q.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(q,mxResources.get("dropbox")),C.appendChild(q),a.mode==App.MODE_DROPBOX&&q.setAttribute("selected","selected"),x(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=a.gitHub&&(q=document.createElement("option"),q.setAttribute("value",App.MODE_GITHUB),mxUtils.write(q,mxResources.get("github")),C.appendChild(q),x(IMAGE_PATH+
"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=a.gitLab&&(q=document.createElement("option"),q.setAttribute("value",App.MODE_GITLAB),mxUtils.write(q,mxResources.get("gitlab")),C.appendChild(q),x(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),"function"===typeof window.TrelloClient&&(q=document.createElement("option"),q.setAttribute("value",App.MODE_TRELLO),mxUtils.write(q,mxResources.get("trello")),C.appendChild(q),x(IMAGE_PATH+"/trello-logo.svg",
mxResources.get("trello"),App.MODE_TRELLO,"trello")));Editor.useLocalStorage&&"device"!=urlParams.storage&&null==a.getCurrentFile()||(q=document.createElement("option"),q.setAttribute("value",App.MODE_DEVICE),mxUtils.write(q,mxResources.get("device")),C.appendChild(q),a.mode!=App.MODE_DEVICE&&n||q.setAttribute("selected","selected"),l&&x(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE));n&&isLocalStorage&&"0"!=urlParams.browser&&(n=document.createElement("option"),n.setAttribute("value",
App.MODE_BROWSER),mxUtils.write(n,mxResources.get("browser")),C.appendChild(n),a.mode==App.MODE_BROWSER&&n.setAttribute("selected","selected"),x(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));n=document.createElement("div");n.style.marginTop="26px";n.style.textAlign="center";null!=k&&(l=mxUtils.button(mxResources.get("help"),function(){a.openLink(k)}),l.className="geBtn",n.appendChild(l));l=mxUtils.button(mxResources.get(null!=b?"close":"cancel"),function(){null!=b?b():
-(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});l.className="geBtn";a.editor.cancelFirst&&null==b&&n.appendChild(l);null==b&&(q=mxUtils.button(mxResources.get("decideLater"),function(){A(null)}),q.className="geBtn",n.appendChild(q));e&&Editor.popupsAllowed&&(e=mxUtils.button(mxResources.get("openInNewWindow"),function(){A("_blank")}),e.className="geBtn",n.appendChild(e));CreateDialog.showDownloadButton&&(e=mxUtils.button(mxResources.get("download"),function(){A("download")}),
-e.className="geBtn",n.appendChild(e),null!=v&&(e.style.marginTop="6px",n.style.marginTop="6px"));null!=v&&(mxUtils.br(n),n.appendChild(v));a.editor.cancelFirst&&null==b||n.appendChild(l);mxEvent.addListener(z,"keypress",function(b){13==b.keyCode?A(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});f.appendChild(n);this.container=f};CreateDialog.showDownloadButton=!0;
+(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});l.className="geBtn";a.editor.cancelFirst&&null==b&&n.appendChild(l);null==b&&(q=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),q.className="geBtn",n.appendChild(q));e&&Editor.popupsAllowed&&(e=mxUtils.button(mxResources.get("openInNewWindow"),function(){y("_blank")}),e.className="geBtn",n.appendChild(e));CreateDialog.showDownloadButton&&(e=mxUtils.button(mxResources.get("download"),function(){y("download")}),
+e.className="geBtn",n.appendChild(e),null!=v&&(e.style.marginTop="6px",n.style.marginTop="6px"));null!=v&&(mxUtils.br(n),n.appendChild(v));a.editor.cancelFirst&&null==b||n.appendChild(l);mxEvent.addListener(z,"keypress",function(b){13==b.keyCode?y(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});f.appendChild(n);this.container=f};CreateDialog.showDownloadButton=!0;
var PopupDialog=function(a,d,c,b,g){g=null!=g?g:!0;var f=document.createElement("div");f.style.textAlign="left";mxUtils.write(f,mxResources.get("fileOpenLocation"));mxUtils.br(f);mxUtils.br(f);var m=mxUtils.button(mxResources.get("openInThisWindow"),function(){g&&a.hideDialog();null!=b&&b()});m.className="geBtn";m.style.marginBottom="8px";m.style.width="280px";f.appendChild(m);mxUtils.br(f);var n=mxUtils.button(mxResources.get("openInNewWindow"),function(){g&&a.hideDialog();null!=c&&c();a.openLink(d,
null,!0)});n.className="geBtn gePrimaryBtn";n.style.width=m.style.width;f.appendChild(n);mxUtils.br(f);mxUtils.br(f);mxUtils.write(f,mxResources.get("allowPopups"));this.container=f},ImageDialog=function(a,d,c,b,g,f){f=null!=f?f:!0;var m=a.editor.graph,n=document.createElement("div");mxUtils.write(n,d);d=document.createElement("div");d.className="geTitle";d.style.backgroundColor="transparent";d.style.borderColor="transparent";d.style.whiteSpace="nowrap";d.style.textOverflow="clip";d.style.cursor=
"default";d.style.paddingRight="20px";var e=document.createElement("input");e.setAttribute("value",c);e.setAttribute("type","text");e.setAttribute("spellcheck","false");e.setAttribute("autocorrect","off");e.setAttribute("autocomplete","off");e.setAttribute("autocapitalize","off");e.style.marginTop="6px";e.style.width=(Graph.fileSupport?460:340)-20+"px";e.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";e.style.backgroundRepeat="no-repeat";e.style.backgroundPosition="100% 50%";e.style.paddingRight=
@@ -9915,20 +9920,20 @@ c.appendChild(d);ImageDialog.filePicked=function(a){a.action==google.picker.Acti
function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0),p.type="",p.type="file",p.value="")});p.style.display="none";document.body.appendChild(p);a.imgDlgFileInputElt=p}var q=mxUtils.button(mxResources.get("open"),function(){a.imgDlgFileInputElt.click()});q.className="geBtn";c.appendChild(q)}document.createElement("canvas").getContext&&"data:image/"==e.value.substring(0,11)&&"data:image/svg"!=e.value.substring(0,14)&&(q=mxUtils.button(mxResources.get("crop"),
function(){var b=new CropImageDialog(a,e.value,function(a){e.value=a});a.showDialog(b.container,300,380,!0,!0);b.init()}),q.className="geBtn",c.appendChild(q));mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&l(e.value)});q=mxUtils.button(mxResources.get("apply"),function(){l(e.value)});q.className="geBtn gePrimaryBtn";c.appendChild(q);a.editor.cancelFirst||c.appendChild(d);Graph.fileSupport&&(c.style.marginTop="120px",n.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",n.style.backgroundPosition=
"center 65%",n.style.backgroundRepeat="no-repeat",d=document.createElement("div"),d.style.position="absolute",d.style.width="420px",d.style.top="58%",d.style.textAlign="center",d.style.fontSize="18px",d.style.color="#a0c3ff",mxUtils.write(d,mxResources.get("dragImagesHere")),n.appendChild(d));n.appendChild(c);this.container=n},LinkDialog=function(a,d,c,b,g,f,m){function n(a,b,e){e=mxUtils.button("",e);e.className="geBtn";e.setAttribute("title",b);b=document.createElement("img");b.style.height="26px";
-b.style.width="26px";b.setAttribute("src",a);e.style.minWidth="42px";e.style.verticalAlign="middle";e.appendChild(b);A.appendChild(e)}var e=document.createElement("div");mxUtils.write(e,mxResources.get("editLink")+":");var k=document.createElement("div");k.className="geTitle";k.style.backgroundColor="transparent";k.style.borderColor="transparent";k.style.whiteSpace="nowrap";k.style.textOverflow="clip";k.style.cursor="default";k.style.paddingRight="20px";var l=document.createElement("input");l.setAttribute("placeholder",
+b.style.width="26px";b.setAttribute("src",a);e.style.minWidth="42px";e.style.verticalAlign="middle";e.appendChild(b);y.appendChild(e)}var e=document.createElement("div");mxUtils.write(e,mxResources.get("editLink")+":");var k=document.createElement("div");k.className="geTitle";k.style.backgroundColor="transparent";k.style.borderColor="transparent";k.style.whiteSpace="nowrap";k.style.textOverflow="clip";k.style.cursor="default";k.style.paddingRight="20px";var l=document.createElement("input");l.setAttribute("placeholder",
mxResources.get("dragUrlsHere"));l.setAttribute("type","text");l.style.marginTop="6px";l.style.width="100%";l.style.boxSizing="border-box";l.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";l.style.backgroundRepeat="no-repeat";l.style.backgroundPosition="100% 50%";l.style.paddingRight="14px";var p=document.createElement("div");p.setAttribute("title",mxResources.get("reset"));p.style.position="relative";p.style.left="-16px";p.style.width="12px";p.style.height="14px";p.style.cursor="pointer";
p.style.display="inline-block";p.style.top="3px";p.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(p,"click",function(){l.value="";l.focus()});var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","url");q.setAttribute("type","radio");q.setAttribute("name","current-linkdialog");var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","url");t.setAttribute("type",
"radio");t.setAttribute("name","current-linkdialog");var u=document.createElement("select");u.style.width="100%";var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.margin="0 6p 0 6px";null!=m&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);m=null!=m?m:"_blank";v.setAttribute("title",m);f&&(l.style.width="340px");if(g&&null!=a.pages){null!=d&&"data:page/id,"==d.substring(0,13)?(t.setAttribute("checked","checked"),t.defaultChecked=!0):(l.setAttribute("value",
d),q.setAttribute("checked","checked"),q.defaultChecked=!0);k.appendChild(q);k.appendChild(l);k.appendChild(p);f&&(k.appendChild(v),mxUtils.write(k,mxResources.get("openInNewWindow")));mxUtils.br(k);k.appendChild(t);g=!1;for(f=0;f<a.pages.length;f++)p=document.createElement("option"),mxUtils.write(p,a.pages[f].getName()||mxResources.get("pageWithNumber",[f+1])),p.setAttribute("value","data:page/id,"+a.pages[f].getId()),d==p.getAttribute("value")&&(p.setAttribute("selected","selected"),g=!0),u.appendChild(p);
-if(!g&&t.checked){var y=document.createElement("option");mxUtils.write(y,mxResources.get("pageNotFound"));y.setAttribute("disabled","disabled");y.setAttribute("selected","selected");y.setAttribute("value","pageNotFound");u.appendChild(y);mxEvent.addListener(u,"change",function(){null==y.parentNode||y.selected||y.parentNode.removeChild(y)})}k.appendChild(u)}else l.setAttribute("value",d),k.appendChild(l),k.appendChild(p);e.appendChild(k);var x=mxUtils.button(c,function(){a.hideDialog();b(t.checked?
+if(!g&&t.checked){var A=document.createElement("option");mxUtils.write(A,mxResources.get("pageNotFound"));A.setAttribute("disabled","disabled");A.setAttribute("selected","selected");A.setAttribute("value","pageNotFound");u.appendChild(A);mxEvent.addListener(u,"change",function(){null==A.parentNode||A.selected||A.parentNode.removeChild(A)})}k.appendChild(u)}else l.setAttribute("value",d),k.appendChild(l),k.appendChild(p);e.appendChild(k);var x=mxUtils.button(c,function(){a.hideDialog();b(t.checked?
"pageNotFound"!==u.value?u.value:d:l.value,LinkDialog.selectedDocs,v.checked?m:null)});x.style.verticalAlign="middle";x.className="geBtn gePrimaryBtn";this.init=function(){t.checked?u.focus():(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?l.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(u,"focus",function(){q.removeAttribute("checked");t.setAttribute("checked","checked");t.checked=!0});mxEvent.addListener(l,"focus",function(){t.removeAttribute("checked");
q.setAttribute("checked","checked");q.checked=!0});if(Graph.fileSupport){var b=e.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(e){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));e.stopPropagation();e.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),
-c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(l.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),q.setAttribute("checked","checked"),q.checked=!0,x.click());a.stopPropagation();a.preventDefault()}),!1)}};var A=document.createElement("div");A.style.marginTop="20px";A.style.textAlign="center";c=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://www.diagrams.net/doc/faq/custom-links")});c.style.verticalAlign="middle";c.className="geBtn";A.appendChild(c);
-a.isOffline()&&!mxClient.IS_CHROMEAPP&&(c.style.display="none");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.style.verticalAlign="middle";c.className="geBtn";a.editor.cancelFirst&&A.appendChild(c);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(a){if(a.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var b=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||null!=a.docs[0].mimeType&&"application/vnd.jgraph."==a.docs[0].mimeType.substring(0,
+c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(l.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),q.setAttribute("checked","checked"),q.checked=!0,x.click());a.stopPropagation();a.preventDefault()}),!1)}};var y=document.createElement("div");y.style.marginTop="20px";y.style.textAlign="center";c=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://www.diagrams.net/doc/faq/custom-links")});c.style.verticalAlign="middle";c.className="geBtn";y.appendChild(c);
+a.isOffline()&&!mxClient.IS_CHROMEAPP&&(c.style.display="none");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.style.verticalAlign="middle";c.className="geBtn";a.editor.cancelFirst&&y.appendChild(c);LinkDialog.selectedDocs=null;LinkDialog.filePicked=function(a){if(a.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var b=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||null!=a.docs[0].mimeType&&"application/vnd.jgraph."==a.docs[0].mimeType.substring(0,
23)?b="https://www.draw.io/#G"+a.docs[0].id:"application/vnd.google-apps.folder"==a.docs[0].mimeType&&(b="https://drive.google.com/#folders/"+a.docs[0].id);l.value=b;l.focus()}else LinkDialog.selectedDocs=null;l.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=a.drive&&n(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();
if(null==a.linkPicker){var b=a.drive.createLinkPicker();a.linkPicker=b.setCallback(function(a){LinkDialog.filePicked(a)}).build()}a.linkPicker.setVisible(!0)}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&n(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){l.value=a[0].link;l.focus()}})});null!=a.oneDrive&&n(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a,
b){l.value=b.value[0].webUrl;l.focus()})});null!=a.gitHub&&n(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){a.gitHub.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],e=a[1],c=a[2];a=a.slice(3,a.length).join("/");l.value="https://github.com/"+b+"/"+e+"/blob/"+c+"/"+a;l.focus()}})});null!=a.gitLab&&n(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),function(){a.gitLab.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],e=a[1],c=a[2];a=a.slice(3,a.length).join("/");
-l.value=DRAWIO_GITLAB_URL+"/"+b+"/"+e+"/blob/"+c+"/"+a;l.focus()}})});mxEvent.addListener(l,"keypress",function(e){13==e.keyCode&&(a.hideDialog(),b(t.checked?u.value:l.value,LinkDialog.selectedDocs))});A.appendChild(x);a.editor.cancelFirst||A.appendChild(c);e.appendChild(A);this.container=e},FeedbackDialog=function(a,d,c,b){var g=document.createElement("div"),f=document.createElement("div");mxUtils.write(f,mxResources.get("sendYourFeedback"));f.style.fontSize="18px";f.style.marginBottom="18px";g.appendChild(f);
+l.value=DRAWIO_GITLAB_URL+"/"+b+"/"+e+"/blob/"+c+"/"+a;l.focus()}})});mxEvent.addListener(l,"keypress",function(e){13==e.keyCode&&(a.hideDialog(),b(t.checked?u.value:l.value,LinkDialog.selectedDocs))});y.appendChild(x);a.editor.cancelFirst||y.appendChild(c);e.appendChild(y);this.container=e},FeedbackDialog=function(a,d,c,b){var g=document.createElement("div"),f=document.createElement("div");mxUtils.write(f,mxResources.get("sendYourFeedback"));f.style.fontSize="18px";f.style.marginBottom="18px";g.appendChild(f);
f=document.createElement("div");mxUtils.write(f,mxResources.get("yourEmailAddress")+(c?"":" ("+mxResources.get("required")+")"));g.appendChild(f);var m=document.createElement("input");m.setAttribute("type","text");m.style.marginTop="6px";m.style.width="600px";var n=mxUtils.button(mxResources.get("sendMessage"),function(){var e=l.value+(k.checked?"\nDiagram:\n"+(null!=b?b:mxUtils.getXml(a.getXmlFileData())):"")+"\nuserAgent:\n"+navigator.userAgent+"\nappVersion:\n"+navigator.appVersion+"\nappName:\n"+
navigator.appName+"\nplatform:\n"+navigator.platform;e.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(m.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent((null!=d?d:"Feedback")+":\n"+e),function(b){a.spinner.stop();200<=b.getStatus()&&
299>=b.getStatus()?a.alert(mxResources.get("feedbackSent")):a.alert(mxResources.get("errorSendingFeedback"))},function(){a.spinner.stop();a.alert(mxResources.get("errorSendingFeedback"))}))});n.className="geBtn gePrimaryBtn";if(!c){n.setAttribute("disabled","disabled");var e=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;mxEvent.addListener(m,"change",function(){0<m.value.length&&0<e.test(m.value)?
@@ -9938,54 +9943,54 @@ n.removeAttribute("disabled"):n.setAttribute("disabled","disabled")});mxEvent.ad
var RevisionDialog=function(a,d,c){var b=document.createElement("div"),g=document.createElement("h3");g.style.marginTop="0px";mxUtils.write(g,mxResources.get("revisionHistory"));b.appendChild(g);g=document.createElement("div");g.style.position="absolute";g.style.overflow="auto";g.style.width="170px";g.style.height="378px";b.appendChild(g);var f=document.createElement("div");f.style.position="absolute";f.style.border="1px solid lightGray";f.style.left="199px";f.style.width="470px";f.style.height="376px";
f.style.overflow="hidden";var m=document.createElement("div");m.style.cssText="position:absolute;left:0;right:0;top:0;bottom:20px;text-align:center;transform:translate(0,50%);pointer-events:none;";f.appendChild(m);mxEvent.disableContextMenu(f);b.appendChild(f);var n=new Graph(f);n.setTooltips(!1);n.setEnabled(!1);n.setPanning(!0);n.panningHandler.ignoreCell=!0;n.panningHandler.useLeftButtonForPanning=!0;n.minFitScale=null;n.maxFitScale=null;n.centerZoom=!0;var e=0,k=null,l=0,p=n.getGlobalVariable;
n.getGlobalVariable=function(a){return"page"==a&&null!=k&&null!=k[l]?k[l].getAttribute("name"):"pagenumber"==a?l+1:"pagecount"==a?null!=k?k.length:1:p.apply(this,arguments)};n.getLinkForCell=function(){return null};Editor.MathJaxRender&&n.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,e){a.editor.graph.mathEnabled&&Editor.MathJaxRender(n.container)}));for(var q={lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.4,trail:60,
-shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},t=new Spinner(q),u=a.getCurrentFile(),v=a.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),y={},q=0;q<v.length;q++)y[v[q].getAttribute("id")]=v[q];var x=null,A=null,E=null,z=null,B=mxUtils.button("",function(){null!=E&&n.zoomIn()});B.className="geSprite geSprite-zoomin";B.setAttribute("title",mxResources.get("zoomIn"));B.style.outline="none";B.style.border="none";B.style.margin="2px";B.setAttribute("disabled","disabled");
-mxUtils.setOpacity(B,20);var H=mxUtils.button("",function(){null!=E&&n.zoomOut()});H.className="geSprite geSprite-zoomout";H.setAttribute("title",mxResources.get("zoomOut"));H.style.outline="none";H.style.border="none";H.style.margin="2px";H.setAttribute("disabled","disabled");mxUtils.setOpacity(H,20);var D=mxUtils.button("",function(){null!=E&&(n.maxFitScale=8,n.fit(8),n.center())});D.className="geSprite geSprite-fit";D.setAttribute("title",mxResources.get("fit"));D.style.outline="none";D.style.border=
+shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},t=new Spinner(q),u=a.getCurrentFile(),v=a.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),A={},q=0;q<v.length;q++)A[v[q].getAttribute("id")]=v[q];var x=null,y=null,E=null,z=null,B=mxUtils.button("",function(){null!=E&&n.zoomIn()});B.className="geSprite geSprite-zoomin";B.setAttribute("title",mxResources.get("zoomIn"));B.style.outline="none";B.style.border="none";B.style.margin="2px";B.setAttribute("disabled","disabled");
+mxUtils.setOpacity(B,20);var G=mxUtils.button("",function(){null!=E&&n.zoomOut()});G.className="geSprite geSprite-zoomout";G.setAttribute("title",mxResources.get("zoomOut"));G.style.outline="none";G.style.border="none";G.style.margin="2px";G.setAttribute("disabled","disabled");mxUtils.setOpacity(G,20);var D=mxUtils.button("",function(){null!=E&&(n.maxFitScale=8,n.fit(8),n.center())});D.className="geSprite geSprite-fit";D.setAttribute("title",mxResources.get("fit"));D.style.outline="none";D.style.border=
"none";D.style.margin="2px";D.setAttribute("disabled","disabled");mxUtils.setOpacity(D,20);var C=mxUtils.button("",function(){null!=E&&(n.zoomActual(),n.center())});C.className="geSprite geSprite-actualsize";C.setAttribute("title",mxResources.get("actualSize"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled","disabled");mxUtils.setOpacity(C,20);var F=mxUtils.button("",function(){});F.className="geSprite geSprite-middle";F.setAttribute("title",mxResources.get("compare"));
-F.style.outline="none";F.style.border="none";F.style.margin="2px";mxUtils.setOpacity(F,60);var G=f.cloneNode(!1);G.style.pointerEvent="none";f.parentNode.appendChild(G);var L=new Graph(G);L.setTooltips(!1);L.setEnabled(!1);L.setPanning(!0);L.panningHandler.ignoreCell=!0;L.panningHandler.useLeftButtonForPanning=!0;L.minFitScale=null;L.maxFitScale=null;L.centerZoom=!0;mxEvent.addGestureListeners(F,function(a){a=y[k[e].getAttribute("id")];mxUtils.setOpacity(F,20);m.innerHTML="";null==a?mxUtils.write(m,
-mxResources.get("pageNotFound")):(I.style.display="none",f.style.display="none",G.style.display="",G.style.backgroundColor=f.style.backgroundColor,a=Editor.parseDiagramNode(a),(new mxCodec(a.ownerDocument)).decode(a,L.getModel()),L.view.scaleAndTranslate(n.view.scale,n.view.translate.x,n.view.translate.y))},null,function(){mxUtils.setOpacity(F,60);m.innerHTML="";"none"==f.style.display&&(I.style.display="",f.style.display="",G.style.display="none")});var I=document.createElement("div");I.style.position=
+F.style.outline="none";F.style.border="none";F.style.margin="2px";mxUtils.setOpacity(F,60);var H=f.cloneNode(!1);H.style.pointerEvent="none";f.parentNode.appendChild(H);var L=new Graph(H);L.setTooltips(!1);L.setEnabled(!1);L.setPanning(!0);L.panningHandler.ignoreCell=!0;L.panningHandler.useLeftButtonForPanning=!0;L.minFitScale=null;L.maxFitScale=null;L.centerZoom=!0;mxEvent.addGestureListeners(F,function(a){a=A[k[e].getAttribute("id")];mxUtils.setOpacity(F,20);m.innerHTML="";null==a?mxUtils.write(m,
+mxResources.get("pageNotFound")):(I.style.display="none",f.style.display="none",H.style.display="",H.style.backgroundColor=f.style.backgroundColor,a=Editor.parseDiagramNode(a),(new mxCodec(a.ownerDocument)).decode(a,L.getModel()),L.view.scaleAndTranslate(n.view.scale,n.view.translate.x,n.view.translate.y))},null,function(){mxUtils.setOpacity(F,60);m.innerHTML="";"none"==f.style.display&&(I.style.display="",f.style.display="",H.style.display="none")});var I=document.createElement("div");I.style.position=
"absolute";I.style.textAlign="right";I.style.color="gray";I.style.marginTop="10px";I.style.backgroundColor="transparent";I.style.top="440px";I.style.right="32px";I.style.maxWidth="380px";I.style.cursor="default";var M=mxUtils.button(mxResources.get("download"),function(){if(null!=E){var b=mxUtils.getXml(E.documentElement),e=a.getBaseFilename()+".drawio";a.isLocalFileSave()?a.saveLocalFile(b,e,"text/xml"):(b="undefined"===typeof pako?"&xml="+encodeURIComponent(b):"&data="+encodeURIComponent(Graph.compress(b)),
(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(e)+"&format=xml"+b)).simulate(document,"_blank"))}});M.className="geBtn";M.setAttribute("disabled","disabled");var N=mxUtils.button(mxResources.get("restore"),function(b){null!=E&&null!=z&&(mxEvent.isShiftDown(b)?null!=E&&(b=a.getPagesForNode(E.documentElement),b=a.diffPages(a.pages,b),b=new TextareaDialog(a,mxResources.get("compare"),JSON.stringify(b,null,2),function(b){if(0<b.length)try{a.confirm(mxResources.get("areYouSure"),function(){u.patch([JSON.parse(b)],
null,!0);a.hideDialog();a.hideDialog()})}catch(O){a.handleError(O)}},null,null,null,null,null,!0,null,mxResources.get("merge")),b.textarea.style.width="600px",b.textarea.style.height="380px",a.showDialog(b.container,620,460,!0,!0),b.init()):a.confirm(mxResources.get("areYouSure"),function(){null!=c?c(z):a.spinner.spin(document.body,mxResources.get("restoring"))&&u.save(!0,function(b){a.spinner.stop();a.replaceFileData(z);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,
null!=b?mxResources.get("errorSavingFile"):null)})}))});N.className="geBtn";N.setAttribute("disabled","disabled");var K=document.createElement("select");K.setAttribute("disabled","disabled");K.style.maxWidth="80px";K.style.position="relative";K.style.top="-2px";K.style.verticalAlign="bottom";K.style.marginRight="6px";K.style.display="none";var Z=null;mxEvent.addListener(K,"change",function(a){null!=Z&&(Z(a),mxEvent.consume(a))});var J=mxUtils.button(mxResources.get("edit"),function(){null!=E&&(window.openFile=
-new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(E.documentElement)),a.openLink(a.getUrl(),null,!0))});J.className="geBtn";J.setAttribute("disabled","disabled");null!=c&&(J.style.display="none");var R=mxUtils.button(mxResources.get("show"),function(){null!=A&&a.openLink(A.getUrl(K.selectedIndex))});R.className="geBtn gePrimaryBtn";R.setAttribute("disabled","disabled");null!=c&&(R.style.display="none",N.className="geBtn gePrimaryBtn");v=document.createElement("div");
+new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(E.documentElement)),a.openLink(a.getUrl(),null,!0))});J.className="geBtn";J.setAttribute("disabled","disabled");null!=c&&(J.style.display="none");var R=mxUtils.button(mxResources.get("show"),function(){null!=y&&a.openLink(y.getUrl(K.selectedIndex))});R.className="geBtn gePrimaryBtn";R.setAttribute("disabled","disabled");null!=c&&(R.style.display="none",N.className="geBtn gePrimaryBtn");v=document.createElement("div");
v.style.position="absolute";v.style.top="482px";v.style.width="640px";v.style.textAlign="right";var S=document.createElement("div");S.className="geToolbarContainer";S.style.backgroundColor="transparent";S.style.padding="2px";S.style.border="none";S.style.left="199px";S.style.top="442px";var Y=null;if(null!=d&&0<d.length){f.style.cursor="move";var ca=document.createElement("table");ca.style.border="1px solid lightGray";ca.style.borderCollapse="collapse";ca.style.borderSpacing="0px";ca.style.width=
-"100%";var ga=document.createElement("tbody"),X=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(e=mxUtils.indexOf(a.pages,a.currentPage));for(q=d.length-1;0<=q;q--){var W=function(b){var c=new Date(b.modifiedDate),g=null;if(0<=c.getTime()){var q=function(d){t.stop();m.innerHTML="";var p=mxUtils.parseXml(d),q=a.editor.extractGraphModel(p.documentElement,!0);if(null!=q){var v=function(a){null!=a&&(a=x(Editor.parseDiagramNode(a)));return a},x=function(a){var b=a.getAttribute("background");
+"100%";var ga=document.createElement("tbody"),X=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(e=mxUtils.indexOf(a.pages,a.currentPage));for(q=d.length-1;0<=q;q--){var W=function(b){var c=new Date(b.modifiedDate),g=null;if(0<=c.getTime()){var p=function(d){t.stop();m.innerHTML="";var p=mxUtils.parseXml(d),q=a.editor.extractGraphModel(p.documentElement,!0);if(null!=q){var v=function(a){null!=a&&(a=x(Editor.parseDiagramNode(a)));return a},x=function(a){var b=a.getAttribute("background");
if(null==b||""==b||b==mxConstants.NONE)b=n.defaultPageBackgroundColor;f.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,n.getModel());n.maxFitScale=1;n.fit(8);n.center();return a};K.style.display="none";K.innerHTML="";E=p;z=d;k=parseSelectFunction=null;l=0;if("mxfile"==q.nodeName){p=q.getElementsByTagName("diagram");k=[];for(d=0;d<p.length;d++)k.push(p[d]);l=Math.min(e,k.length-1);0<k.length&&v(k[l]);if(1<k.length)for(K.removeAttribute("disabled"),K.style.display="",d=0;d<k.length;d++)p=
document.createElement("option"),mxUtils.write(p,k[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),p.setAttribute("value",d),d==l&&p.setAttribute("selected","selected"),K.appendChild(p);Z=function(){try{var b=parseInt(K.value);l=e=b;v(k[b])}catch(P){K.value=e,a.handleError(P)}}}else x(q);d=b.lastModifyingUserName;null!=d&&20<d.length&&(d=d.substring(0,20)+"...");I.innerHTML="";mxUtils.write(I,(null!=d?d+" ":"")+c.toLocaleDateString()+" "+c.toLocaleTimeString());I.setAttribute("title",
-g.getAttribute("title"));B.removeAttribute("disabled");H.removeAttribute("disabled");D.removeAttribute("disabled");C.removeAttribute("disabled");F.removeAttribute("disabled");null!=u&&u.isRestricted()||(a.editor.graph.isEnabled()&&N.removeAttribute("disabled"),M.removeAttribute("disabled"),R.removeAttribute("disabled"),J.removeAttribute("disabled"));mxUtils.setOpacity(B,60);mxUtils.setOpacity(H,60);mxUtils.setOpacity(D,60);mxUtils.setOpacity(C,60);mxUtils.setOpacity(F,60)}else K.style.display="none",
-K.innerHTML="",I.innerHTML="",mxUtils.write(I,mxResources.get("errorLoadingFile")),mxUtils.write(m,mxResources.get("errorLoadingFile"))},g=document.createElement("tr");g.style.borderBottom="1px solid lightGray";g.style.fontSize="12px";g.style.cursor="pointer";var p=document.createElement("td");p.style.padding="6px";p.style.whiteSpace="nowrap";b==d[d.length-1]?mxUtils.write(p,mxResources.get("current")):c.toDateString()===X?mxUtils.write(p,c.toLocaleTimeString()):mxUtils.write(p,c.toLocaleDateString()+
-" "+c.toLocaleTimeString());g.appendChild(p);g.setAttribute("title",c.toLocaleDateString()+" "+c.toLocaleTimeString()+(null!=b.fileSize?" "+a.formatFileSize(parseInt(b.fileSize)):"")+(null!=b.lastModifyingUserName?" "+b.lastModifyingUserName:""));mxEvent.addListener(g,"click",function(a){A!=b&&(t.stop(),null!=x&&(x.style.backgroundColor=""),A=b,x=g,x.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",z=E=null,I.removeAttribute("title"),I.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+
-"..."),f.style.backgroundColor=n.defaultPageBackgroundColor,m.innerHTML="",n.getModel().clear(),N.setAttribute("disabled","disabled"),M.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"),R.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"),mxUtils.setOpacity(B,20),
-mxUtils.setOpacity(H,20),mxUtils.setOpacity(D,20),mxUtils.setOpacity(C,20),mxUtils.setOpacity(F,20),t.spin(f),b.getXml(function(a){if(A==b)try{q(a)}catch(U){I.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+U.message)}},function(a){t.stop();K.style.display="none";K.innerHTML="";I.innerHTML="";mxUtils.write(I,mxResources.get("errorLoadingFile"));mxUtils.write(m,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(g,"dblclick",function(a){R.click();window.getSelection?
+g.getAttribute("title"));B.removeAttribute("disabled");G.removeAttribute("disabled");D.removeAttribute("disabled");C.removeAttribute("disabled");F.removeAttribute("disabled");null!=u&&u.isRestricted()||(a.editor.graph.isEnabled()&&N.removeAttribute("disabled"),M.removeAttribute("disabled"),R.removeAttribute("disabled"),J.removeAttribute("disabled"));mxUtils.setOpacity(B,60);mxUtils.setOpacity(G,60);mxUtils.setOpacity(D,60);mxUtils.setOpacity(C,60);mxUtils.setOpacity(F,60)}else K.style.display="none",
+K.innerHTML="",I.innerHTML="",mxUtils.write(I,mxResources.get("errorLoadingFile")),mxUtils.write(m,mxResources.get("errorLoadingFile"))},g=document.createElement("tr");g.style.borderBottom="1px solid lightGray";g.style.fontSize="12px";g.style.cursor="pointer";var q=document.createElement("td");q.style.padding="6px";q.style.whiteSpace="nowrap";b==d[d.length-1]?mxUtils.write(q,mxResources.get("current")):c.toDateString()===X?mxUtils.write(q,c.toLocaleTimeString()):mxUtils.write(q,c.toLocaleDateString()+
+" "+c.toLocaleTimeString());g.appendChild(q);g.setAttribute("title",c.toLocaleDateString()+" "+c.toLocaleTimeString()+(null!=b.fileSize?" "+a.formatFileSize(parseInt(b.fileSize)):"")+(null!=b.lastModifyingUserName?" "+b.lastModifyingUserName:""));mxEvent.addListener(g,"click",function(a){y!=b&&(t.stop(),null!=x&&(x.style.backgroundColor=""),y=b,x=g,x.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",z=E=null,I.removeAttribute("title"),I.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+
+"..."),f.style.backgroundColor=n.defaultPageBackgroundColor,m.innerHTML="",n.getModel().clear(),N.setAttribute("disabled","disabled"),M.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"),R.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"),mxUtils.setOpacity(B,20),
+mxUtils.setOpacity(G,20),mxUtils.setOpacity(D,20),mxUtils.setOpacity(C,20),mxUtils.setOpacity(F,20),t.spin(f),b.getXml(function(a){if(y==b)try{p(a)}catch(U){I.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+U.message)}},function(a){t.stop();K.style.display="none";K.innerHTML="";I.innerHTML="";mxUtils.write(I,mxResources.get("errorLoadingFile"));mxUtils.write(m,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(g,"dblclick",function(a){R.click();window.getSelection?
window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);ga.appendChild(g)}return g}(d[q]);null!=W&&q==d.length-1&&(Y=W)}ca.appendChild(ga);g.appendChild(ca)}else null==u||null==a.drive&&u.constructor==window.DriveFile||null==a.dropbox&&u.constructor==window.DropboxFile?(f.style.display="none",S.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(f.style.display="none",S.style.display="none",mxUtils.write(g,mxResources.get("noRevisions")));
-this.init=function(){null!=Y&&Y.click()};g=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.className="geBtn";S.appendChild(K);S.appendChild(B);S.appendChild(H);S.appendChild(C);S.appendChild(D);S.appendChild(F);a.editor.cancelFirst?(v.appendChild(g),v.appendChild(M),v.appendChild(J),v.appendChild(N),v.appendChild(R)):(v.appendChild(M),v.appendChild(J),v.appendChild(N),v.appendChild(R),v.appendChild(g));b.appendChild(v);b.appendChild(S);b.appendChild(I);this.container=b},DraftDialog=
-function(a,d,c,b,g,f,m,n,e){var k=document.createElement("div"),l=document.createElement("div");l.style.marginTop="0px";l.style.whiteSpace="nowrap";l.style.overflow="auto";l.style.lineHeight="normal";mxUtils.write(l,d);k.appendChild(l);var p=document.createElement("select"),q=mxUtils.bind(this,function(){A=mxUtils.parseXml(e[p.value].data);E=a.editor.extractGraphModel(A.documentElement,!0);z=0;this.init()});if(null!=e){p.style.marginLeft="4px";for(d=0;d<e.length;d++){var t=document.createElement("option");
-t.setAttribute("value",d);var u=new Date(e[d].created),v=new Date(e[d].modified);mxUtils.write(t,u.toLocaleDateString()+" "+u.toLocaleTimeString()+" - "+(u.toDateString(),v.toDateString(),v.toLocaleDateString())+" "+v.toLocaleTimeString());p.appendChild(t)}l.appendChild(p);mxEvent.addListener(p,"change",q)}null==c&&(c=e[0].data);var y=document.createElement("div");y.style.position="absolute";y.style.border="1px solid lightGray";y.style.marginTop="10px";y.style.left="40px";y.style.right="40px";y.style.top=
-"46px";y.style.bottom="74px";y.style.overflow="hidden";mxEvent.disableContextMenu(y);k.appendChild(y);var x=new Graph(y);x.setEnabled(!1);x.setPanning(!0);x.panningHandler.ignoreCell=!0;x.panningHandler.useLeftButtonForPanning=!0;x.minFitScale=null;x.maxFitScale=null;x.centerZoom=!0;var A=mxUtils.parseXml(c),E=a.editor.extractGraphModel(A.documentElement,!0),z=0,B=null,H=x.getGlobalVariable;x.getGlobalVariable=function(a){return"page"==a&&null!=B&&null!=B[z]?B[z].getAttribute("name"):"pagenumber"==
-a?z+1:"pagecount"==a?null!=B?B.length:1:H.apply(this,arguments)};x.getLinkForCell=function(){return null};c=mxUtils.button("",function(){x.zoomIn()});c.className="geSprite geSprite-zoomin";c.setAttribute("title",mxResources.get("zoomIn"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);l=mxUtils.button("",function(){x.zoomOut()});l.className="geSprite geSprite-zoomout";l.setAttribute("title",mxResources.get("zoomOut"));l.style.outline="none";l.style.border=
+this.init=function(){null!=Y&&Y.click()};g=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.className="geBtn";S.appendChild(K);S.appendChild(B);S.appendChild(G);S.appendChild(C);S.appendChild(D);S.appendChild(F);a.editor.cancelFirst?(v.appendChild(g),v.appendChild(M),v.appendChild(J),v.appendChild(N),v.appendChild(R)):(v.appendChild(M),v.appendChild(J),v.appendChild(N),v.appendChild(R),v.appendChild(g));b.appendChild(v);b.appendChild(S);b.appendChild(I);this.container=b},DraftDialog=
+function(a,d,c,b,g,f,m,n,e){var k=document.createElement("div"),l=document.createElement("div");l.style.marginTop="0px";l.style.whiteSpace="nowrap";l.style.overflow="auto";l.style.lineHeight="normal";mxUtils.write(l,d);k.appendChild(l);var p=document.createElement("select"),q=mxUtils.bind(this,function(){y=mxUtils.parseXml(e[p.value].data);E=a.editor.extractGraphModel(y.documentElement,!0);z=0;this.init()});if(null!=e){p.style.marginLeft="4px";for(d=0;d<e.length;d++){var t=document.createElement("option");
+t.setAttribute("value",d);var u=new Date(e[d].created),v=new Date(e[d].modified);mxUtils.write(t,u.toLocaleDateString()+" "+u.toLocaleTimeString()+" - "+(u.toDateString(),v.toDateString(),v.toLocaleDateString())+" "+v.toLocaleTimeString());p.appendChild(t)}l.appendChild(p);mxEvent.addListener(p,"change",q)}null==c&&(c=e[0].data);var A=document.createElement("div");A.style.position="absolute";A.style.border="1px solid lightGray";A.style.marginTop="10px";A.style.left="40px";A.style.right="40px";A.style.top=
+"46px";A.style.bottom="74px";A.style.overflow="hidden";mxEvent.disableContextMenu(A);k.appendChild(A);var x=new Graph(A);x.setEnabled(!1);x.setPanning(!0);x.panningHandler.ignoreCell=!0;x.panningHandler.useLeftButtonForPanning=!0;x.minFitScale=null;x.maxFitScale=null;x.centerZoom=!0;var y=mxUtils.parseXml(c),E=a.editor.extractGraphModel(y.documentElement,!0),z=0,B=null,G=x.getGlobalVariable;x.getGlobalVariable=function(a){return"page"==a&&null!=B&&null!=B[z]?B[z].getAttribute("name"):"pagenumber"==
+a?z+1:"pagecount"==a?null!=B?B.length:1:G.apply(this,arguments)};x.getLinkForCell=function(){return null};c=mxUtils.button("",function(){x.zoomIn()});c.className="geSprite geSprite-zoomin";c.setAttribute("title",mxResources.get("zoomIn"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);l=mxUtils.button("",function(){x.zoomOut()});l.className="geSprite geSprite-zoomout";l.setAttribute("title",mxResources.get("zoomOut"));l.style.outline="none";l.style.border=
"none";l.style.margin="2px";mxUtils.setOpacity(l,60);d=mxUtils.button("",function(){x.maxFitScale=8;x.fit(8);x.center()});d.className="geSprite geSprite-fit";d.setAttribute("title",mxResources.get("fit"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);t=mxUtils.button("",function(){x.zoomActual();x.center()});t.className="geSprite geSprite-actualsize";t.setAttribute("title",mxResources.get("actualSize"));t.style.outline="none";t.style.border="none";t.style.margin=
"2px";mxUtils.setOpacity(t,60);m=mxUtils.button(m||mxResources.get("discard"),function(){g.apply(this,[p.value,mxUtils.bind(this,function(){null!=p.parentNode&&(p.options[p.selectedIndex].parentNode.removeChild(p.options[p.selectedIndex]),0<p.options.length?(p.value=p.options[0].value,q()):a.hideDialog(!0))})])});m.className="geBtn";var D=document.createElement("select");D.style.maxWidth="80px";D.style.position="relative";D.style.top="-2px";D.style.verticalAlign="bottom";D.style.marginRight="6px";
D.style.display="none";f=mxUtils.button(f||mxResources.get("edit"),function(){b.apply(this,[p.value])});f.className="geBtn gePrimaryBtn";u=document.createElement("div");u.style.position="absolute";u.style.bottom="30px";u.style.right="40px";u.style.textAlign="right";v=document.createElement("div");v.className="geToolbarContainer";v.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=function(){function a(a){if(null!=
-a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b=Editor.isDarkMode()?"transparent":"#ffffff";y.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,x.getModel());x.maxFitScale=1;x.fit(8);x.center()}return a}function b(b){null!=b&&(b=a(Editor.parseDiagramNode(b)));return b}mxEvent.addListener(D,"change",function(a){z=parseInt(D.value);b(B[z]);mxEvent.consume(a)});if("mxfile"==E.nodeName){var e=E.getElementsByTagName("diagram");B=[];for(var c=0;c<e.length;c++)B.push(e[c]);
+a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b=Editor.isDarkMode()?"transparent":"#ffffff";A.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,x.getModel());x.maxFitScale=1;x.fit(8);x.center()}return a}function b(b){null!=b&&(b=a(Editor.parseDiagramNode(b)));return b}mxEvent.addListener(D,"change",function(a){z=parseInt(D.value);b(B[z]);mxEvent.consume(a)});if("mxfile"==E.nodeName){var e=E.getElementsByTagName("diagram");B=[];for(var c=0;c<e.length;c++)B.push(e[c]);
0<B.length&&b(B[z]);D.innerHTML="";if(1<B.length)for(D.style.display="",c=0;c<B.length;c++)e=document.createElement("option"),mxUtils.write(e,B[c].getAttribute("name")||mxResources.get("pageWithNumber",[c+1])),e.setAttribute("value",c),c==z&&e.setAttribute("selected","selected"),D.appendChild(e);else D.style.display="none"}else a(E)};v.appendChild(D);v.appendChild(c);v.appendChild(l);v.appendChild(t);v.appendChild(d);c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});c.className=
"geBtn";n=null!=n?mxUtils.button(mxResources.get("ignore"),n):null;null!=n&&(n.className="geBtn");a.editor.cancelFirst?(u.appendChild(c),null!=n&&u.appendChild(n),u.appendChild(m),u.appendChild(f)):(u.appendChild(f),u.appendChild(m),null!=n&&u.appendChild(n),u.appendChild(c));k.appendChild(u);k.appendChild(v);this.container=k},FindWindow=function(a,d,c,b,g,f){function m(a,b,e,c){if("object"===typeof b.value&&null!=b.value.attributes){b=b.value.attributes;for(var d=0;d<b.length;d++)if("label"!=b[d].nodeName){var k=
mxUtils.trim(b[d].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&(c&&0<=k.indexOf(e)||!c&&k.substring(0,e.length)===e)||null!=a&&a.test(k))return!0}}return!1}function n(){t&&B.value?(M.removeAttribute("disabled"),N.removeAttribute("disabled")):(M.setAttribute("disabled","disabled"),N.setAttribute("disabled","disabled"));B.value&&z.value?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}function e(b,c,d){L.innerHTML="";var k=l.model.getDescendants(l.model.getRoot()),
-g=z.value.toLowerCase(),M=H.checked?new RegExp(g):null,x=null;v=null;p!=g&&(p=g,q=null,u=!1);var N=null==q;if(0<g.length){if(u){u=!1;for(var K,A=0;A<a.pages.length;A++)if(a.currentPage==a.pages[A]){K=A;break}b=(K+1)%a.pages.length;q=null;do u=!1,k=a.pages[b],l=a.createTemporaryGraph(l.getStylesheet()),a.updatePageRoot(k),l.model.setRoot(k.root),b=(b+1)%a.pages.length;while(!e(!0,c,d)&&b!=K);q&&(q=null,d?a.editor.graph.model.execute(new SelectPage(a,k)):a.selectPage(k));u=!1;l=a.editor.graph;return e(!0,
-c,d)}for(A=0;A<k.length;A++){K=l.view.getState(k[A]);c&&null!=M&&(N=N||K==q);if(null!=K&&null!=K.cell.value&&(N||null==x)&&(l.model.isVertex(K.cell)||l.model.isEdge(K.cell))){null!=K.style&&"1"==K.style.html?(C.innerHTML=l.sanitizeHtml(l.getLabel(K.cell)),label=mxUtils.extractTextWithWhitespace([C])):label=l.getLabel(K.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var J=0;c&&f&&null!=M&&K==q&&(label=label.substr(y),J=y);var G=""==B.value,E=G;if(null==M&&(E&&
-0<=label.indexOf(g)||!E&&label.substring(0,g.length)===g||G&&m(M,K.cell,g,E))||null!=M&&(M.test(label)||G&&m(M,K.cell,g,E)))if(f&&(null!=M?(G=label.match(M),v=G[0].toLowerCase(),y=J+G.index+v.length):(v=g,y=v.length)),N){x=K;break}else null==x&&(x=K)}N=N||K==q}}if(null!=x){if(A==k.length&&D.checked)return q=null,u=!0,e(!0,c,d);q=x;l.scrollCellToVisible(q.cell);l.isEnabled()?d||l.getSelectionCell()==q.cell&&1==l.getSelectionCount()||l.setSelectionCell(q.cell):l.highlightCell(q.cell)}else{if(!b&&D.checked)return u=
-!0,e(!0,c,d);l.isEnabled()&&!d&&l.clearSelection()}t=null!=x;f&&!b&&n();return 0==g.length||null!=x}var k=a.actions.get("findReplace"),l=a.editor.graph,p=null,q=null,t=!1,u=!1,v=null,y=0,x=1,A=document.createElement("div");A.style.userSelect="none";A.style.overflow="hidden";A.style.padding="10px";A.style.height="100%";var E=f?"260px":"200px",z=document.createElement("input");z.setAttribute("placeholder",mxResources.get("find"));z.setAttribute("type","text");z.style.marginTop="4px";z.style.marginBottom=
-"6px";z.style.width=E;z.style.fontSize="12px";z.style.borderRadius="4px";z.style.padding="6px";A.appendChild(z);mxUtils.br(A);var B;f&&(B=document.createElement("input"),B.setAttribute("placeholder",mxResources.get("replaceWith")),B.setAttribute("type","text"),B.style.marginTop="4px",B.style.marginBottom="6px",B.style.width=E,B.style.fontSize="12px",B.style.borderRadius="4px",B.style.padding="6px",A.appendChild(B),mxUtils.br(A),mxEvent.addListener(B,"input",n));var H=document.createElement("input");
-H.setAttribute("id","geFindWinRegExChck");H.setAttribute("type","checkbox");H.style.marginRight="4px";A.appendChild(H);E=document.createElement("label");E.setAttribute("for","geFindWinRegExChck");A.appendChild(E);mxUtils.write(E,mxResources.get("regularExpression"));A.appendChild(E);E=a.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");E.style.position="relative";E.style.marginLeft="6px";E.style.top="-1px";A.appendChild(E);mxUtils.br(A);var D=document.createElement("input");D.setAttribute("id",
-"geFindWinAllPagesChck");D.setAttribute("type","checkbox");D.style.marginRight="4px";A.appendChild(D);E=document.createElement("label");E.setAttribute("for","geFindWinAllPagesChck");A.appendChild(E);mxUtils.write(E,mxResources.get("allPages"));A.appendChild(E);var C=document.createElement("div");mxUtils.br(A);E=document.createElement("div");E.style.left="0px";E.style.right="0px";E.style.marginTop="6px";E.style.padding="0 6px 0 6px";E.style.textAlign="center";A.appendChild(E);var F=mxUtils.button(mxResources.get("reset"),
-function(){L.innerHTML="";z.value="";z.style.backgroundColor="";f&&(B.value="",n());p=q=null;u=!1;z.focus()});F.setAttribute("title",mxResources.get("reset"));F.style["float"]="none";F.style.width="120px";F.style.marginTop="6px";F.style.marginLeft="8px";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.className="geBtn";f||E.appendChild(F);var G=mxUtils.button(mxResources.get("find"),function(){try{z.style.backgroundColor=e()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(J){a.handleError(J)}});
-G.setAttribute("title",mxResources.get("find")+" (Enter)");G.style["float"]="none";G.style.width="120px";G.style.marginTop="6px";G.style.marginLeft="8px";G.style.overflow="hidden";G.style.textOverflow="ellipsis";G.className="geBtn gePrimaryBtn";E.appendChild(G);var L=document.createElement("div");L.style.marginTop="10px";if(f){var I=function(a,b,e,c,d){if(null==d||"1"!=d.html)return c=a.toLowerCase().indexOf(b,c),0>c?a:a.substr(0,c)+e+a.substr(c+b.length);var k=a;b=mxUtils.htmlEntities(b);d=[];for(var l=
+g=z.value.toLowerCase(),M=G.checked?new RegExp(g):null,x=null;v=null;p!=g&&(p=g,q=null,u=!1);var N=null==q;if(0<g.length){if(u){u=!1;for(var K,y=0;y<a.pages.length;y++)if(a.currentPage==a.pages[y]){K=y;break}b=(K+1)%a.pages.length;q=null;do u=!1,k=a.pages[b],l=a.createTemporaryGraph(l.getStylesheet()),a.updatePageRoot(k),l.model.setRoot(k.root),b=(b+1)%a.pages.length;while(!e(!0,c,d)&&b!=K);q&&(q=null,d?a.editor.graph.model.execute(new SelectPage(a,k)):a.selectPage(k));u=!1;l=a.editor.graph;return e(!0,
+c,d)}for(y=0;y<k.length;y++){K=l.view.getState(k[y]);c&&null!=M&&(N=N||K==q);if(null!=K&&null!=K.cell.value&&(N||null==x)&&(l.model.isVertex(K.cell)||l.model.isEdge(K.cell))){null!=K.style&&"1"==K.style.html?(C.innerHTML=l.sanitizeHtml(l.getLabel(K.cell)),label=mxUtils.extractTextWithWhitespace([C])):label=l.getLabel(K.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var J=0;c&&f&&null!=M&&K==q&&(label=label.substr(A),J=A);var H=""==B.value,E=H;if(null==M&&(E&&
+0<=label.indexOf(g)||!E&&label.substring(0,g.length)===g||H&&m(M,K.cell,g,E))||null!=M&&(M.test(label)||H&&m(M,K.cell,g,E)))if(f&&(null!=M?(H=label.match(M),v=H[0].toLowerCase(),A=J+H.index+v.length):(v=g,A=v.length)),N){x=K;break}else null==x&&(x=K)}N=N||K==q}}if(null!=x){if(y==k.length&&D.checked)return q=null,u=!0,e(!0,c,d);q=x;l.scrollCellToVisible(q.cell);l.isEnabled()?d||l.getSelectionCell()==q.cell&&1==l.getSelectionCount()||l.setSelectionCell(q.cell):l.highlightCell(q.cell)}else{if(!b&&D.checked)return u=
+!0,e(!0,c,d);l.isEnabled()&&!d&&l.clearSelection()}t=null!=x;f&&!b&&n();return 0==g.length||null!=x}var k=a.actions.get("findReplace"),l=a.editor.graph,p=null,q=null,t=!1,u=!1,v=null,A=0,x=1,y=document.createElement("div");y.style.userSelect="none";y.style.overflow="hidden";y.style.padding="10px";y.style.height="100%";var E=f?"260px":"200px",z=document.createElement("input");z.setAttribute("placeholder",mxResources.get("find"));z.setAttribute("type","text");z.style.marginTop="4px";z.style.marginBottom=
+"6px";z.style.width=E;z.style.fontSize="12px";z.style.borderRadius="4px";z.style.padding="6px";y.appendChild(z);mxUtils.br(y);var B;f&&(B=document.createElement("input"),B.setAttribute("placeholder",mxResources.get("replaceWith")),B.setAttribute("type","text"),B.style.marginTop="4px",B.style.marginBottom="6px",B.style.width=E,B.style.fontSize="12px",B.style.borderRadius="4px",B.style.padding="6px",y.appendChild(B),mxUtils.br(y),mxEvent.addListener(B,"input",n));var G=document.createElement("input");
+G.setAttribute("id","geFindWinRegExChck");G.setAttribute("type","checkbox");G.style.marginRight="4px";y.appendChild(G);E=document.createElement("label");E.setAttribute("for","geFindWinRegExChck");y.appendChild(E);mxUtils.write(E,mxResources.get("regularExpression"));y.appendChild(E);E=a.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");E.style.position="relative";E.style.marginLeft="6px";E.style.top="-1px";y.appendChild(E);mxUtils.br(y);var D=document.createElement("input");D.setAttribute("id",
+"geFindWinAllPagesChck");D.setAttribute("type","checkbox");D.style.marginRight="4px";y.appendChild(D);E=document.createElement("label");E.setAttribute("for","geFindWinAllPagesChck");y.appendChild(E);mxUtils.write(E,mxResources.get("allPages"));y.appendChild(E);var C=document.createElement("div");mxUtils.br(y);E=document.createElement("div");E.style.left="0px";E.style.right="0px";E.style.marginTop="6px";E.style.padding="0 6px 0 6px";E.style.textAlign="center";y.appendChild(E);var F=mxUtils.button(mxResources.get("reset"),
+function(){L.innerHTML="";z.value="";z.style.backgroundColor="";f&&(B.value="",n());p=q=null;u=!1;z.focus()});F.setAttribute("title",mxResources.get("reset"));F.style["float"]="none";F.style.width="120px";F.style.marginTop="6px";F.style.marginLeft="8px";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.className="geBtn";f||E.appendChild(F);var H=mxUtils.button(mxResources.get("find"),function(){try{z.style.backgroundColor=e()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(J){a.handleError(J)}});
+H.setAttribute("title",mxResources.get("find")+" (Enter)");H.style["float"]="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className="geBtn gePrimaryBtn";E.appendChild(H);var L=document.createElement("div");L.style.marginTop="10px";if(f){var I=function(a,b,e,c,d){if(null==d||"1"!=d.html)return c=a.toLowerCase().indexOf(b,c),0>c?a:a.substr(0,c)+e+a.substr(c+b.length);var k=a;b=mxUtils.htmlEntities(b);d=[];for(var l=
-1;-1<(l=a.indexOf("<",l+1));)d.push(l);l=a.match(/<[^>]*>/g);a=a.replace(/<[^>]*>/g,"");c=a.toLowerCase().indexOf(b,c);if(0>c)return k;k=c+b.length;e=mxUtils.htmlEntities(e);a=a.substr(0,c)+e+a.substr(k);for(var f=0,g=0;g<d.length;g++){if(d[g]-f<c)a=a.substr(0,d[g])+l[g]+a.substr(d[g]);else{var p=d[g]-f<k?c+f:d[g]+(e.length-b.length);a=a.substr(0,p)+l[g]+a.substr(p)}f+=l[g].length}return a},M=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=v&&null!=q&&B.value){var b=q.cell,c=l.getLabel(b);
-l.model.setValue(b,I(c,v,B.value,y-v.length,l.getCurrentCellStyle(b)));z.style.backgroundColor=e(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(S){a.handleError(S)}});M.setAttribute("title",mxResources.get("replFind"));M.style["float"]="none";M.style.width="120px";M.style.marginTop="6px";M.style.marginLeft="8px";M.style.overflow="hidden";M.style.textOverflow="ellipsis";M.className="geBtn gePrimaryBtn";M.setAttribute("disabled","disabled");E.appendChild(M);mxUtils.br(E);var N=mxUtils.button(mxResources.get("replace"),
-function(){try{if(null!=v&&null!=q&&B.value){var b=q.cell,e=l.getLabel(b);l.model.setValue(b,I(e,v,B.value,y-v.length,l.getCurrentCellStyle(b)));M.setAttribute("disabled","disabled");N.setAttribute("disabled","disabled")}}catch(S){a.handleError(S)}});N.setAttribute("title",mxResources.get("replace"));N.style["float"]="none";N.style.width="120px";N.style.marginTop="6px";N.style.marginLeft="8px";N.style.overflow="hidden";N.style.textOverflow="ellipsis";N.className="geBtn gePrimaryBtn";N.setAttribute("disabled",
-"disabled");E.appendChild(N);var K=mxUtils.button(mxResources.get("replaceAll"),function(){L.innerHTML="";if(B.value){var b=a.currentPage,c=a.editor.graph.getSelectionCells();a.editor.graph.rendering=!1;l.getModel().beginUpdate();try{for(var d=0,k={};e(!1,!0,!0)&&100>d;){var f=q.cell,g=l.getLabel(f),p=k[f.id];if(p&&p.replAllMrk==x&&p.replAllPos>=y)break;k[f.id]={replAllMrk:x,replAllPos:y};l.model.setValue(f,I(g,v,B.value,y-v.length,l.getCurrentCellStyle(f)));d++}b!=a.currentPage&&a.editor.graph.model.execute(new SelectPage(a,
+l.model.setValue(b,I(c,v,B.value,A-v.length,l.getCurrentCellStyle(b)));z.style.backgroundColor=e(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(S){a.handleError(S)}});M.setAttribute("title",mxResources.get("replFind"));M.style["float"]="none";M.style.width="120px";M.style.marginTop="6px";M.style.marginLeft="8px";M.style.overflow="hidden";M.style.textOverflow="ellipsis";M.className="geBtn gePrimaryBtn";M.setAttribute("disabled","disabled");E.appendChild(M);mxUtils.br(E);var N=mxUtils.button(mxResources.get("replace"),
+function(){try{if(null!=v&&null!=q&&B.value){var b=q.cell,e=l.getLabel(b);l.model.setValue(b,I(e,v,B.value,A-v.length,l.getCurrentCellStyle(b)));M.setAttribute("disabled","disabled");N.setAttribute("disabled","disabled")}}catch(S){a.handleError(S)}});N.setAttribute("title",mxResources.get("replace"));N.style["float"]="none";N.style.width="120px";N.style.marginTop="6px";N.style.marginLeft="8px";N.style.overflow="hidden";N.style.textOverflow="ellipsis";N.className="geBtn gePrimaryBtn";N.setAttribute("disabled",
+"disabled");E.appendChild(N);var K=mxUtils.button(mxResources.get("replaceAll"),function(){L.innerHTML="";if(B.value){var b=a.currentPage,c=a.editor.graph.getSelectionCells();a.editor.graph.rendering=!1;l.getModel().beginUpdate();try{for(var d=0,k={};e(!1,!0,!0)&&100>d;){var f=q.cell,g=l.getLabel(f),p=k[f.id];if(p&&p.replAllMrk==x&&p.replAllPos>=A)break;k[f.id]={replAllMrk:x,replAllPos:A};l.model.setValue(f,I(g,v,B.value,A-v.length,l.getCurrentCellStyle(f)));d++}b!=a.currentPage&&a.editor.graph.model.execute(new SelectPage(a,
b));mxUtils.write(L,mxResources.get("matchesRepl",[d]))}catch(W){a.handleError(W)}finally{l.getModel().endUpdate(),a.editor.graph.setSelectionCells(c),a.editor.graph.rendering=!0}x++}});K.setAttribute("title",mxResources.get("replaceAll"));K.style["float"]="none";K.style.width="120px";K.style.marginTop="6px";K.style.marginLeft="8px";K.style.overflow="hidden";K.style.textOverflow="ellipsis";K.className="geBtn gePrimaryBtn";K.setAttribute("disabled","disabled");E.appendChild(K);mxUtils.br(E);E.appendChild(F);
-F=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));F.setAttribute("title",mxResources.get("close"));F.style["float"]="none";F.style.width="120px";F.style.marginTop="6px";F.style.marginLeft="8px";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.className="geBtn";E.appendChild(F);mxUtils.br(E);E.appendChild(L)}else F.style.width="90px",G.style.width="90px";mxEvent.addListener(z,"keyup",function(a){if(91==a.keyCode||93==a.keyCode||17==a.keyCode)mxEvent.consume(a);
-else if(27==a.keyCode)k.funct();else if(p!=z.value.toLowerCase()||13==a.keyCode)try{z.style.backgroundColor=e()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(R){z.style.backgroundColor=Editor.isDarkMode()?"#ff0000":"#ffcfcf"}});mxEvent.addListener(A,"keydown",function(b){70==b.keyCode&&a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(k.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find")+(f?"/"+mxResources.get("replace"):""),A,d,c,b,g,!0,!0);this.window.destroyOnClose=
+F=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));F.setAttribute("title",mxResources.get("close"));F.style["float"]="none";F.style.width="120px";F.style.marginTop="6px";F.style.marginLeft="8px";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.className="geBtn";E.appendChild(F);mxUtils.br(E);E.appendChild(L)}else F.style.width="90px",H.style.width="90px";mxEvent.addListener(z,"keyup",function(a){if(91==a.keyCode||93==a.keyCode||17==a.keyCode)mxEvent.consume(a);
+else if(27==a.keyCode)k.funct();else if(p!=z.value.toLowerCase()||13==a.keyCode)try{z.style.backgroundColor=e()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(R){z.style.backgroundColor=Editor.isDarkMode()?"#ff0000":"#ffcfcf"}});mxEvent.addListener(y,"keydown",function(b){70==b.keyCode&&a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(k.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find")+(f?"/"+mxResources.get("replace"):""),y,d,c,b,g,!0,!0);this.window.destroyOnClose=
!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(z.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?z.select():document.execCommand("selectAll",!1,null),null!=a.pages&&1<a.pages.length?D.removeAttribute("disabled"):(D.checked=!1,D.setAttribute("disabled","disabled"))):l.container.focus()}));this.window.setLocation=function(a,b){var e=window.innerHeight||
document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,e-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var Z=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",Z);this.destroy=
function(){mxEvent.removeListener(window,"resize",Z);this.window.destroy()}},FreehandWindow=function(a,d,c,b,g){var f=a.editor.graph;a=document.createElement("div");a.style.userSelect="none";a.style.overflow="hidden";a.style.height="100%";var m=mxUtils.button(mxResources.get("startDrawing"),function(){f.freehand.isDrawing()&&f.freehand.stopDrawing();f.freehand.startDrawing()});m.setAttribute("title",mxResources.get("startDrawing"));m.style.marginTop="8px";m.style.marginRight="4px";m.style.width="160px";
@@ -10009,9 +10014,9 @@ null!=b.image?p.innerHTML+='<img border="0" src="'+b.image+'"/>':null==b.desc&&(
e=document.createElement("div");e.className="geDialogTitle";mxUtils.write(e,mxResources.get("shapes"));e.style.position="absolute";e.style.top="0px";e.style.left="0px";e.style.lineHeight="40px";e.style.height="40px";e.style.right="0px";var l=document.createElement("div"),p=document.createElement("div");l.style.position="absolute";l.style.top="40px";l.style.left="0px";l.style.width="202px";l.style.bottom="60px";l.style.overflow="auto";p.style.position="absolute";p.style.left="202px";p.style.right=
"0px";p.style.top="40px";p.style.bottom="60px";p.style.overflow="auto";p.style.borderLeft="1px solid rgb(211, 211, 211)";p.style.textAlign="center";var q=null,t=[],u=document.createElement("div");u.style.position="relative";u.style.left="0px";u.style.right="0px";f(c);b.style.padding="30px";b.appendChild(e);b.appendChild(l);b.appendChild(p);c=document.createElement("div");c.className="geDialogFooter";c.style.position="absolute";c.style.paddingRight="16px";c.style.color="gray";c.style.left="0px";c.style.right=
"0px";c.style.bottom="0px";c.style.height="60px";c.style.lineHeight="52px";var v=document.createElement("input");v.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)f=document.createElement("span"),f.style.paddingRight="20px",f.appendChild(v),mxUtils.write(f," "+mxResources.get("rememberThisSetting")),v.checked=!0,v.defaultChecked=!0,mxEvent.addListener(f,"click",function(a){mxEvent.getSource(a)!=v&&(v.checked=!v.checked,mxEvent.consume(a))}),c.appendChild(f);f=mxUtils.button(mxResources.get("cancel"),
-function(){a.hideDialog()});f.className="geBtn";e=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=[],e=0;e<t.length;e++){var c=t[e].apply(this,arguments);null!=c&&b.push(c)}a.sidebar.showEntries(b.join(";"),v.checked,!0)});e.className="geBtn gePrimaryBtn"}else{var y=document.createElement("table"),f=document.createElement("tbody");b.style.height="100%";b.style.overflow="auto";e=document.createElement("tr");y.style.width="100%";d=document.createElement("td");var g=document.createElement("td"),
-m=document.createElement("td"),x=mxUtils.bind(this,function(b,e,c){var d=document.createElement("input");d.type="checkbox";y.appendChild(d);d.checked=a.sidebar.isEntryVisible(c);var k=document.createElement("span");mxUtils.write(k,e);e=document.createElement("div");e.style.display="block";e.appendChild(d);e.appendChild(k);mxEvent.addListener(k,"click",function(a){d.checked=!d.checked;mxEvent.consume(a)});b.appendChild(e);return function(){return d.checked?c:null}});e.appendChild(d);e.appendChild(g);
-e.appendChild(m);f.appendChild(e);y.appendChild(f);for(var t=[],A=0,f=0;f<c.length;f++)for(e=0;e<c[f].entries.length;e++)A++;for(var E=[d,g,m],z=0,f=0;f<c.length;f++)(function(a){for(var b=0;b<a.entries.length;b++){var e=a.entries[b];t.push(x(E[Math.floor(z/(A/3))],e.title,e.id));z++}})(c[f]);b.appendChild(y);c=document.createElement("div");c.style.marginTop="18px";c.style.textAlign="center";v=document.createElement("input");isLocalStorage&&(v.setAttribute("type","checkbox"),v.checked=!0,v.defaultChecked=
+function(){a.hideDialog()});f.className="geBtn";e=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=[],e=0;e<t.length;e++){var c=t[e].apply(this,arguments);null!=c&&b.push(c)}a.sidebar.showEntries(b.join(";"),v.checked,!0)});e.className="geBtn gePrimaryBtn"}else{var A=document.createElement("table"),f=document.createElement("tbody");b.style.height="100%";b.style.overflow="auto";e=document.createElement("tr");A.style.width="100%";d=document.createElement("td");var g=document.createElement("td"),
+m=document.createElement("td"),x=mxUtils.bind(this,function(b,e,c){var d=document.createElement("input");d.type="checkbox";A.appendChild(d);d.checked=a.sidebar.isEntryVisible(c);var k=document.createElement("span");mxUtils.write(k,e);e=document.createElement("div");e.style.display="block";e.appendChild(d);e.appendChild(k);mxEvent.addListener(k,"click",function(a){d.checked=!d.checked;mxEvent.consume(a)});b.appendChild(e);return function(){return d.checked?c:null}});e.appendChild(d);e.appendChild(g);
+e.appendChild(m);f.appendChild(e);A.appendChild(f);for(var t=[],y=0,f=0;f<c.length;f++)for(e=0;e<c[f].entries.length;e++)y++;for(var E=[d,g,m],z=0,f=0;f<c.length;f++)(function(a){for(var b=0;b<a.entries.length;b++){var e=a.entries[b];t.push(x(E[Math.floor(z/(y/3))],e.title,e.id));z++}})(c[f]);b.appendChild(A);c=document.createElement("div");c.style.marginTop="18px";c.style.textAlign="center";v=document.createElement("input");isLocalStorage&&(v.setAttribute("type","checkbox"),v.checked=!0,v.defaultChecked=
!0,c.appendChild(v),f=document.createElement("span"),mxUtils.write(f," "+mxResources.get("rememberThisSetting")),c.appendChild(f),mxEvent.addListener(f,"click",function(a){v.checked=!v.checked;mxEvent.consume(a)}));b.appendChild(c);f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});f.className="geBtn";e=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],e=0;e<t.length;e++){var c=t[e].apply(this,arguments);null!=c&&b.push(c)}a.sidebar.showEntries(0<b.length?
b.join(";"):"",v.checked);a.hideDialog()});e.className="geBtn gePrimaryBtn";c=document.createElement("div");c.style.marginTop="26px";c.style.textAlign="right"}a.editor.cancelFirst?(c.appendChild(f),c.appendChild(e)):(c.appendChild(e),c.appendChild(f));b.appendChild(c);this.container=b},PluginsDialog=function(a,d,c){function b(){if(0==m.length)f.innerHTML=mxUtils.htmlEntities(mxResources.get("noPlugins"));else{f.innerHTML="";for(var e=0;e<m.length;e++){var d=document.createElement("span");d.style.whiteSpace=
"nowrap";var k=document.createElement("span");k.className="geSprite geSprite-delete";k.style.position="relative";k.style.cursor="pointer";k.style.top="5px";k.style.marginRight="4px";k.style.display="inline-block";d.appendChild(k);mxUtils.write(d,m[e]);f.appendChild(d);mxUtils.br(f);mxEvent.addListener(k,"click",function(e){return function(){a.confirm(mxResources.get("delete")+' "'+m[e]+'"?',function(){null!=c&&c(m[e]);m.splice(e,1);b()})}}(e))}}}var g=document.createElement("div"),f=document.createElement("div");
@@ -10027,33 +10032,33 @@ document.createElement("tr"),e=document.createElement("td"),k=document.createEle
mxUtils.write(e,mxResources.get("left")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=b?b.x:"";k.appendChild(p);n.appendChild(e);n.appendChild(k);m.appendChild(n);n=document.createElement("tr");e=document.createElement("td");k=document.createElement("td");mxUtils.write(e,mxResources.get("top")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=b?b.y:"";k.appendChild(q);n.appendChild(e);
n.appendChild(k);m.appendChild(n);n=document.createElement("tr");e=document.createElement("td");k=document.createElement("td");mxUtils.write(e,mxResources.get("dx")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=b&&null!=b.offset?b.offset.x:"";k.appendChild(t);n.appendChild(e);n.appendChild(k);m.appendChild(n);n=document.createElement("tr");e=document.createElement("td");k=document.createElement("td");mxUtils.write(e,mxResources.get("dy")+
":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=b&&null!=b.offset?b.offset.y:"";k.appendChild(u);n.appendChild(e);n.appendChild(k);m.appendChild(n);n=document.createElement("tr");e=document.createElement("td");k=document.createElement("td");mxUtils.write(e,mxResources.get("width")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.width="100px";v.value=null!=b?b.width:"";k.appendChild(v);n.appendChild(e);n.appendChild(k);
-m.appendChild(n);n=document.createElement("tr");e=document.createElement("td");k=document.createElement("td");mxUtils.write(e,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=null!=b?b.height:"";k.appendChild(y);n.appendChild(e);n.appendChild(k);m.appendChild(n);n=document.createElement("tr");e=document.createElement("td");k=document.createElement("td");mxUtils.write(e,mxResources.get("rotation")+":");var x=document.createElement("input");
-x.setAttribute("type","text");x.style.width="100px";x.value=1==d.length?mxUtils.getValue(c.getCellStyle(d[0]),mxConstants.STYLE_ROTATION,0):"";k.appendChild(x);n.appendChild(e);n.appendChild(k);m.appendChild(n);f.appendChild(m);g.appendChild(f);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";var A=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var b=0;b<d.length;b++){var e=c.getCellGeometry(d[b]);null!=
-e&&(e=e.clone(),c.isCellMovable(d[b])&&(e.relative=l.checked,0<mxUtils.trim(p.value).length&&(e.x=Number(p.value)),0<mxUtils.trim(q.value).length&&(e.y=Number(q.value)),0<mxUtils.trim(t.value).length&&(null==e.offset&&(e.offset=new mxPoint),e.offset.x=Number(t.value)),0<mxUtils.trim(u.value).length&&(null==e.offset&&(e.offset=new mxPoint),e.offset.y=Number(u.value))),c.isCellResizable(d[b])&&(0<mxUtils.trim(v.value).length&&(e.width=Number(v.value)),0<mxUtils.trim(y.value).length&&(e.height=Number(y.value))),
-c.getModel().setGeometry(d[b],e));0<mxUtils.trim(x.value).length&&c.setCellStyles(mxConstants.STYLE_ROTATION,Number(x.value),[d[b]])}}finally{c.getModel().endUpdate()}});A.className="geBtn gePrimaryBtn";mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&A.click()});f=document.createElement("div");f.style.marginTop="20px";f.style.textAlign="right";a.editor.cancelFirst?(f.appendChild(b),f.appendChild(A)):(f.appendChild(A),f.appendChild(b));g.appendChild(f);this.container=g},LibraryDialog=function(a,
-d,c,b,g,f){function m(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=t;)a=a.parentNode;var b=null;if(null!=a)for(var e=t.firstChild,b=0;null!=e&&e!=a;)e=e.nextSibling,b++;return b}function n(b,e,c,d,k,f,g,p,q){try{if(a.spinner.stop(),null==e||"image/"==e.substring(0,6))if(null==b&&null!=g||null==v[b]){var M=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=F.title&&0<F.title.length?F.title:
-mxResources.get("untitled"));D.style.color=null==F.title||0==F.title.length?"#d0d0d0":""};t.style.backgroundImage="";u.style.display="none";var B=k,x=f;if(k>a.maxImageSize||f>a.maxImageSize){var N=Math.min(1,Math.min(a.maxImageSize/Math.max(1,k)),a.maxImageSize/Math.max(1,f));k*=N;f*=N}B>x?(x=Math.round(100*x/B),B=100):(B=Math.round(100*B/x),x=100);var K=document.createElement("div");K.setAttribute("draggable","true");K.style.display="inline-block";K.style.position="relative";K.style.cursor="move";
+m.appendChild(n);n=document.createElement("tr");e=document.createElement("td");k=document.createElement("td");mxUtils.write(e,mxResources.get("height")+":");var A=document.createElement("input");A.setAttribute("type","text");A.style.width="100px";A.value=null!=b?b.height:"";k.appendChild(A);n.appendChild(e);n.appendChild(k);m.appendChild(n);n=document.createElement("tr");e=document.createElement("td");k=document.createElement("td");mxUtils.write(e,mxResources.get("rotation")+":");var x=document.createElement("input");
+x.setAttribute("type","text");x.style.width="100px";x.value=1==d.length?mxUtils.getValue(c.getCellStyle(d[0]),mxConstants.STYLE_ROTATION,0):"";k.appendChild(x);n.appendChild(e);n.appendChild(k);m.appendChild(n);f.appendChild(m);g.appendChild(f);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";var y=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var b=0;b<d.length;b++){var e=c.getCellGeometry(d[b]);null!=
+e&&(e=e.clone(),c.isCellMovable(d[b])&&(e.relative=l.checked,0<mxUtils.trim(p.value).length&&(e.x=Number(p.value)),0<mxUtils.trim(q.value).length&&(e.y=Number(q.value)),0<mxUtils.trim(t.value).length&&(null==e.offset&&(e.offset=new mxPoint),e.offset.x=Number(t.value)),0<mxUtils.trim(u.value).length&&(null==e.offset&&(e.offset=new mxPoint),e.offset.y=Number(u.value))),c.isCellResizable(d[b])&&(0<mxUtils.trim(v.value).length&&(e.width=Number(v.value)),0<mxUtils.trim(A.value).length&&(e.height=Number(A.value))),
+c.getModel().setGeometry(d[b],e));0<mxUtils.trim(x.value).length&&c.setCellStyles(mxConstants.STYLE_ROTATION,Number(x.value),[d[b]])}}finally{c.getModel().endUpdate()}});y.className="geBtn gePrimaryBtn";mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&y.click()});f=document.createElement("div");f.style.marginTop="20px";f.style.textAlign="right";a.editor.cancelFirst?(f.appendChild(b),f.appendChild(y)):(f.appendChild(y),f.appendChild(b));g.appendChild(f);this.container=g},LibraryDialog=function(a,
+d,c,b,g,f){function m(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=t;)a=a.parentNode;var b=null;if(null!=a)for(var e=t.firstChild,b=0;null!=e&&e!=a;)e=e.nextSibling,b++;return b}function n(b,e,c,d,k,f,g,p,q){try{if(a.spinner.stop(),null==e||"image/"==e.substring(0,6))if(null==b&&null!=g||null==v[b]){var M=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=I.title&&0<I.title.length?I.title:
+mxResources.get("untitled"));D.style.color=null==I.title||0==I.title.length?"#d0d0d0":""};t.style.backgroundImage="";u.style.display="none";var B=k,x=f;if(k>a.maxImageSize||f>a.maxImageSize){var N=Math.min(1,Math.min(a.maxImageSize/Math.max(1,k)),a.maxImageSize/Math.max(1,f));k*=N;f*=N}B>x?(x=Math.round(100*x/B),B=100):(B=Math.round(100*B/x),x=100);var K=document.createElement("div");K.setAttribute("draggable","true");K.style.display="inline-block";K.style.position="relative";K.style.cursor="move";
mxUtils.setPrefixedStyle(K.style,"transition","transform .1s ease-in-out");if(null!=b){var C=document.createElement("img");C.setAttribute("src",E.convert(b));C.style.width=B+"px";C.style.height=x+"px";C.style.margin="10px";C.style.paddingBottom=Math.floor((100-x)/2)+"px";C.style.paddingLeft=Math.floor((100-B)/2)+"px";K.appendChild(C)}else if(null!=g){var H=a.stringToCells(Graph.decompress(g.xml));0<H.length&&(a.sidebar.createThumb(H,100,100,K,null,!0,!1),K.firstChild.style.display="inline-block",
K.firstChild.style.cursor="")}var G=document.createElement("img");G.setAttribute("src",Editor.closeImage);G.setAttribute("border","0");G.setAttribute("title",mxResources.get("delete"));G.setAttribute("align","top");G.style.paddingTop="4px";G.style.position="absolute";G.style.marginLeft="-12px";G.style.zIndex="1";G.style.cursor="pointer";mxEvent.addListener(G,"dragstart",function(a){mxEvent.consume(a)});(function(a,b,e){mxEvent.addListener(G,"click",function(c){v[b]=null;for(var d=0;d<l.length;d++)if(null!=
l[d].data&&l[d].data==b||null!=l[d].xml&&null!=e&&l[d].xml==e.xml){l.splice(d,1);break}K.parentNode.removeChild(a);0==l.length&&(t.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",u.style.display="");mxEvent.consume(c)});mxEvent.addListener(G,"dblclick",function(a){mxEvent.consume(a)})})(K,b,g);K.appendChild(G);K.style.marginBottom="30px";var D=document.createElement("div");D.style.position="absolute";D.style.boxSizing="border-box";D.style.bottom="-18px";D.style.left="10px";D.style.right=
-"10px";D.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";D.style.overflow="hidden";D.style.textAlign="center";var F=null;null!=b?(F={data:b,w:k,h:f,title:q},null!=p&&(F.aspect=p),v[b]=C,l.push(F)):null!=g&&(g.aspect="fixed",l.push(g),F=g);mxEvent.addListener(D,"keydown",function(a){13==a.keyCode&&null!=A&&(A(),A=null,mxEvent.consume(a))});M();K.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});H=function(b){if(mxClient.IS_IOS||
-mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var e=new FilenameDialog(a,F.title||"",mxResources.get("ok"),function(a){null!=a&&(F.title=a,M())},mxResources.get("enterValue"));a.showDialog(e.container,300,80,!0,!0);e.init();mxEvent.consume(b)}else if("true"!=D.getAttribute("contentEditable")){null!=A&&(A(),A=null);if(null==F.title||0==F.title.length)D.innerHTML="";D.style.textOverflow="";D.style.whiteSpace="";D.style.cursor="text";D.style.color="";D.setAttribute("contentEditable",
-"true");mxUtils.setPrefixedStyle(D.style,"user-select","text");D.focus();document.execCommand("selectAll",!1,null);A=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";F.title=D.innerHTML;M()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",H);mxEvent.addListener(K,"dblclick",H);t.appendChild(K);mxEvent.addListener(K,"dragstart",function(a){null==b&&null!=g&&(G.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",
-g.xml);y=m(a);mxClient.IS_GC&&(K.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(K.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(K,30);G.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(K,"dragend",function(a){"hidden"==G.style.visibility&&(G.style.visibility="",D.style.visibility="");y=null;mxUtils.setOpacity(K,100);mxUtils.setPrefixedStyle(K.style,"transform",null)})}else z||(z=!0,a.handleError({message:mxResources.get("fileExists")}));else{k=
-!1;try{if(B=mxUtils.parseXml(b),"mxlibrary"==B.documentElement.nodeName){x=JSON.parse(mxUtils.getTextContent(B.documentElement));if(null!=x&&0<x.length)for(var I=0;I<x.length;I++)null!=x[I].xml?n(null,null,0,0,0,0,x[I]):n(x[I].data,null,0,0,x[I].w,x[I].h,null,"fixed",x[I].title);k=!0}else if("mxfile"==B.documentElement.nodeName){for(var L=B.documentElement.getElementsByTagName("diagram"),I=0;I<L.length;I++){var x=mxUtils.getTextContent(L[I]),H=a.stringToCells(Graph.decompress(x)),aa=a.editor.graph.getBoundingBoxFromGeometry(H);
-n(null,null,0,0,0,0,{xml:x,w:aa.width,h:aa.height})}k=!0}}catch(V){}k||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(V){}return null}function e(a){a.dataTransfer.dropEffect=null!=y?"move":"copy";a.stopPropagation();a.preventDefault()}function k(b){b.stopPropagation();b.preventDefault();z=!1;x=m(b);if(null!=y)null!=x&&x<t.children.length?(l.splice(x>y?x-1:x,0,l.splice(y,1)[0]),t.insertBefore(t.children[y],t.children[x])):(l.push(l.splice(y,1)[0]),t.appendChild(t.children[y]));
+"10px";D.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";D.style.overflow="hidden";D.style.textAlign="center";var I=null;null!=b?(I={data:b,w:k,h:f,title:q},null!=p&&(I.aspect=p),v[b]=C,l.push(I)):null!=g&&(g.aspect="fixed",l.push(g),I=g);mxEvent.addListener(D,"keydown",function(a){13==a.keyCode&&null!=y&&(y(),y=null,mxEvent.consume(a))});M();K.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});H=function(b){if(mxClient.IS_IOS||
+mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var e=new FilenameDialog(a,I.title||"",mxResources.get("ok"),function(a){null!=a&&(I.title=a,M())},mxResources.get("enterValue"));a.showDialog(e.container,300,80,!0,!0);e.init();mxEvent.consume(b)}else if("true"!=D.getAttribute("contentEditable")){null!=y&&(y(),y=null);if(null==I.title||0==I.title.length)D.innerHTML="";D.style.textOverflow="";D.style.whiteSpace="";D.style.cursor="text";D.style.color="";D.setAttribute("contentEditable",
+"true");mxUtils.setPrefixedStyle(D.style,"user-select","text");D.focus();document.execCommand("selectAll",!1,null);y=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";I.title=D.innerHTML;M()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",H);mxEvent.addListener(K,"dblclick",H);t.appendChild(K);mxEvent.addListener(K,"dragstart",function(a){null==b&&null!=g&&(G.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",
+g.xml);A=m(a);mxClient.IS_GC&&(K.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(K.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(K,30);G.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(K,"dragend",function(a){"hidden"==G.style.visibility&&(G.style.visibility="",D.style.visibility="");A=null;mxUtils.setOpacity(K,100);mxUtils.setPrefixedStyle(K.style,"transform",null)})}else z||(z=!0,a.handleError({message:mxResources.get("fileExists")}));else{k=
+!1;try{if(B=mxUtils.parseXml(b),"mxlibrary"==B.documentElement.nodeName){x=JSON.parse(mxUtils.getTextContent(B.documentElement));if(null!=x&&0<x.length)for(var F=0;F<x.length;F++)null!=x[F].xml?n(null,null,0,0,0,0,x[F]):n(x[F].data,null,0,0,x[F].w,x[F].h,null,"fixed",x[F].title);k=!0}else if("mxfile"==B.documentElement.nodeName){for(var L=B.documentElement.getElementsByTagName("diagram"),F=0;F<L.length;F++){var x=mxUtils.getTextContent(L[F]),H=a.stringToCells(Graph.decompress(x)),aa=a.editor.graph.getBoundingBoxFromGeometry(H);
+n(null,null,0,0,0,0,{xml:x,w:aa.width,h:aa.height})}k=!0}}catch(V){}k||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(V){}return null}function e(a){a.dataTransfer.dropEffect=null!=A?"move":"copy";a.stopPropagation();a.preventDefault()}function k(b){b.stopPropagation();b.preventDefault();z=!1;x=m(b);if(null!=A)null!=x&&x<t.children.length?(l.splice(x>A?x-1:x,0,l.splice(A,1)[0]),t.insertBefore(t.children[A],t.children[x])):(l.push(l.splice(A,1)[0]),t.appendChild(t.children[A]));
else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,B(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var e=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(e)||/(\.png)($|\?)/i.test(e)||/(\.gif)($|\?)/i.test(e)||/(\.svg)($|\?)/i.test(e))&&a.loadImage(e,function(a){n(e,null,0,0,a.width,a.height);t.scrollTop=t.scrollHeight})}b.stopPropagation();b.preventDefault()}var l=[];c=document.createElement("div");
c.style.height="100%";var p=document.createElement("div");p.style.whiteSpace="nowrap";p.style.height="40px";c.appendChild(p);mxUtils.write(p,mxResources.get("filename")+":");null==d&&(d=a.defaultLibraryName+".xml");var q=document.createElement("input");q.setAttribute("value",d);q.style.marginRight="20px";q.style.marginLeft="10px";q.style.width="500px";null==g||g.isRenamable()||q.setAttribute("disabled","true");this.init=function(){if(null==g||g.isRenamable())q.focus(),mxClient.IS_GC||mxClient.IS_FF||
5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};p.appendChild(q);var t=document.createElement("div");t.style.borderWidth="1px 0px 1px 0px";t.style.borderColor="#d3d3d3";t.style.borderStyle="solid";t.style.marginTop="6px";t.style.overflow="auto";t.style.height="340px";t.style.backgroundPosition="center center";t.style.backgroundRepeat="no-repeat";0==l.length&&Graph.fileSupport&&(t.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var u=document.createElement("div");
-u.style.position="absolute";u.style.width="640px";u.style.top="260px";u.style.textAlign="center";u.style.fontSize="22px";u.style.color="#a0c3ff";mxUtils.write(u,mxResources.get("dragImagesHere"));c.appendChild(u);var v={},y=null,x=null,A=null;d=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=A&&(A(),A=null,mxEvent.consume(a))};mxEvent.addListener(t,"mousedown",d);mxEvent.addListener(t,"pointerdown",d);mxEvent.addListener(t,"touchstart",d);var E=new mxUrlConverter,z=
+u.style.position="absolute";u.style.width="640px";u.style.top="260px";u.style.textAlign="center";u.style.fontSize="22px";u.style.color="#a0c3ff";mxUtils.write(u,mxResources.get("dragImagesHere"));c.appendChild(u);var v={},A=null,x=null,y=null;d=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=y&&(y(),y=null,mxEvent.consume(a))};mxEvent.addListener(t,"mousedown",d);mxEvent.addListener(t,"pointerdown",d);mxEvent.addListener(t,"touchstart",d);var E=new mxUrlConverter,z=
!1;if(null!=b)for(d=0;d<b.length;d++)p=b[d],n(p.data,null,0,0,p.w,p.h,p,p.aspect,p.title);mxEvent.addListener(t,"dragleave",function(a){u.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==t||b==u){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});var B=function(b){return function(e,c,d,k,l,f,g,p,q){null!=q&&(/(\.v(dx|sdx?))($|\?)/i.test(q.name)||/(\.vs(x|sx?))($|\?)/i.test(q.name))?a.importVisio(q,mxUtils.bind(this,function(a){n(a,c,d,k,l,f,g,"fixed",mxEvent.isAltDown(b)?
null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," "))})):null!=q&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(e,q.name)?a.parseFile(q,mxUtils.bind(this,function(e){4==e.readyState&&(a.spinner.stop(),200<=e.status&&299>=e.status&&(n(e.responseText,c,d,k,l,f,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),t.scrollTop=t.scrollHeight))})):(n(e,c,d,k,l,f,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g,
" ")),t.scrollTop=t.scrollHeight)}};mxEvent.addListener(t,"dragover",e);mxEvent.addListener(t,"drop",k);mxEvent.addListener(u,"dragover",e);mxEvent.addListener(u,"drop",k);c.appendChild(t);b=document.createElement("div");b.style.textAlign="right";b.style.marginTop="20px";d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});d.setAttribute("id","btnCancel");d.className="geBtn";a.editor.cancelFirst&&b.appendChild(d);"draw.io"!=a.getServiceName()||null==g||g.constructor!=DriveLibrary&&
g.constructor!=GitHubLibrary||(p=mxUtils.button(mxResources.get("link"),function(){a.spinner.spin(document.body,mxResources.get("loading"))&&g.getPublicUrl(function(b){a.spinner.stop();if(null!=b){var e=a.getSearch("create title mode url drive splash state clibs ui".split(" ")),e=e+((0==e.length?"?":"&")+"splash=0&clibs=U"+encodeURIComponent(b));b=new EmbedDialog(a,window.location.protocol+"//"+window.location.host+"/"+e,null,null,null,null,"Check out the library I made using @drawio");a.showDialog(b.container,
440,240,!0);b.init()}else g.constructor==DriveLibrary?a.showError(mxResources.get("error"),mxResources.get("diagramIsNotPublic"),mxResources.get("share"),mxUtils.bind(this,function(){a.drive.showPermissions(g.getId())}),null,mxResources.get("ok"),mxUtils.bind(this,function(){})):a.handleError({message:mxResources.get("diagramIsNotPublic")})})}),p.className="geBtn",b.appendChild(p));p=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(l),e=q.value;/(\.xml)$/i.test(e)||
-(e+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,e,"text/xml",null,null,!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(e)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,"_blank")});p.setAttribute("id","btnDownload");p.className="geBtn";b.appendChild(p);if(Graph.fileSupport){if(null==a.libDlgFileInputElt){var H=document.createElement("input");H.setAttribute("multiple","multiple");H.setAttribute("type","file");mxEvent.addListener(H,"change",function(b){z=!1;
-a.importFiles(H.files,0,0,a.maxImageSize,function(a,e,c,d,k,l,f,g,p){null!=H.files&&(B(b)(a,e,c,d,k,l,f,g,p),H.type="",H.type="file",H.value="")});t.scrollTop=t.scrollHeight});H.style.display="none";document.body.appendChild(H);a.libDlgFileInputElt=H}p=mxUtils.button(mxResources.get("import"),function(){null!=A&&(A(),A=null);a.libDlgFileInputElt.click()});p.setAttribute("id","btnAddImage");p.className="geBtn";b.appendChild(p)}p=mxUtils.button(mxResources.get("addImages"),function(){null!=A&&(A(),
-A=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,e){z=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var c=a.indexOf(",");0<c&&(a=a.substring(0,c)+";base64,"+a.substring(c+1))}n(a,null,0,0,b,e);t.scrollTop=t.scrollHeight}})});p.setAttribute("id","btnAddImageUrl");p.className="geBtn";b.appendChild(p);this.saveBtnClickHandler=function(b,e,c,d){a.saveLibrary(b,e,c,d)};p=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=A&&(A(),A=null);this.saveBtnClickHandler(q.value,
+(e+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,e,"text/xml",null,null,!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(e)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,"_blank")});p.setAttribute("id","btnDownload");p.className="geBtn";b.appendChild(p);if(Graph.fileSupport){if(null==a.libDlgFileInputElt){var G=document.createElement("input");G.setAttribute("multiple","multiple");G.setAttribute("type","file");mxEvent.addListener(G,"change",function(b){z=!1;
+a.importFiles(G.files,0,0,a.maxImageSize,function(a,e,c,d,k,l,f,g,p){null!=G.files&&(B(b)(a,e,c,d,k,l,f,g,p),G.type="",G.type="file",G.value="")});t.scrollTop=t.scrollHeight});G.style.display="none";document.body.appendChild(G);a.libDlgFileInputElt=G}p=mxUtils.button(mxResources.get("import"),function(){null!=y&&(y(),y=null);a.libDlgFileInputElt.click()});p.setAttribute("id","btnAddImage");p.className="geBtn";b.appendChild(p)}p=mxUtils.button(mxResources.get("addImages"),function(){null!=y&&(y(),
+y=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,e){z=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var c=a.indexOf(",");0<c&&(a=a.substring(0,c)+";base64,"+a.substring(c+1))}n(a,null,0,0,b,e);t.scrollTop=t.scrollHeight}})});p.setAttribute("id","btnAddImageUrl");p.className="geBtn";b.appendChild(p);this.saveBtnClickHandler=function(b,e,c,d){a.saveLibrary(b,e,c,d)};p=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=y&&(y(),y=null);this.saveBtnClickHandler(q.value,
l,g,f)}));p.setAttribute("id","btnSave");p.className="geBtn gePrimaryBtn";b.appendChild(p);a.editor.cancelFirst||b.appendChild(d);c.appendChild(b);this.container=c},EditShapeDialog=function(a,d,c,b,g){b=null!=b?b:300;g=null!=g?g:120;var f,m,n=document.createElement("table"),e=document.createElement("tbody");n.style.cellPadding="4px";f=document.createElement("tr");m=document.createElement("td");m.setAttribute("colspan","2");m.style.fontSize="10pt";mxUtils.write(m,c);f.appendChild(m);e.appendChild(f);
f=document.createElement("tr");m=document.createElement("td");var k=document.createElement("textarea");k.style.outline="none";k.style.resize="none";k.style.width=b-200+"px";k.style.height=g+"px";this.textarea=k;this.init=function(){k.focus();k.scrollTop=0};m.appendChild(k);f.appendChild(m);m=document.createElement("td");c=document.createElement("div");c.style.position="relative";c.style.border="1px solid gray";c.style.top="6px";c.style.width="200px";c.style.height=g+4+"px";c.style.overflow="hidden";
c.style.marginBottom="16px";mxEvent.disableContextMenu(c);m.appendChild(c);var l=new Graph(c);l.setEnabled(!1);var p=a.editor.graph.cloneCell(d);l.addCells([p]);c=l.view.getState(p);var q="";null!=c.shape&&null!=c.shape.stencil&&(q=mxUtils.getPrettyXml(c.shape.stencil.desc));mxUtils.write(k,q||"");c=l.getGraphBounds();g=Math.min(160/c.width,(g-40)/c.height);l.view.scaleAndTranslate(g,20/g-c.x,20/g-c.y);f.appendChild(m);e.appendChild(f);f=document.createElement("tr");m=document.createElement("td");
@@ -10069,39 +10074,39 @@ mxResources.get("linkToDiagramHint",null,"Add a link to this diagram. The diagra
var a=window.innerWidth,c=window.innerHeight,b=987,g=712;.9*a<b&&(b=Math.max(.9*a,600),d.style.width=b+"px");.9*c<g&&(g=Math.max(.9*c,300),d.style.height=g+"px");this.width=b;this.height=g;this.container=d};
TemplatesDialog.prototype.init=function(a,d,c,b,g,f,m,n,e,k){function l(){null!=C&&(C.style.fontWeight="normal",C.style.textDecoration="none",C=null)}function p(a,b,e,c,d,k,l){if(-1<a.className.indexOf("geTempDlgRadioBtnActive"))return!1;a.className+=" geTempDlgRadioBtnActive";B.querySelector(".geTempDlgRadioBtn[data-id="+c+"]").className="geTempDlgRadioBtn "+(l?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");B.querySelector("."+b).src="/images/"+e+"-sel.svg";B.querySelector("."+d).src="/images/"+
k+".svg";return!0}function q(a){function b(a){Y.removeChild(c);B.removeChild(e);Y.scrollTop=k}a=a.prevImgUrl||a.imgUrl||TEMPLATE_PATH+"/"+a.url.substring(0,a.url.length-4)+".png";var e=document.createElement("div");e.className="geTempDlgDialogMask";B.appendChild(e);var c=document.createElement("div");c.className="geTempDlgDiagramPreviewBox";var d=document.createElement("img");d.src=a;c.appendChild(d);a=document.createElement("img");a.src="/images/close.png";a.className="geTempDlgPreviewCloseBtn";
-a.setAttribute("title",mxResources.get("close"));c.appendChild(a);var k=Y.scrollTop;mxEvent.addListener(a,"click",b);mxEvent.addListener(e,"click",b);Y.appendChild(c);Y.scrollTop=0;c.style.lineHeight=c.clientHeight+"px"}function t(a,b,e){if(null!=F){for(var c=F.className.split(" "),d=0;d<c.length;d++)if(-1<c[d].indexOf("Active")){c.splice(d,1);break}F.className=c.join(" ")}null!=a?(F=a,F.className+=" "+b,G=e,W.className="geTempDlgCreateBtn"):(G=F=null,W.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")}
-function u(b){if(null!=G){var c=G;G=null;W.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";c.isExternal?(1==b?k(c.url,c,"nameInput.value"):e(c.url,c,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+c.url,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(d(b.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function v(a){a=a?"":"none";for(var b=B.querySelectorAll(".geTempDlgLinkToDiagram"),e=0;e<b.length;e++)b[e].style.display=
-a}function y(a,b,e){function c(){W.innerHTML=b?mxUtils.htmlEntities(mxResources.get("create")):mxUtils.htmlEntities(mxResources.get("copy"));v(!b)}J.innerHTML="";t();N=a;var d=null;if(e){d=document.createElement("table");d.className="geTempDlgDiagramsListGrid";var k=document.createElement("tr"),l=document.createElement("th");l.style.width="50%";l.innerHTML=mxUtils.htmlEntities(mxResources.get("diagram",null,"Diagram"));k.appendChild(l);l=document.createElement("th");l.style.width="25%";l.innerHTML=
+a.setAttribute("title",mxResources.get("close"));c.appendChild(a);var k=Y.scrollTop;mxEvent.addListener(a,"click",b);mxEvent.addListener(e,"click",b);Y.appendChild(c);Y.scrollTop=0;c.style.lineHeight=c.clientHeight+"px"}function t(a,b,e){if(null!=F){for(var c=F.className.split(" "),d=0;d<c.length;d++)if(-1<c[d].indexOf("Active")){c.splice(d,1);break}F.className=c.join(" ")}null!=a?(F=a,F.className+=" "+b,H=e,W.className="geTempDlgCreateBtn"):(H=F=null,W.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")}
+function u(b){if(null!=H){var c=H;H=null;W.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";c.isExternal?(1==b?k(c.url,c,"nameInput.value"):e(c.url,c,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+c.url,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(d(b.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function v(a){a=a?"":"none";for(var b=B.querySelectorAll(".geTempDlgLinkToDiagram"),e=0;e<b.length;e++)b[e].style.display=
+a}function A(a,b,e){function c(){W.innerHTML=b?mxUtils.htmlEntities(mxResources.get("create")):mxUtils.htmlEntities(mxResources.get("copy"));v(!b)}J.innerHTML="";t();N=a;var d=null;if(e){d=document.createElement("table");d.className="geTempDlgDiagramsListGrid";var k=document.createElement("tr"),l=document.createElement("th");l.style.width="50%";l.innerHTML=mxUtils.htmlEntities(mxResources.get("diagram",null,"Diagram"));k.appendChild(l);l=document.createElement("th");l.style.width="25%";l.innerHTML=
mxUtils.htmlEntities(mxResources.get("changedBy",null,"Changed By"));k.appendChild(l);l=document.createElement("th");l.style.width="25%";l.innerHTML=mxUtils.htmlEntities(mxResources.get("lastModifiedOn",null,"Last modified on"));k.appendChild(l);d.appendChild(k);J.appendChild(d)}for(k=0;k<a.length;k++){a[k].isExternal=!b;var f=a[k].url,l=mxUtils.htmlEntities(a[k].title),g=a[k].tooltip||a[k].title,p=a[k].imgUrl,m=mxUtils.htmlEntities(a[k].changedBy||""),M=mxUtils.htmlEntities(a[k].lastModifiedOn||
"");p||(p=TEMPLATE_PATH+"/"+f.substring(0,f.length-4)+".png");f=e?50:15;null!=l&&l.length>f&&(l=l.substring(0,f)+"&hellip;");if(e){var n=document.createElement("tr"),p=document.createElement("td"),z=document.createElement("img");z.src="/images/icon-search.svg";z.className="geTempDlgDiagramListPreviewBtn";z.setAttribute("title",mxResources.get("preview"));p.appendChild(z);g=document.createElement("span");g.className="geTempDlgDiagramTitle";g.innerHTML=l;p.appendChild(g);n.appendChild(p);p=document.createElement("td");
p.innerHTML=m;n.appendChild(p);p=document.createElement("td");p.innerHTML=M;n.appendChild(p);d.appendChild(n);null==F&&(c(),t(n,"geTempDlgDiagramsListGridActive",a[k]));(function(a,b){mxEvent.addListener(n,"click",function(){F!=b&&(c(),t(b,"geTempDlgDiagramsListGridActive",a))});mxEvent.addListener(n,"dblclick",u);mxEvent.addListener(z,"click",function(){q(a)})})(a[k],n)}else{var B=document.createElement("div");B.className="geTempDlgDiagramTile";B.setAttribute("title",g);null==F&&(c(),t(B,"geTempDlgDiagramTileActive",
a[k]));m=document.createElement("div");m.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var x=document.createElement("img");x.style.display="none";(function(a,b){x.onload=function(){b.className="geTempDlgDiagramTileImg";a.style.display=""};x.onerror=function(){b.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(x,m);x.src=p;m.appendChild(x);B.appendChild(m);m=document.createElement("div");m.className="geTempDlgDiagramTileLbl";m.innerHTML=null!=l?l:"";B.appendChild(m);
z=document.createElement("img");z.src="/images/icon-search.svg";z.className="geTempDlgDiagramPreviewBtn";z.setAttribute("title",mxResources.get("preview"));B.appendChild(z);(function(a,b){mxEvent.addListener(B,"click",function(){F!=b&&(c(),t(b,"geTempDlgDiagramTileActive",a))});mxEvent.addListener(B,"dblclick",u);mxEvent.addListener(z,"click",function(){q(a)})})(a[k],B);J.appendChild(B)}}}function x(a,b){X.innerHTML="";t();for(var e=!b&&5<a.length?5:a.length,c=0;c<e;c++){var d=a[c];d.isCategory=!0;
var k=document.createElement("div"),l=mxResources.get(d.title);null==l&&(l=d.title.substring(0,1).toUpperCase()+d.title.substring(1));k.className="geTempDlgNewDiagramCatItem";k.setAttribute("title",l);l=mxUtils.htmlEntities(l);15<l.length&&(l=l.substring(0,15)+"&hellip;");null==F&&(W.innerHTML=mxUtils.htmlEntities(mxResources.get("create")),v(),t(k,"geTempDlgNewDiagramCatItemActive",d));var f=document.createElement("div");f.className="geTempDlgNewDiagramCatItemImg";var g=document.createElement("img");
-g.src=NEW_DIAGRAM_CATS_PATH+"/"+d.img;f.appendChild(g);k.appendChild(f);f=document.createElement("div");f.className="geTempDlgNewDiagramCatItemLbl";f.innerHTML=l;k.appendChild(f);X.appendChild(k);(function(a,b){mxEvent.addListener(k,"click",function(){F!=b&&(W.innerHTML=mxUtils.htmlEntities(mxResources.get("create")),v(),t(b,"geTempDlgNewDiagramCatItemActive",a))});mxEvent.addListener(k,"dblclick",u)})(d,k)}Z.style.display=5>a.length?"none":""}function A(a){var b=B.querySelector(".geTemplatesList"),
+g.src=NEW_DIAGRAM_CATS_PATH+"/"+d.img;f.appendChild(g);k.appendChild(f);f=document.createElement("div");f.className="geTempDlgNewDiagramCatItemLbl";f.innerHTML=l;k.appendChild(f);X.appendChild(k);(function(a,b){mxEvent.addListener(k,"click",function(){F!=b&&(W.innerHTML=mxUtils.htmlEntities(mxResources.get("create")),v(),t(b,"geTempDlgNewDiagramCatItemActive",a))});mxEvent.addListener(k,"dblclick",u)})(d,k)}Z.style.display=5>a.length?"none":""}function y(a){var b=B.querySelector(".geTemplatesList"),
e;for(e in a){var c=document.createElement("div"),d=mxResources.get(e),k=a[e];null==d&&(d=e.substring(0,1).toUpperCase()+e.substring(1));c.className="geTemplateCatLink";c.setAttribute("title",d+" ("+k.length+")");d=mxUtils.htmlEntities(d);15<d.length&&(d=d.substring(0,15)+"&hellip;");c.innerHTML=d+" ("+k.length+")";b.appendChild(c);(function(b,e,d){mxEvent.addListener(c,"click",function(){C!=d&&(null!=C?(C.style.fontWeight="normal",C.style.textDecoration="none"):(ga.style.display="none",ca.style.minHeight=
-"100%"),C=d,C.style.fontWeight="bold",C.style.textDecoration="underline",Y.scrollTop=0,H&&(D=!0),R.innerHTML=e,S.style.display="none",y(a[b],!0))})})(e,d,c)}}function E(a){m&&(Y.scrollTop=0,J.innerHTML="",ja.spin(J),D=!1,H=!0,R.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag",null,"Recent Diagrams")),K=null,m(ea,a?null:f))}function z(a){l();Y.scrollTop=0;J.innerHTML="";ja.spin(J);D=!1;H=!0;U=null;R.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults",null,"Search Results"))+' "'+
-mxUtils.htmlEntities(a)+'"';n(a,ea,I?null:f);K=a}b=null!=b?b:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var B=this.container,H=!1,D=!1,C=null,F=null,G=null,L=!1,I=!0,M=!1,N=[],K,Z=B.querySelector(".geTempDlgShowAllBtn"),J=B.querySelector(".geTempDlgDiagramsTiles"),R=B.querySelector(".geTempDlgDiagramsListTitle"),S=B.querySelector(".geTempDlgDiagramsListBtns"),Y=B.querySelector(".geTempDlgContent"),ca=B.querySelector(".geTempDlgDiagramsList"),ga=B.querySelector(".geTempDlgNewDiagramCat"),
+"100%"),C=d,C.style.fontWeight="bold",C.style.textDecoration="underline",Y.scrollTop=0,G&&(D=!0),R.innerHTML=e,S.style.display="none",A(a[b],!0))})})(e,d,c)}}function E(a){m&&(Y.scrollTop=0,J.innerHTML="",ja.spin(J),D=!1,G=!0,R.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag",null,"Recent Diagrams")),K=null,m(ea,a?null:f))}function z(a){l();Y.scrollTop=0;J.innerHTML="";ja.spin(J);D=!1;G=!0;U=null;R.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults",null,"Search Results"))+' "'+
+mxUtils.htmlEntities(a)+'"';n(a,ea,I?null:f);K=a}b=null!=b?b:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var B=this.container,G=!1,D=!1,C=null,F=null,H=null,L=!1,I=!0,M=!1,N=[],K,Z=B.querySelector(".geTempDlgShowAllBtn"),J=B.querySelector(".geTempDlgDiagramsTiles"),R=B.querySelector(".geTempDlgDiagramsListTitle"),S=B.querySelector(".geTempDlgDiagramsListBtns"),Y=B.querySelector(".geTempDlgContent"),ca=B.querySelector(".geTempDlgDiagramsList"),ga=B.querySelector(".geTempDlgNewDiagramCat"),
X=B.querySelector(".geTempDlgNewDiagramCatList"),W=B.querySelector(".geTempDlgCreateBtn"),ja=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(B.querySelector(".geTempDlgNewDiagramlbl"),"click",function(){l();ga.style.display="";ca.style.minHeight="calc(100% - 280px)";E(I)});mxEvent.addListener(B.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){p(this,"geTempDlgAllDiagramsBtnImg",
"all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(I=!0,null==K?E(I):z(K))});mxEvent.addListener(B.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){p(this,"geTempDlgMyDiagramsBtnImg","my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(I=!1,null==K?E(I):z(K))});mxEvent.addListener(B.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){p(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg",
-"tiles",!1)&&(M=!0,y(N,!1,M))});mxEvent.addListener(B.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){p(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(M=!1,y(N,!1,M))});mxEvent.addListener(Z,"click",function(){L?(ga.style.height="280px",X.style.height="190px",Z.innerHTML=mxUtils.htmlEntities(mxResources.get("showAll",null,"+ Show all")),x(V)):(ga.style.height="440px",X.style.height="355px",Z.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess",
+"tiles",!1)&&(M=!0,A(N,!1,M))});mxEvent.addListener(B.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){p(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(M=!1,A(N,!1,M))});mxEvent.addListener(Z,"click",function(){L?(ga.style.height="280px",X.style.height="190px",Z.innerHTML=mxUtils.htmlEntities(mxResources.get("showAll",null,"+ Show all")),x(V)):(ga.style.height="440px",X.style.height="355px",Z.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess",
null,"- Show less")),x(V,!0));L=!L});var da=!1,O=!1,aa={},V=[],Q=1;mxUtils.get(b,function(a){if(!da){da=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var e=b.indexOf("/"),b=b.substring(0,e),e=aa[b];null==e&&(Q++,e=[],aa[b]=e);e.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),imgUrl:a.getAttribute("imgUrl")})}}a=
-a.nextSibling}A(aa)}});mxUtils.get(g,function(a){if(!O){O=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==typeof a.getAttribute&&null!=a.getAttribute("title")&&V.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title")}),a=a.nextSibling;x(V)}});var ea=function(a,b){S.style.display="";ja.stop();H=!1;D?D=!1:b?J.innerHTML=b:0==a.length?J.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found")):
-y(a,!1,M)};E(I);var U=null;n&&mxEvent.addListener(B.querySelector(".geTempDlgSearchBox"),"keyup",function(a){var b=this;null!=U&&clearTimeout(U);13==a.keyCode?z(b.value):U=setTimeout(function(){z(b.value)},500)});mxEvent.addListener(W,"click",u);mxEvent.addListener(B.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){u(!0)});mxEvent.addListener(B.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=c&&c();a.hideDialog(!0)})};
+a.nextSibling}y(aa)}});mxUtils.get(g,function(a){if(!O){O=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==typeof a.getAttribute&&null!=a.getAttribute("title")&&V.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title")}),a=a.nextSibling;x(V)}});var ea=function(a,b){S.style.display="";ja.stop();G=!1;D?D=!1:b?J.innerHTML=b:0==a.length?J.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found")):
+A(a,!1,M)};E(I);var U=null;n&&mxEvent.addListener(B.querySelector(".geTempDlgSearchBox"),"keyup",function(a){var b=this;null!=U&&clearTimeout(U);13==a.keyCode?z(b.value):U=setTimeout(function(){z(b.value)},500)});mxEvent.addListener(W,"click",u);mxEvent.addListener(B.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){u(!0)});mxEvent.addListener(B.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=c&&c();a.hideDialog(!0)})};
var BtnDialog=function(a,d,c,b){var g=document.createElement("div");g.style.textAlign="center";var f=document.createElement("p");f.style.fontSize="16pt";f.style.padding="0px";f.style.margin="0px";f.style.color="gray";mxUtils.write(f,mxResources.get("done"));var m="Unknown",n=document.createElement("img");n.setAttribute("border","0");n.setAttribute("align","absmiddle");n.style.marginRight="10px";d==a.drive?(m=mxResources.get("googleDrive"),n.src=IMAGE_PATH+"/google-drive-logo-white.svg"):d==a.dropbox?
(m=mxResources.get("dropbox"),n.src=IMAGE_PATH+"/dropbox-logo-white.svg"):d==a.oneDrive?(m=mxResources.get("oneDrive"),n.src=IMAGE_PATH+"/onedrive-logo-white.svg"):d==a.gitHub?(m=mxResources.get("github"),n.src=IMAGE_PATH+"/github-logo-white.svg"):d==a.gitLab?(m=mxResources.get("gitlab"),n.src=IMAGE_PATH+"/gitlab-logo.svg"):d==a.trello&&(m=mxResources.get("trello"),n.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");mxUtils.write(a,mxResources.get("authorizedIn",[m],"You are now authorized in {1}"));
-c=mxUtils.button(c,b);c.insertBefore(n,c.firstChild);c.style.marginTop="6px";c.className="geBigButton";c.style.fontSize="18px";c.style.padding="14px";g.appendChild(f);g.appendChild(a);g.appendChild(c);this.container=g},FontDialog=function(a,d,c,b,g){function f(a){this.style.border="";13==a.keyCode&&A.click()}var m,n,e,k=document.createElement("table"),l=document.createElement("tbody");k.style.marginTop="8px";m=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.whiteSpace=
+c=mxUtils.button(c,b);c.insertBefore(n,c.firstChild);c.style.marginTop="6px";c.className="geBigButton";c.style.fontSize="18px";c.style.padding="14px";g.appendChild(f);g.appendChild(a);g.appendChild(c);this.container=g},FontDialog=function(a,d,c,b,g){function f(a){this.style.border="";13==a.keyCode&&y.click()}var m,n,e,k=document.createElement("table"),l=document.createElement("tbody");k.style.marginTop="8px";m=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.whiteSpace=
"nowrap";n.style.fontSize="10pt";n.style.fontWeight="bold";var p=document.createElement("input");p.style.cssText="margin-right:8px;margin-bottom:8px;";p.setAttribute("value","sysfonts");p.setAttribute("type","radio");p.setAttribute("name","current-fontdialog");p.setAttribute("id","fontdialog-sysfonts");n.appendChild(p);e=document.createElement("label");e.setAttribute("for","fontdialog-sysfonts");mxUtils.write(e,mxResources.get("sysFonts",null,"System Fonts"));n.appendChild(e);m.appendChild(n);l.appendChild(m);
m=document.createElement("tr");n=document.createElement("td");n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.width="120px";n.style.paddingLeft="15px";mxUtils.write(n,mxResources.get("fontname",null,"Font Name")+":");m.appendChild(n);var q=document.createElement("input");"s"==b&&q.setAttribute("value",d);q.style.marginLeft="4px";q.style.width="250px";q.className="dlg_fontName_s";n=document.createElement("td");n.appendChild(q);m.appendChild(n);l.appendChild(m);m=document.createElement("tr");
n=document.createElement("td");n.colSpan=2;n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.fontWeight="bold";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","googlefonts");t.setAttribute("type","radio");t.setAttribute("name","current-fontdialog");t.setAttribute("id","fontdialog-googlefonts");n.appendChild(t);e=document.createElement("label");e.setAttribute("for","fontdialog-googlefonts");mxUtils.write(e,mxResources.get("googleFonts",
null,"Google Fonts"));n.appendChild(e);mxClient.IS_CHROMEAPP||a.isOffline()&&!EditorUi.isElectronApp||(e=a.menus.createHelpLink("https://fonts.google.com/"),e.getElementsByTagName("img")[0].setAttribute("valign","middle"),n.appendChild(e));m.appendChild(n);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.width="120px";n.style.paddingLeft="15px";mxUtils.write(n,mxResources.get("fontname",null,"Font Name")+":");
m.appendChild(n);var u=document.createElement("input");"g"==b&&u.setAttribute("value",d);u.style.marginLeft="4px";u.style.width="250px";u.className="dlg_fontName_g";n=document.createElement("td");n.appendChild(u);m.appendChild(n);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.fontWeight="bold";var v=document.createElement("input");v.style.cssText="margin-right:8px;margin-bottom:8px;";v.setAttribute("value",
"webfonts");v.setAttribute("type","radio");v.setAttribute("name","current-fontdialog");v.setAttribute("id","fontdialog-webfonts");n.appendChild(v);e=document.createElement("label");e.setAttribute("for","fontdialog-webfonts");mxUtils.write(e,mxResources.get("webfonts",null,"Web Fonts"));n.appendChild(e);m.appendChild(n);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.width="120px";n.style.paddingLeft="15px";
-mxUtils.write(n,mxResources.get("fontname",null,"Font Name")+":");m.appendChild(n);var y=document.createElement("input");"w"==b&&y.setAttribute("value",d);y.style.marginLeft="4px";y.style.width="250px";y.className="dlg_fontName_w";n=document.createElement("td");n.appendChild(y);m.appendChild(n);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.width="120px";n.style.paddingLeft="15px";mxUtils.write(n,mxResources.get("fontUrl",
-null,"Font URL")+":");m.appendChild(n);var x=document.createElement("input");x.setAttribute("value",c||"");x.style.marginLeft="4px";x.style.width="250px";x.className="dlg_fontUrl";n=document.createElement("td");n.appendChild(x);m.appendChild(n);l.appendChild(m);this.init=function(){var a=q;"g"==b?a=u:"w"==b&&(a=y);a.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?a.select():document.execCommand("selectAll",!1,null)};m=document.createElement("tr");n=document.createElement("td");n.colSpan=
-2;n.style.paddingTop="20px";n.style.whiteSpace="nowrap";n.setAttribute("align","right");a.isOffline()||(d=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://www.diagrams.net/blog/external-fonts")}),d.className="geBtn",n.appendChild(d));d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();g()});d.className="geBtn";a.editor.cancelFirst&&n.appendChild(d);var A=mxUtils.button(mxResources.get("apply"),function(){var b,e,c;p.checked?(b=q.value,c="s"):t.checked?(b=u.value,
-e=Editor.GOOGLE_FONTS+encodeURIComponent(b).replace(/%20/g,"+"),c="g"):v.checked&&(b=y.value,e=x.value,c="w");var d;d=e;var l=c,f=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;null==b||0==b.length?(k.querySelector(".dlg_fontName_"+l).style.border="1px solid red",d=!1):"w"!=l||f.test(d)?d=!0:(k.querySelector(".dlg_fontUrl").style.border="1px solid red",d=!1);d&&(g(b,e,c),a.hideDialog())});A.className="geBtn gePrimaryBtn";mxEvent.addListener(q,"keypress",f);mxEvent.addListener(u,
-"keypress",f);mxEvent.addListener(y,"keypress",f);mxEvent.addListener(x,"keypress",f);mxEvent.addListener(q,"focus",function(){p.setAttribute("checked","checked");p.checked=!0});mxEvent.addListener(u,"focus",function(){t.setAttribute("checked","checked");t.checked=!0});mxEvent.addListener(y,"focus",function(){v.setAttribute("checked","checked");v.checked=!0});mxEvent.addListener(x,"focus",function(){v.setAttribute("checked","checked");v.checked=!0});n.appendChild(A);a.editor.cancelFirst||n.appendChild(d);
+mxUtils.write(n,mxResources.get("fontname",null,"Font Name")+":");m.appendChild(n);var A=document.createElement("input");"w"==b&&A.setAttribute("value",d);A.style.marginLeft="4px";A.style.width="250px";A.className="dlg_fontName_w";n=document.createElement("td");n.appendChild(A);m.appendChild(n);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.width="120px";n.style.paddingLeft="15px";mxUtils.write(n,mxResources.get("fontUrl",
+null,"Font URL")+":");m.appendChild(n);var x=document.createElement("input");x.setAttribute("value",c||"");x.style.marginLeft="4px";x.style.width="250px";x.className="dlg_fontUrl";n=document.createElement("td");n.appendChild(x);m.appendChild(n);l.appendChild(m);this.init=function(){var a=q;"g"==b?a=u:"w"==b&&(a=A);a.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?a.select():document.execCommand("selectAll",!1,null)};m=document.createElement("tr");n=document.createElement("td");n.colSpan=
+2;n.style.paddingTop="20px";n.style.whiteSpace="nowrap";n.setAttribute("align","right");a.isOffline()||(d=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://www.diagrams.net/blog/external-fonts")}),d.className="geBtn",n.appendChild(d));d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();g()});d.className="geBtn";a.editor.cancelFirst&&n.appendChild(d);var y=mxUtils.button(mxResources.get("apply"),function(){var b,e,c;p.checked?(b=q.value,c="s"):t.checked?(b=u.value,
+e=Editor.GOOGLE_FONTS+encodeURIComponent(b).replace(/%20/g,"+"),c="g"):v.checked&&(b=A.value,e=x.value,c="w");var d;d=e;var l=c,f=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;null==b||0==b.length?(k.querySelector(".dlg_fontName_"+l).style.border="1px solid red",d=!1):"w"!=l||f.test(d)?d=!0:(k.querySelector(".dlg_fontUrl").style.border="1px solid red",d=!1);d&&(g(b,e,c),a.hideDialog())});y.className="geBtn gePrimaryBtn";mxEvent.addListener(q,"keypress",f);mxEvent.addListener(u,
+"keypress",f);mxEvent.addListener(A,"keypress",f);mxEvent.addListener(x,"keypress",f);mxEvent.addListener(q,"focus",function(){p.setAttribute("checked","checked");p.checked=!0});mxEvent.addListener(u,"focus",function(){t.setAttribute("checked","checked");t.checked=!0});mxEvent.addListener(A,"focus",function(){v.setAttribute("checked","checked");v.checked=!0});mxEvent.addListener(x,"focus",function(){v.setAttribute("checked","checked");v.checked=!0});n.appendChild(y);a.editor.cancelFirst||n.appendChild(d);
m.appendChild(n);l.appendChild(m);k.appendChild(l);this.container=k};
function AspectDialog(a,d,c,b,g){this.aspect={pageId:d||(a.pages?a.pages[0].getId():null),layerIds:c||[]};d=document.createElement("div");var f=document.createElement("h5");f.style.margin="0 0 10px";mxUtils.write(f,mxResources.get("pages"));d.appendChild(f);c=document.createElement("div");c.className="geAspectDlgList";d.appendChild(c);f=document.createElement("h5");f.style.margin="0 0 10px";mxUtils.write(f,mxResources.get("layers"));d.appendChild(f);f=document.createElement("div");f.className="geAspectDlgList";
d.appendChild(f);this.pagesContainer=c;this.layersContainer=f;this.ui=a;c=document.createElement("div");c.style.marginTop="16px";c.style.textAlign="center";f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=g&&g()});f.className="geBtn";a.editor.cancelFirst&&c.appendChild(f);var m=mxUtils.button(mxResources.get("ok"),mxUtils.bind(this,function(){a.hideDialog();b({pageId:this.selectedPage,layerIds:Object.keys(this.selectedLayers)})}));c.appendChild(m);m.className="geBtn gePrimaryBtn";
@@ -10190,49 +10195,49 @@ return b};Editor.extractParserError=function(a,b){var e=null,c=null!=a?a.getElem
a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;
null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.styles&&(Editor.styles=a.styles);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=a.compressXml&&(Editor.compressXml=a.compressXml);null!=a.simpleLabels&&(Editor.simpleLabels=a.simpleLabels);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&
(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var e=document.createElement("style");e.setAttribute("type","text/css");e.appendChild(document.createTextNode(a.css));var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(e,c)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&
-(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.gridSteps&&(e=parseInt(a.gridSteps),!isNaN(e)&&0<e&&(mxGraphView.prototype.gridSteps=e));a.emptyDiagramXml&&
-(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(e=parseInt(a.autosaveDelay),!isNaN(e)&&0<e?DrawioFile.prototype.autosaveDelay=e:EditorUi.debug("Invalid autosaveDelay: "+
-a.autosaveDelay));if(null!=a.plugins&&!b)for(App.initPluginCallback(),e=0;e<a.plugins.length;e++)mxscript(a.plugins[e]);null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var b=document.getElementsByTagName("script")[0];if(null!=b&&null!=b.parentNode){var e=document.createElement("style");e.setAttribute("type","text/css");e.appendChild(document.createTextNode(a));
-b.parentNode.insertBefore(e,b);a=a.split("url(");for(e=1;e<a.length;e++){var c=a[e].indexOf(")"),c=Editor.trimCssUrl(a[e].substring(0,c)),d=document.createElement("link");d.setAttribute("rel","preload");d.setAttribute("href",c);d.setAttribute("as","font");d.setAttribute("crossorigin","");b.parentNode.insertBefore(d,b)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";
-Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var b=[],e=0;e<a;e++)b.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return b.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=
-!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var e=b.getElementsByTagName("parsererror");if(null!=e&&0<e.length){var e=e[0],c=e.getElementsByTagName("div");null!=c&&0<c.length&&(e=c[0]);throw{message:mxUtils.getTextContent(e)};}if("mxGraphModel"==b.nodeName){e=b.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=e&&""!=e)e!=this.graph.currentStyle&&(c=null!=
-this.graph.themes?this.graph.themes[e]:mxUtils.load(STYLE_PATH+"/"+e+".xml").getDocumentElement(),null!=c&&(d=new mxCodec(c.ownerDocument),d.decode(c,this.graph.getStylesheet())));else if(c=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=c){var d=new mxCodec(c.ownerDocument);d.decode(c,this.graph.getStylesheet())}this.graph.currentStyle=e;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");e=b.getAttribute("backgroundImage");
-null!=e?(e=JSON.parse(e),this.graph.setBackgroundImage(new mxImage(e.src,e.width,e.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==b.getAttribute("shadow"),!1);if(e=b.getAttribute("extFonts"))try{for(e=e.split("|").map(function(a){a=
-a.split("^");return{name:a[0],url:a[1]}}),c=0;c<e.length;c++)this.graph.addExtFont(e[c].name,e[c].url)}catch(J){console.log("ExtFonts format error: "+J.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=d.apply(this,arguments);
-null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var e=this.graph.extFonts.map(function(a){return a.name+"^"+a.url});b.setAttribute("extFonts",e.join("|"))}return b};
-Editor.prototype.isDataSvg=function(a){try{var b=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=b&&(null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),null!=b&&0<b.length)){var e=mxUtils.parseXml(b).documentElement;return"mxfile"==e.nodeName||"mxGraphModel"==e.nodeName}}catch(Z){}return!1};Editor.prototype.extractGraphModel=function(a,b,e){return Editor.extractGraphModel.apply(this,
-arguments)};var c=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();c.apply(this,arguments)};var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=
-function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";Editor.initMath=function(a,b){if("undefined"===typeof window.MathJax){a=(null!=
-a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var e=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";b=null!=b?b:{"HTML-CSS":{availableFonts:[e],imageFont:null},SVG:{font:e,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};
-window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var c=Editor.prototype.init;Editor.prototype.init=
-function(){c.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};e=document.getElementsByTagName("script");if(null!=e&&0<e.length){var d=document.createElement("script");d.setAttribute("type","text/javascript");d.setAttribute("src",a);e[0].parentNode.appendChild(d)}try{if(mxClient.IS_GC||mxClient.IS_SF){var k=document.createElement("style");
-k.type="text/css";k.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(k)}}catch(S){}}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var b=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,
-function(a,e,c,d){void 0!==e?b.push(e.replace(/\\'/g,"'")):void 0!==c?b.push(c.replace(/\\"/g,'"')):void 0!==d&&b.push(d);return""});/,\s*$/.test(a)&&b.push("");return b};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};
-Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,e=this;a.convert=function(c){if(null!=c){var d="http://"==c.substring(0,7)||"https://"==c.substring(0,8);d&&!navigator.onLine?c=Editor.svgBrokenImage.src:!d||c.substring(0,a.baseUrl.length)==a.baseUrl||e.crossOriginImages&&e.isCorsEnabledForUrl(c)?"chrome-extension://"==c.substring(0,19)||mxClient.IS_CHROMEAPP||(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c)}return c};
-return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,b){try{var e=!0,c=window.setTimeout(mxUtils.bind(this,function(){e=!1;b(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(c);e&&b(Editor.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(c);e&&b(Editor.svgBrokenImage.src)});else{var d=new Image;
-this.crossOriginImages&&(d.crossOrigin="anonymous");d.onload=function(){window.clearTimeout(c);if(e)try{var a=document.createElement("canvas"),k=a.getContext("2d");a.height=d.height;a.width=d.width;k.drawImage(d,0,0);b(a.toDataURL())}catch(Y){b(Editor.svgBrokenImage.src)}};d.onerror=function(){window.clearTimeout(c);e&&b(Editor.svgBrokenImage.src)};d.src=a}}catch(R){b(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(a,b,e,c){null==c&&(c=this.createImageUrlConverter());var d=0,
-k=e||{};e=mxUtils.bind(this,function(e,l){for(var f=a.getElementsByTagName(e),g=0;g<f.length;g++)mxUtils.bind(this,function(e){try{if(null!=e){var f=c.convert(e.getAttribute(l));if(null!=f&&"data:"!=f.substring(0,5)){var g=k[f];null==g?(d++,this.convertImageToDataUri(f,function(c){null!=c&&(k[f]=c,e.setAttribute(l,c));d--;0==d&&b(a)})):e.setAttribute(l,g)}else null!=f&&e.setAttribute(l,f)}}catch(da){}})(f[g])});e("image","xlink:href");e("img","src");0==d&&b(a)};Editor.base64Encode=function(a){for(var b=
-"",e=0,c=a.length,d,k,l;e<c;){d=a.charCodeAt(e++)&255;if(e==c){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4);b+="==";break}k=a.charCodeAt(e++);if(e==c){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4|(k&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&
-15)<<2);b+="=";break}l=a.charCodeAt(e++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4|(k&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2|(l&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return b};Editor.prototype.loadUrl=function(a,b,e,c,d,k,l,f){try{var g=!l&&(c||/(\.png)($|\?)/i.test(a)||
-/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));d=null!=d?d:!0;var p=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var c=a.getText();if(g){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);c=c.join("")}k=
-null!=k?k:"data:image/png;base64,";c=k+Editor.base64Encode(c)}b(c)}}else null!=e&&(0==a.getStatus()?e({message:mxResources.get("accessDenied")},a):e({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=e&&e({message:mxResources.get("error")+" "+a.getStatus()})},g,this.timeout,function(){d&&null!=e&&e({code:App.ERROR_TIMEOUT,retry:p})},f)});p()}catch(X){null!=e&&e(X)}};Editor.prototype.absoluteCssFonts=function(a){var b=null;if(null!=a){var e=a.split("url(");if(0<e.length){b=
-[e[0]];a=window.location.pathname;var c=null!=a?a.lastIndexOf("/"):-1;0<=c&&(a=a.substring(0,c+1));var c=document.getElementsByTagName("base"),d=null;null!=c&&0<c.length&&(d=c[0].getAttribute("href"));for(var k=1;k<e.length;k++)if(c=e[k].indexOf(")"),0<c){var l=Editor.trimCssUrl(e[k].substring(0,c));this.graph.isRelativeUrl(l)&&(l=null!=d?d+l:window.location.protocol+"//"+window.location.hostname+("/"==l.charAt(0)?"":a)+l);b.push('url("'+l+'"'+e[k].substring(c))}else b.push(e[k])}else b=[a]}return null!=
-b?b.join(""):null};Editor.prototype.embedCssFonts=function(a,b){var e=a.split("url("),c=0;null==this.cachedFonts&&(this.cachedFonts={});var d=mxUtils.bind(this,function(){if(0==c){for(var a=[e[0]],d=1;d<e.length;d++){var k=e[d].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(e[d].substring(0,k))]);a.push('"'+e[d].substring(k))}b(a.join(""))}});if(0<e.length){for(var k=1;k<e.length;k++){var l=e[k].indexOf(")"),f=null,g=e[k].indexOf("format(",l);0<g&&(f=Editor.trimCssUrl(e[k].substring(g+
-7,e[k].indexOf(")",g))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;c++;var b="application/x-font-ttf";if("svg"==f||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==f||"embedded-opentype"==f||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==f||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==f||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==f||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";
-else if("sfnt"==f||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var e=a;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(e,mxUtils.bind(this,function(b){this.cachedFonts[a]=b;c--;d()}),mxUtils.bind(this,function(a){c--;d()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(Editor.trimCssUrl(e[k].substring(0,l)),f)}d()}else b(a)};Editor.prototype.loadFonts=function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,
-mxUtils.bind(this,function(b){this.resolvedFontCss=b;a()})):a()};Editor.prototype.embedExtFonts=function(a){var b=this.graph.getCustomFonts();if(0<b.length){var e="",c=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var d=mxUtils.bind(this,function(){0==c&&this.embedCssFonts(e,a)}),k=0;k<b.length;k++)mxUtils.bind(this,function(a,b){Graph.isCssFontUrl(b)?null==this.cachedGoogleFonts[b]?(c++,this.loadUrl(b,mxUtils.bind(this,function(a){this.cachedGoogleFonts[b]=a;e+=a;c--;d()}),mxUtils.bind(this,
-function(a){c--;e+="@import url("+b+");";d()}))):e+=this.cachedGoogleFonts[b]:e+='@font-face {font-family: "'+a+'";src: url("'+b+'")}'})(b[k].name,b[k].url);d()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var b=document.getElementsByTagName("style"),e=0;e<b.length;e++)0<mxUtils.getTextContent(b[e]).indexOf("MathJax")&&a[0].appendChild(b[e].cloneNode(!0))};Editor.prototype.addFontCss=function(a,b){b=null!=b?b:this.absoluteCssFonts(this.fontCss);
-if(null!=b){var e=a.getElementsByTagName("defs"),c=a.ownerDocument;0==e.length?(e=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"defs"):c.createElement("defs"),null!=a.firstChild?a.insertBefore(e,a.firstChild):a.appendChild(e)):e=e[0];c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"style"):c.createElement("style");c.setAttribute("type","text/css");mxUtils.setTextContent(c,b);e.appendChild(c)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||
-this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,b,e){var c=mxClient.IS_FF?8192:16384;return Math.min(e,Math.min(c/a,c/b))};Editor.prototype.exportToCanvas=function(a,b,e,c,d,k,l,f,g,p,q,m,t,n,u,z,B,x){try{k=null!=k?k:!0;l=null!=l?l:!0;m=null!=m?m:this.graph;t=null!=t?t:0;var v=g?null:m.background;v==mxConstants.NONE&&(v=null);null==v&&(v=c);null==v&&0==g&&(v=z?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(m.getSvg(null,null,t,n,null,l,null,null,null,p,
-null,z,B,x),mxUtils.bind(this,function(e){try{var c=new Image;c.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){n.drawImage(c,0,0);a(g,e)},0):(n.drawImage(c,0,0),a(g,e))},g=document.createElement("canvas"),p=parseInt(e.getAttribute("width")),q=parseInt(e.getAttribute("height"));f=null!=f?f:1;null!=b&&(f=k?Math.min(1,Math.min(3*b/(4*q),b/p)):b/p);f=this.getMaxCanvasScale(p,q,f);p=Math.ceil(f*p);q=Math.ceil(f*q);g.setAttribute("width",p);g.setAttribute("height",
-q);var n=g.getContext("2d");null!=v&&(n.beginPath(),n.rect(0,0,p,q),n.fillStyle=v,n.fill());1!=f&&n.scale(f,f);if(u){var z=m.view,B=z.scale;z.scale=1;var x=btoa(unescape(encodeURIComponent(z.createSvgGrid(z.gridColor))));z.scale=B;var x="data:image/svg+xml;base64,"+x,C=m.gridSize*z.gridSteps*f,A=m.getGraphBounds(),M=z.translate.x*B,y=z.translate.y*B,H=M+(A.x-M)/B-t,G=y+(A.y-y)/B-t,K=new Image;K.onload=function(){try{for(var a=-Math.round(C-mxUtils.mod((M-H)*f,C)),b=-Math.round(C-mxUtils.mod((y-G)*
-f,C));a<p;a+=C)for(var e=b;e<q;e+=C)n.drawImage(K,a/f,e/f);l()}catch(ra){null!=d&&d(ra)}};K.onerror=function(a){null!=d&&d(a)};K.src=x}else l()}catch(qa){null!=d&&d(qa)}});c.onerror=function(a){null!=d&&d(a)};p&&this.graph.addSvgShadow(e);this.graph.mathEnabled&&this.addMathCss(e);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(e,this.resolvedFontCss),c.src=Editor.createSvgDataUri(mxUtils.getXml(e))}catch(ia){null!=d&&d(ia)}});this.embedExtFonts(mxUtils.bind(this,
-function(a){try{null!=a&&this.addFontCss(e,a),this.loadFonts(l)}catch(P){null!=d&&d(P)}}))}catch(ia){null!=d&&d(ia)}}),e,q)}catch(U){null!=d&&d(U)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var f=g,m=0;8>m;m++)f=1==(f&1)?3988292384^f>>>1:f>>>1,Editor.crcTable[g]=f;Editor.updateCRC=function(a,b,e,c){for(var d=0;d<c;d++)a=Editor.crcTable[(a^b.charCodeAt(e+d))&255]^a>>>8;return a};Editor.crc32=function(a){for(var b=-1,e=0;e<a.length;e++)b=b>>>8^Editor.crcTable[(b^a.charCodeAt(e))&255];return(b^-1)>>>
-0};Editor.writeGraphModelToPng=function(a,b,e,c,d){function k(a,b){var e=g;g+=b;return a.substring(e,g)}function l(a){a=k(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function f(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var g=0;if(k(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(k(a,4),"IHDR"!=k(a,4))null!=d&&
-d();else{k(a,17);d=a.substring(0,g);do{var p=l(a);if("IDAT"==k(a,4)){d=a.substring(0,g-8);"pHYs"==b&&"dpi"==e?(e=Math.round(c/.0254),e=f(e)+f(e)+String.fromCharCode(1)):e=e+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+c;c=4294967295;c=Editor.updateCRC(c,b,0,4);c=Editor.updateCRC(c,e,0,e.length);d+=f(e.length)+b+e+f(c^4294967295);d+=a.substring(g-8,a.length);break}d+=a.substring(g-8,g-4+p);k(a,p);k(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(d):Base64.encode(d,!0))}};
-if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var n=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){n.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var e=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=
-function(a,b){var e=null;null!=a.editor.graph.getModel().getParent(b)?e=b.getId():null!=a.currentPage&&(e=a.currentPage.getId());return e});if(null!=window.StyleFormatPanel){var k=Format.prototype.init;Format.prototype.init=function(){k.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var l=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?l.apply(this,arguments):
-this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var p=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=p.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b=this.editorUi,e=b.editor.graph,c=this.createOption(mxResources.get("shadow"),
+(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.zoomFactor&&(e=parseFloat(a.zoomFactor),!isNaN(e)&&1<e&&(Graph.prototype.zoomFactor=e));null!=a.gridSteps&&
+(e=parseInt(a.gridSteps),!isNaN(e)&&0<e&&(mxGraphView.prototype.gridSteps=e));a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(e=parseInt(a.autosaveDelay),
+!isNaN(e)&&0<e?DrawioFile.prototype.autosaveDelay=e:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!b)for(App.initPluginCallback(),e=0;e<a.plugins.length;e++)mxscript(a.plugins[e]);null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var b=document.getElementsByTagName("script")[0];if(null!=b&&null!=
+b.parentNode){var e=document.createElement("style");e.setAttribute("type","text/css");e.appendChild(document.createTextNode(a));b.parentNode.insertBefore(e,b);a=a.split("url(");for(e=1;e<a.length;e++){var c=a[e].indexOf(")"),c=Editor.trimCssUrl(a[e].substring(0,c)),d=document.createElement("link");d.setAttribute("rel","preload");d.setAttribute("href",c);d.setAttribute("as","font");d.setAttribute("crossorigin","");b.parentNode.insertBefore(d,b)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+",
+"g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var b=[],e=0;e<a;e++)b.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return b.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=
+null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var e=b.getElementsByTagName("parsererror");if(null!=e&&0<e.length){var e=e[0],c=e.getElementsByTagName("div");null!=c&&0<c.length&&(e=c[0]);throw{message:mxUtils.getTextContent(e)};}if("mxGraphModel"==b.nodeName){e=b.getAttribute("style")||
+"default-style2";if("1"==urlParams.embed||null!=e&&""!=e)e!=this.graph.currentStyle&&(c=null!=this.graph.themes?this.graph.themes[e]:mxUtils.load(STYLE_PATH+"/"+e+".xml").getDocumentElement(),null!=c&&(d=new mxCodec(c.ownerDocument),d.decode(c,this.graph.getStylesheet())));else if(c=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=c){var d=new mxCodec(c.ownerDocument);d.decode(c,this.graph.getStylesheet())}this.graph.currentStyle=
+e;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");e=b.getAttribute("backgroundImage");null!=e?(e=JSON.parse(e),this.graph.setBackgroundImage(new mxImage(e.src,e.width,e.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==
+b.getAttribute("shadow"),!1);if(e=b.getAttribute("extFonts"))try{for(e=e.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),c=0;c<e.length;c++)this.graph.addExtFont(e[c].name,e[c].url)}catch(J){console.log("ExtFonts format error: "+J.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;
+Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=d.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var e=this.graph.extFonts.map(function(a){return a.name+
+"^"+a.url});b.setAttribute("extFonts",e.join("|"))}return b};Editor.prototype.isDataSvg=function(a){try{var b=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=b&&(null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),null!=b&&0<b.length)){var e=mxUtils.parseXml(b).documentElement;return"mxfile"==e.nodeName||"mxGraphModel"==e.nodeName}}catch(Z){}return!1};Editor.prototype.extractGraphModel=
+function(a,b,e){return Editor.extractGraphModel.apply(this,arguments)};var c=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();c.apply(this,arguments)};
+var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";
+Editor.initMath=function(a,b){if("undefined"===typeof window.MathJax){a=(null!=a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var e=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";b=null!=b?b:{"HTML-CSS":{availableFonts:[e],imageFont:null},
+SVG:{font:e,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};
+Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var c=Editor.prototype.init;Editor.prototype.init=function(){c.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};e=document.getElementsByTagName("script");if(null!=e&&0<e.length){var d=document.createElement("script");d.setAttribute("type","text/javascript");d.setAttribute("src",
+a);e[0].parentNode.appendChild(d)}try{if(mxClient.IS_GC||mxClient.IS_SF){var k=document.createElement("style");k.type="text/css";k.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(k)}}catch(S){}}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
+var b=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,e,c,d){void 0!==e?b.push(e.replace(/\\'/g,"'")):void 0!==c?b.push(c.replace(/\\"/g,'"')):void 0!==d&&b.push(d);return""});/,\s*$/.test(a)&&b.push("");return b};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));
+return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,e=this;a.convert=function(c){if(null!=c){var d="http://"==c.substring(0,7)||"https://"==c.substring(0,8);d&&!navigator.onLine?c=Editor.svgBrokenImage.src:!d||c.substring(0,a.baseUrl.length)==a.baseUrl||e.crossOriginImages&&e.isCorsEnabledForUrl(c)?"chrome-extension://"==c.substring(0,
+19)||mxClient.IS_CHROMEAPP||(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c)}return c};return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,b){try{var e=!0,c=window.setTimeout(mxUtils.bind(this,function(){e=!1;b(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(c);e&&b(Editor.createSvgDataUri(a.getText()))}),
+function(){window.clearTimeout(c);e&&b(Editor.svgBrokenImage.src)});else{var d=new Image;this.crossOriginImages&&(d.crossOrigin="anonymous");d.onload=function(){window.clearTimeout(c);if(e)try{var a=document.createElement("canvas"),k=a.getContext("2d");a.height=d.height;a.width=d.width;k.drawImage(d,0,0);b(a.toDataURL())}catch(Y){b(Editor.svgBrokenImage.src)}};d.onerror=function(){window.clearTimeout(c);e&&b(Editor.svgBrokenImage.src)};d.src=a}}catch(R){b(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=
+function(a,b,e,c){null==c&&(c=this.createImageUrlConverter());var d=0,k=e||{};e=mxUtils.bind(this,function(e,l){for(var f=a.getElementsByTagName(e),g=0;g<f.length;g++)mxUtils.bind(this,function(e){try{if(null!=e){var f=c.convert(e.getAttribute(l));if(null!=f&&"data:"!=f.substring(0,5)){var g=k[f];null==g?(d++,this.convertImageToDataUri(f,function(c){null!=c&&(k[f]=c,e.setAttribute(l,c));d--;0==d&&b(a)})):e.setAttribute(l,g)}else null!=f&&e.setAttribute(l,f)}}catch(da){}})(f[g])});e("image","xlink:href");
+e("img","src");0==d&&b(a)};Editor.base64Encode=function(a){for(var b="",e=0,c=a.length,d,k,l;e<c;){d=a.charCodeAt(e++)&255;if(e==c){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4);b+="==";break}k=a.charCodeAt(e++);if(e==c){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&
+3)<<4|(k&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2);b+="=";break}l=a.charCodeAt(e++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4|(k&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((k&15)<<2|(l&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return b};
+Editor.prototype.loadUrl=function(a,b,e,c,d,k,l,f){try{var g=!l&&(c||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));d=null!=d?d:!0;var p=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var c=a.getText();if(g){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();
+for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);c=c.join("")}k=null!=k?k:"data:image/png;base64,";c=k+Editor.base64Encode(c)}b(c)}}else null!=e&&(0==a.getStatus()?e({message:mxResources.get("accessDenied")},a):e({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=e&&e({message:mxResources.get("error")+" "+a.getStatus()})},g,this.timeout,function(){d&&null!=e&&e({code:App.ERROR_TIMEOUT,retry:p})},f)});p()}catch(X){null!=e&&e(X)}};Editor.prototype.absoluteCssFonts=
+function(a){var b=null;if(null!=a){var e=a.split("url(");if(0<e.length){b=[e[0]];a=window.location.pathname;var c=null!=a?a.lastIndexOf("/"):-1;0<=c&&(a=a.substring(0,c+1));var c=document.getElementsByTagName("base"),d=null;null!=c&&0<c.length&&(d=c[0].getAttribute("href"));for(var k=1;k<e.length;k++)if(c=e[k].indexOf(")"),0<c){var l=Editor.trimCssUrl(e[k].substring(0,c));this.graph.isRelativeUrl(l)&&(l=null!=d?d+l:window.location.protocol+"//"+window.location.hostname+("/"==l.charAt(0)?"":a)+l);
+b.push('url("'+l+'"'+e[k].substring(c))}else b.push(e[k])}else b=[a]}return null!=b?b.join(""):null};Editor.prototype.embedCssFonts=function(a,b){var e=a.split("url("),c=0;null==this.cachedFonts&&(this.cachedFonts={});var d=mxUtils.bind(this,function(){if(0==c){for(var a=[e[0]],d=1;d<e.length;d++){var k=e[d].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(e[d].substring(0,k))]);a.push('"'+e[d].substring(k))}b(a.join(""))}});if(0<e.length){for(var k=1;k<e.length;k++){var l=e[k].indexOf(")"),
+f=null,g=e[k].indexOf("format(",l);0<g&&(f=Editor.trimCssUrl(e[k].substring(g+7,e[k].indexOf(")",g))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;c++;var b="application/x-font-ttf";if("svg"==f||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==f||"embedded-opentype"==f||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==f||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==f||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";
+else if("eot"==f||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==f||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var e=a;/^https?:\/\//.test(e)&&!this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(e,mxUtils.bind(this,function(b){this.cachedFonts[a]=b;c--;d()}),mxUtils.bind(this,function(a){c--;d()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(Editor.trimCssUrl(e[k].substring(0,l)),f)}d()}else b(a)};Editor.prototype.loadFonts=
+function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(b){this.resolvedFontCss=b;a()})):a()};Editor.prototype.embedExtFonts=function(a){var b=this.graph.getCustomFonts();if(0<b.length){var e="",c=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var d=mxUtils.bind(this,function(){0==c&&this.embedCssFonts(e,a)}),k=0;k<b.length;k++)mxUtils.bind(this,function(a,b){Graph.isCssFontUrl(b)?null==this.cachedGoogleFonts[b]?(c++,this.loadUrl(b,
+mxUtils.bind(this,function(a){this.cachedGoogleFonts[b]=a;e+=a;c--;d()}),mxUtils.bind(this,function(a){c--;e+="@import url("+b+");";d()}))):e+=this.cachedGoogleFonts[b]:e+='@font-face {font-family: "'+a+'";src: url("'+b+'")}'})(b[k].name,b[k].url);d()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var b=document.getElementsByTagName("style"),e=0;e<b.length;e++)0<mxUtils.getTextContent(b[e]).indexOf("MathJax")&&a[0].appendChild(b[e].cloneNode(!0))};
+Editor.prototype.addFontCss=function(a,b){b=null!=b?b:this.absoluteCssFonts(this.fontCss);if(null!=b){var e=a.getElementsByTagName("defs"),c=a.ownerDocument;0==e.length?(e=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"defs"):c.createElement("defs"),null!=a.firstChild?a.insertBefore(e,a.firstChild):a.appendChild(e)):e=e[0];c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"style"):c.createElement("style");c.setAttribute("type","text/css");mxUtils.setTextContent(c,b);e.appendChild(c)}};
+Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,b,e){var c=mxClient.IS_FF?8192:16384;return Math.min(e,Math.min(c/a,c/b))};Editor.prototype.exportToCanvas=function(a,b,e,c,d,k,l,f,g,p,q,m,t,n,u,z,B,x){try{k=null!=k?k:!0;l=null!=l?l:!0;m=null!=m?m:this.graph;t=null!=t?t:0;var v=g?null:m.background;v==mxConstants.NONE&&(v=null);null==v&&(v=c);null==v&&0==g&&(v=z?this.graph.defaultPageBackgroundColor:"#ffffff");
+this.convertImages(m.getSvg(null,null,t,n,null,l,null,null,null,p,null,z,B,x),mxUtils.bind(this,function(e){try{var c=new Image;c.onload=mxUtils.bind(this,function(){try{var l=function(){mxClient.IS_SF?window.setTimeout(function(){n.drawImage(c,0,0);a(g,e)},0):(n.drawImage(c,0,0),a(g,e))},g=document.createElement("canvas"),p=parseInt(e.getAttribute("width")),q=parseInt(e.getAttribute("height"));f=null!=f?f:1;null!=b&&(f=k?Math.min(1,Math.min(3*b/(4*q),b/p)):b/p);f=this.getMaxCanvasScale(p,q,f);p=
+Math.ceil(f*p);q=Math.ceil(f*q);g.setAttribute("width",p);g.setAttribute("height",q);var n=g.getContext("2d");null!=v&&(n.beginPath(),n.rect(0,0,p,q),n.fillStyle=v,n.fill());1!=f&&n.scale(f,f);if(u){var z=m.view,B=z.scale;z.scale=1;var x=btoa(unescape(encodeURIComponent(z.createSvgGrid(z.gridColor))));z.scale=B;var x="data:image/svg+xml;base64,"+x,C=m.gridSize*z.gridSteps*f,y=m.getGraphBounds(),M=z.translate.x*B,G=z.translate.y*B,A=M+(y.x-M)/B-t,H=G+(y.y-G)/B-t,K=new Image;K.onload=function(){try{for(var a=
+-Math.round(C-mxUtils.mod((M-A)*f,C)),b=-Math.round(C-mxUtils.mod((G-H)*f,C));a<p;a+=C)for(var e=b;e<q;e+=C)n.drawImage(K,a/f,e/f);l()}catch(ra){null!=d&&d(ra)}};K.onerror=function(a){null!=d&&d(a)};K.src=x}else l()}catch(qa){null!=d&&d(qa)}});c.onerror=function(a){null!=d&&d(a)};p&&this.graph.addSvgShadow(e);this.graph.mathEnabled&&this.addMathCss(e);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(e,this.resolvedFontCss),c.src=Editor.createSvgDataUri(mxUtils.getXml(e))}catch(ia){null!=
+d&&d(ia)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(e,a),this.loadFonts(l)}catch(P){null!=d&&d(P)}}))}catch(ia){null!=d&&d(ia)}}),e,q)}catch(U){null!=d&&d(U)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var f=g,m=0;8>m;m++)f=1==(f&1)?3988292384^f>>>1:f>>>1,Editor.crcTable[g]=f;Editor.updateCRC=function(a,b,e,c){for(var d=0;d<c;d++)a=Editor.crcTable[(a^b.charCodeAt(e+d))&255]^a>>>8;return a};Editor.crc32=function(a){for(var b=-1,e=0;e<a.length;e++)b=b>>>8^Editor.crcTable[(b^
+a.charCodeAt(e))&255];return(b^-1)>>>0};Editor.writeGraphModelToPng=function(a,b,e,c,d){function k(a,b){var e=g;g+=b;return a.substring(e,g)}function l(a){a=k(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function f(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var g=0;if(k(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(k(a,
+4),"IHDR"!=k(a,4))null!=d&&d();else{k(a,17);d=a.substring(0,g);do{var p=l(a);if("IDAT"==k(a,4)){d=a.substring(0,g-8);"pHYs"==b&&"dpi"==e?(e=Math.round(c/.0254),e=f(e)+f(e)+String.fromCharCode(1)):e=e+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+c;c=4294967295;c=Editor.updateCRC(c,b,0,4);c=Editor.updateCRC(c,e,0,e.length);d+=f(e.length)+b+e+f(c^4294967295);d+=a.substring(g-8,a.length);break}d+=a.substring(g-8,g-4+p);k(a,p);k(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?
+btoa(d):Base64.encode(d,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var n=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){n.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var e=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&
+(EditDataDialog.getDisplayIdForCell=function(a,b){var e=null;null!=a.editor.graph.getModel().getParent(b)?e=b.getId():null!=a.currentPage&&(e=a.currentPage.getId());return e});if(null!=window.StyleFormatPanel){var k=Format.prototype.init;Format.prototype.init=function(){k.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var l=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?
+l.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var p=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=p.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b=this.editorUi,e=b.editor.graph,c=this.createOption(mxResources.get("shadow"),
function(){return e.shadowVisible},function(a){var c=new ChangePageSetup(b);c.ignoreColor=!0;c.ignoreImage=!0;c.shadowVisible=a;e.model.execute(c)},{install:function(a){this.listener=function(){a(e.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.shadowOptionEnabled||(c.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(c,60));a.appendChild(c)}return a};var q=DiagramFormatPanel.prototype.addOptions;
DiagramFormatPanel.prototype.addOptions=function(a){a=q.apply(this,arguments);var b=this.editorUi,e=b.editor.graph;if(e.isEnabled()){var c=b.getCurrentFile();if(null!=c&&c.isAutosaveOptional()){var d=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a);b.editor.autosave&&c.isModified()&&c.fileChanged()},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}});
a.appendChild(d)}}if(this.isMathOptionVisible()&&e.isEnabled()&&"undefined"!==typeof MathJax){d=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return e.mathEnabled},function(a){b.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(e.mathEnabled)};b.addListener("mathEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});d.style.paddingTop="5px";a.appendChild(d);var k=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");
@@ -10275,8 +10280,8 @@ null!=p.max&&a>p.max&&(a=p.max);a=mxUtils.htmlEntities(("int"==u?parseInt(a):a)+
mxUtils.bind(q,function(a){c(b,"",p,p.index);mxEvent.consume(a)})),t.style.height="16px",t.style.width="25px",t.style["float"]="right",t.className="geColorBtn",B.appendChild(t));z.appendChild(B);return z}var q=this,m=this.editorUi.editor.graph,t=[];a.style.position="relative";a.style.padding="0";var n=document.createElement("table");n.className="geProperties";n.style.whiteSpace="nowrap";n.style.width="100%";var u=document.createElement("tr");u.className="gePropHeader";var z=document.createElement("th");
z.className="gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;z.appendChild(B);mxUtils.write(z,mxResources.get("property"));u.style.cursor="pointer";var x=function(){var b=n.querySelectorAll(".gePropNonHeaderRow"),e;if(q.editorUi.propertiesCollapsed){B.src=Sidebar.prototype.collapsedImage;e="none";for(var c=a.childNodes.length-1;0<=c;c--)try{var d=a.childNodes[c],k=d.nodeName.toUpperCase();"INPUT"!=k&&"SELECT"!=k||a.removeChild(d)}catch(na){}}else B.src=
Sidebar.prototype.expandedImage,e="";for(c=0;c<b.length;c++)b[c].style.display=e};mxEvent.addListener(u,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;x()});u.appendChild(z);z=document.createElement("th");z.className="gePropHeaderCell";z.innerHTML=mxResources.get("value");u.appendChild(z);n.appendChild(u);var v=!1,C=!1,u=null;1==e.vertices.length&&0==e.edges.length?u=e.vertices[0].id:0==e.vertices.length&&1==e.edges.length&&(u=e.edges[0].id);null!=u&&n.appendChild(p("id",
-mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var A in b)if(u=b[A],"function"!=typeof u.isVisible||u.isVisible(e,this)){var y=null!=e.style[A]?mxUtils.htmlEntities(e.style[A]+""):null!=u.getDefaultValue?u.getDefaultValue(e,this):u.defVal;if("separator"==u.type)C=!C;else{if("staticArr"==u.type)u.size=parseInt(e.style[u.sizeProperty]||b[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var H=u.dependentProps,G=[],M=[],z=0;z<H.length;z++){var D=e.style[H[z]];M.push(b[H[z]].subDefVal);
-G.push(null!=D?D.split(","):[])}u.dependentPropsDefVal=M;u.dependentPropsVals=G}n.appendChild(p(A,y,u,v,C));v=!v}}for(z=0;z<t.length;z++)for(u=t[z],b=u.parentRow,e=0;e<u.values.length;e++)A=p(u.name,u.values[e],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,index:e,defVal:u.defVal,countProperty:u.countProperty,size:u.size},0==e%2,u.flipBkg),b.parentNode.insertBefore(A,b.nextSibling),b=A;a.appendChild(n);x();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){mxEvent.addListener(a,
+mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var y in b)if(u=b[y],"function"!=typeof u.isVisible||u.isVisible(e,this)){var G=null!=e.style[y]?mxUtils.htmlEntities(e.style[y]+""):null!=u.getDefaultValue?u.getDefaultValue(e,this):u.defVal;if("separator"==u.type)C=!C;else{if("staticArr"==u.type)u.size=parseInt(e.style[u.sizeProperty]||b[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var A=u.dependentProps,H=[],M=[],z=0;z<A.length;z++){var D=e.style[A[z]];M.push(b[A[z]].subDefVal);
+H.push(null!=D?D.split(","):[])}u.dependentPropsDefVal=M;u.dependentPropsVals=H}n.appendChild(p(y,G,u,v,C));v=!v}}for(z=0;z<t.length;z++)for(u=t[z],b=u.parentRow,e=0;e<u.values.length;e++)y=p(u.name,u.values[e],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,index:e,defVal:u.defVal,countProperty:u.countProperty,size:u.size},0==e%2,u.flipBkg),b.parentNode.insertBefore(y,b.nextSibling),b=y;a.appendChild(n);x();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){mxEvent.addListener(a,
"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var e=this.editorUi,c=e.editor.graph,d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.paddingLeft="24px";d.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(d);var k="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),
l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";for(var f=[],g=0;g<this.defaultColorSchemes.length;g++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,
"click",mxUtils.bind(this,function(){q(a)}))})(g);f.push(p);l.appendChild(p)}var q=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(f[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;m(this.defaultColorSchemes[this.format.currentScheme]);f[this.format.currentScheme].style.background="#84d7ff"}),m=mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(a){var b=mxUtils.button("",function(b){c.getModel().beginUpdate();try{for(var d=c.getSelectionCells(),
@@ -10299,13 +10304,13 @@ Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";
"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var e=this.getInsertPoint;this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):e.apply(this,arguments)};var c=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.getCellStyle(a);if(null!=b){if("rack"==b.childLayout){var e=new mxStackLayout(this.graph,!1);e.gridSize=null!=b.rackUnitSize?parseFloat(b.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:
20;e.marginLeft=b.marginLeft||0;e.marginRight=b.marginRight||0;e.marginTop=b.marginTop||0;e.marginBottom=b.marginBottom||0;e.allowGaps=b.allowGaps||0;e.horizontal="1"==mxUtils.getValue(b,"horizontalRack","0");e.resizeParent=!1;e.fill=!0;return e}if("undefined"!==typeof mxTableLayout&&"tableLayout"==b.childLayout)return e=new mxTableLayout(this.graph),e.rows=b.tableRows||2,e.columns=b.tableColumns||2,e.colPercentages=b.colPercentages,e.rowPercentages=b.rowPercentages,e.equalColumns="1"==mxUtils.getValue(b,
"equalColumns",e.colPercentages?"0":"1"),e.equalRows="1"==mxUtils.getValue(b,"equalRows",e.rowPercentages?"0":"1"),e.resizeParent="1"==mxUtils.getValue(b,"resizeParent","1"),e.border=b.tableBorder||e.border,e.marginLeft=b.marginLeft||0,e.marginRight=b.marginRight||0,e.marginTop=b.marginTop||0,e.marginBottom=b.marginBottom||0,e.autoAddCol="1"==mxUtils.getValue(b,"autoAddCol","0"),e.autoAddRow="1"==mxUtils.getValue(b,"autoAddRow",e.autoAddCol?"0":"1"),e.colWidths=b.colWidths||"100",e.rowHeights=b.rowHeights||
-"50",e}return c.apply(this,arguments)};this.updateGlobalUrlVariables()};var y=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(a){return Graph.processFontStyle(y.apply(this,arguments))};var x=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(a,b,e,c,d,k,l,f,g,p,q){x.apply(this,arguments);Graph.processFontAttributes(q)};var A=mxText.prototype.redraw;mxText.prototype.redraw=function(){A.apply(this,arguments);null!=this.node&&"DIV"==
+"50",e}return c.apply(this,arguments)};this.updateGlobalUrlVariables()};var A=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(a){return Graph.processFontStyle(A.apply(this,arguments))};var x=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(a,b,e,c,d,k,l,f,g,p,q){x.apply(this,arguments);Graph.processFontAttributes(q)};var y=mxText.prototype.redraw;mxText.prototype.redraw=function(){y.apply(this,arguments);null!=this.node&&"DIV"==
this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.getCustomFonts=function(){var a=this.extFonts,a=null!=a?a.slice():[],b;for(b in Graph.customFontElements){var e=Graph.customFontElements[b];a.push({name:e.name,url:e.url})}return a};Graph.prototype.setFont=function(a,b){Graph.addFont(a,b);document.execCommand("fontname",!1,a);if(null!=b){var e=this.cellEditor.textarea.getElementsByTagName("font");b=Graph.getFontUrl(a,b);for(var c=0;c<e.length;c++)e[c].getAttribute("face")==
a&&e[c].getAttribute("data-font-src")!=b&&e[c].setAttribute("data-font-src",b)}};var E=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return E.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var a=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=a)for(var b in a)this.globalVars[b]=
a[b]}catch(K){null!=window.console&&console.log("Error in vars URL parameter: "+K)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var z=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var b=z.apply(this,arguments);null==b&&null!=this.globalVars&&(b=this.globalVars[a]);return b};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var a=this.themes["default-style2"];this.defaultStylesheet=
(new mxCodec(a.ownerDocument)).decode(a)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var B=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,b,e,c,d,k,l,f,g,p,q,m,t,n){var u=null,z=null;m||null==this.themes||"darkTheme"!=this.defaultThemeName||(u=this.stylesheet,z=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var x=
-B.apply(this,arguments),v=this.getCustomFonts();if(q&&0<v.length){var C=x.ownerDocument,A=null!=C.createElementNS?C.createElementNS(mxConstants.NS_SVG,"style"):C.createElement("style");null!=C.setAttributeNS?A.setAttributeNS("type","text/css"):A.setAttribute("type","text/css");for(var y="",H="",G=0;G<v.length;G++){var D=v[G].name,F=v[G].url;Graph.isCssFontUrl(F)?y+="@import url("+F+");\n":H+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+F+'");\n}\n'}A.appendChild(C.createTextNode(y+H));x.getElementsByTagName("defs")[0].appendChild(A)}null!=
-u&&(this.defaultPageBackgroundColor=z,this.stylesheet=u,this.refresh());return x};var H=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=H.apply(this,arguments);if(this.mathEnabled){var b=a.drawText;a.drawText=function(a,e){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var c=a.text.getContentNode();if(null!=c){c=c.cloneNode(!0);if(c.getElementsByTagNameNS)for(var d=
+B.apply(this,arguments),v=this.getCustomFonts();if(q&&0<v.length){var C=x.ownerDocument,y=null!=C.createElementNS?C.createElementNS(mxConstants.NS_SVG,"style"):C.createElement("style");null!=C.setAttributeNS?y.setAttributeNS("type","text/css"):y.setAttribute("type","text/css");for(var G="",A="",H=0;H<v.length;H++){var D=v[H].name,E=v[H].url;Graph.isCssFontUrl(E)?G+="@import url("+E+");\n":A+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+E+'");\n}\n'}y.appendChild(C.createTextNode(G+A));x.getElementsByTagName("defs")[0].appendChild(y)}null!=
+u&&(this.defaultPageBackgroundColor=z,this.stylesheet=u,this.refresh());return x};var G=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=G.apply(this,arguments);if(this.mathEnabled){var b=a.drawText;a.drawText=function(a,e){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var c=a.text.getContentNode();if(null!=c){c=c.cloneNode(!0);if(c.getElementsByTagNameNS)for(var d=
c.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<d.length;)d[0].parentNode.removeChild(d[0]);null!=c.innerHTML&&(d=a.text.value,a.text.value=c.innerHTML,b.apply(this,arguments),a.text.value=d)}}else b.apply(this,arguments)}}return a};var D=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){D.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var C=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){C.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var b=0;b<a.actions.length;b++){var e=a.actions[b];if(null!=e.open)if(this.isCustomLink(e.open)){if(!this.customLinkClicked(e.open))return}else this.openLink(e.open)}this.model.beginUpdate();
@@ -10334,38 +10339,38 @@ mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupN
[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=
[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=
[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var F=mxMarker.createMarker;mxMarker.createMarker=function(a,b,e,c,d,k,l,f,g,p){if(null!=e&&null==mxMarker.markers[e]){var q=this.getPackageForType(e);null!=q&&mxStencilRegistry.getStencil(q)}return F.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function e(){n.value=Math.max(1,
-Math.min(f,Math.max(parseInt(n.value),parseInt(t.value))));t.value=Math.max(1,Math.min(f,Math.min(parseInt(n.value),parseInt(t.value))))}function c(b){function e(b,e,k){var l=b.useCssTransforms,f=b.currentTranslate,g=b.currentScale,p=b.view.translate,q=b.view.scale;b.useCssTransforms&&(b.useCssTransforms=!1,b.currentTranslate=new mxPoint(0,0),b.currentScale=1,b.view.translate=new mxPoint(0,0),b.view.scale=1);var m=b.getGraphBounds(),t=0,u=0,n=M.get(),z=1/b.pageScale,v=x.checked;if(v)var z=parseInt(I.value),
-C=parseInt(L.value),z=Math.min(n.height*C/(m.height/b.view.scale),n.width*z/(m.width/b.view.scale));else z=parseInt(B.value)/(100*b.pageScale),isNaN(z)&&(c=1/b.pageScale,B.value="100 %");n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width*c);n.height=Math.ceil(n.height*c);z*=c;!v&&b.pageVisible?(m=b.getPageLayout(),t-=m.x*n.width,u-=m.y*n.height):v=!0;if(null==e){e=PrintDialog.createPrintPreview(b,z,n,0,t,u,v);e.pageSelector=!1;e.mathEnabled=!1;t=a.getCurrentFile();null!=t&&(e.title=t.getTitle());
-var A=e.writeHead;e.writeHead=function(e){A.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)e.writeln('<style type="text/css">'),e.writeln(Editor.mathJaxWebkitCss),e.writeln("</style>");mxClient.IS_GC&&(e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),e.writeln("}"),e.writeln("</style>"));null!=a.editor.fontCss&&(e.writeln('<style type="text/css">'),e.writeln(a.editor.fontCss),e.writeln("</style>"));for(var c=
-b.getCustomFonts(),d=0;d<c.length;d++){var k=c[d].name,l=c[d].url;Graph.isCssFontUrl(l)?e.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(e.writeln('<style type="text/css">'),e.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(k)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),e.writeln("</style>"))}};if("undefined"!==typeof MathJax){var y=e.renderPage;e.renderPage=function(b,e,c,d,k,l){var f=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&
-!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var g=y.apply(this,arguments);mxClient.NO_FO=f;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:g.className="geDisableMathJax";return g}}t=null;u=d.enableFlowAnimation;d.enableFlowAnimation=!1;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(t=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());e.open(null,null,k,!0);d.enableFlowAnimation=u;null!=t&&(d.stylesheet=t,d.refresh())}else{n=b.background;if(null==
-n||""==n||n==mxConstants.NONE)n="#ffffff";e.backgroundColor=n;e.autoOrigin=v;e.appendGraph(b,z,t,u,k,!0);k=b.getCustomFonts();if(null!=e.wnd)for(t=0;t<k.length;t++)u=k[t].name,v=k[t].url,Graph.isCssFontUrl(v)?e.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(v)+'" charset="UTF-8" type="text/css">'):(e.wnd.document.writeln('<style type="text/css">'),e.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(u)+'";\nsrc: url("'+mxUtils.htmlEntities(v)+'");\n}'),
-e.wnd.document.writeln("</style>"))}l&&(b.useCssTransforms=l,b.currentTranslate=f,b.currentScale=g,b.view.translate=p,b.view.scale=q);return e}var c=parseInt(N.value)/100;isNaN(c)&&(c=1,N.value="100 %");var c=.75*c,k=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(k=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());var l=t.value,f=n.value,p=!q.checked,m=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,q.checked,l,f,x.checked,I.value,L.value,parseInt(B.value)/100,parseInt(N.value)/
-100,M.get());else{p&&(p=l==g&&f==g);if(!p&&null!=a.pages&&a.pages.length){var u=0,p=a.pages.length-1;q.checked||(u=parseInt(l)-1,p=parseInt(f)-1);for(var z=u;z<=p;z++){var v=a.pages[z],l=v==a.currentPage?d:null;if(null==l){var l=a.createTemporaryGraph(d.stylesheet),f=!0,u=!1,C=null,A=null;null==v.viewState&&null==v.root&&a.updatePageRoot(v);null!=v.viewState&&(f=v.viewState.pageVisible,u=v.viewState.mathEnabled,C=v.viewState.background,A=v.viewState.backgroundImage,l.extFonts=v.viewState.extFonts);
-l.background=C;l.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;l.pageVisible=f;l.mathEnabled=u;var y=l.getGlobalVariable;l.getGlobalVariable=function(b){return"page"==b?v.getName():"pagenumber"==b?z+1:"pagecount"==b?null!=a.pages?a.pages.length:1:y.apply(this,arguments)};document.body.appendChild(l.container);a.updatePageRoot(v);l.model.setRoot(v.root)}m=e(l,m,z!=p);l!=d&&l.container.parentNode.removeChild(l.container)}}else m=e(d);null==m?a.handleError({message:mxResources.get("errorUpdatingPreview")}):
+Math.min(f,Math.max(parseInt(n.value),parseInt(t.value))));t.value=Math.max(1,Math.min(f,Math.min(parseInt(n.value),parseInt(t.value))))}function c(b){function e(b,e,k){var l=b.useCssTransforms,f=b.currentTranslate,g=b.currentScale,p=b.view.translate,q=b.view.scale;b.useCssTransforms&&(b.useCssTransforms=!1,b.currentTranslate=new mxPoint(0,0),b.currentScale=1,b.view.translate=new mxPoint(0,0),b.view.scale=1);var m=b.getGraphBounds(),t=0,n=0,u=M.get(),z=1/b.pageScale,v=x.checked;if(v)var z=parseInt(F.value),
+C=parseInt(L.value),z=Math.min(u.height*C/(m.height/b.view.scale),u.width*z/(m.width/b.view.scale));else z=parseInt(B.value)/(100*b.pageScale),isNaN(z)&&(c=1/b.pageScale,B.value="100 %");u=mxRectangle.fromRectangle(u);u.width=Math.ceil(u.width*c);u.height=Math.ceil(u.height*c);z*=c;!v&&b.pageVisible?(m=b.getPageLayout(),t-=m.x*u.width,n-=m.y*u.height):v=!0;if(null==e){e=PrintDialog.createPrintPreview(b,z,u,0,t,n,v);e.pageSelector=!1;e.mathEnabled=!1;t=a.getCurrentFile();null!=t&&(e.title=t.getTitle());
+var y=e.writeHead;e.writeHead=function(e){y.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)e.writeln('<style type="text/css">'),e.writeln(Editor.mathJaxWebkitCss),e.writeln("</style>");mxClient.IS_GC&&(e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),e.writeln("}"),e.writeln("</style>"));null!=a.editor.fontCss&&(e.writeln('<style type="text/css">'),e.writeln(a.editor.fontCss),e.writeln("</style>"));for(var c=
+b.getCustomFonts(),d=0;d<c.length;d++){var k=c[d].name,l=c[d].url;Graph.isCssFontUrl(l)?e.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(e.writeln('<style type="text/css">'),e.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(k)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),e.writeln("</style>"))}};if("undefined"!==typeof MathJax){var G=e.renderPage;e.renderPage=function(b,e,c,d,k,l){var f=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&
+!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var g=G.apply(this,arguments);mxClient.NO_FO=f;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:g.className="geDisableMathJax";return g}}t=null;n=d.enableFlowAnimation;d.enableFlowAnimation=!1;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(t=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());e.open(null,null,k,!0);d.enableFlowAnimation=n;null!=t&&(d.stylesheet=t,d.refresh())}else{u=b.background;if(null==
+u||""==u||u==mxConstants.NONE)u="#ffffff";e.backgroundColor=u;e.autoOrigin=v;e.appendGraph(b,z,t,n,k,!0);k=b.getCustomFonts();if(null!=e.wnd)for(t=0;t<k.length;t++)n=k[t].name,v=k[t].url,Graph.isCssFontUrl(v)?e.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(v)+'" charset="UTF-8" type="text/css">'):(e.wnd.document.writeln('<style type="text/css">'),e.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(n)+'";\nsrc: url("'+mxUtils.htmlEntities(v)+'");\n}'),
+e.wnd.document.writeln("</style>"))}l&&(b.useCssTransforms=l,b.currentTranslate=f,b.currentScale=g,b.view.translate=p,b.view.scale=q);return e}var c=parseInt(N.value)/100;isNaN(c)&&(c=1,N.value="100 %");var c=.75*c,k=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(k=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());var l=t.value,f=n.value,p=!q.checked,m=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,q.checked,l,f,x.checked,F.value,L.value,parseInt(B.value)/100,parseInt(N.value)/
+100,M.get());else{p&&(p=l==g&&f==g);if(!p&&null!=a.pages&&a.pages.length){var u=0,p=a.pages.length-1;q.checked||(u=parseInt(l)-1,p=parseInt(f)-1);for(var z=u;z<=p;z++){var v=a.pages[z],l=v==a.currentPage?d:null;if(null==l){var l=a.createTemporaryGraph(d.stylesheet),f=!0,u=!1,C=null,y=null;null==v.viewState&&null==v.root&&a.updatePageRoot(v);null!=v.viewState&&(f=v.viewState.pageVisible,u=v.viewState.mathEnabled,C=v.viewState.background,y=v.viewState.backgroundImage,l.extFonts=v.viewState.extFonts);
+l.background=C;l.backgroundImage=null!=y?new mxImage(y.src,y.width,y.height):null;l.pageVisible=f;l.mathEnabled=u;var G=l.getGlobalVariable;l.getGlobalVariable=function(b){return"page"==b?v.getName():"pagenumber"==b?z+1:"pagecount"==b?null!=a.pages?a.pages.length:1:G.apply(this,arguments)};document.body.appendChild(l.container);a.updatePageRoot(v);l.model.setRoot(v.root)}m=e(l,m,z!=p);l!=d&&l.container.parentNode.removeChild(l.container)}}else m=e(d);null==m?a.handleError({message:mxResources.get("errorUpdatingPreview")}):
(m.mathEnabled&&(p=m.wnd.document,b&&(m.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),m.closeDocument(),!m.mathEnabled&&b&&PrintDialog.printPreview(m));null!=k&&(d.stylesheet=k,d.refresh())}}var d=a.editor.graph,k=document.createElement("div"),l=document.createElement("h3");l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,b||mxResources.get("print"));k.appendChild(l);var f=1,g=1,p=
document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");p.appendChild(q);l=document.createElement("span");mxUtils.write(l,mxResources.get("printAllPages"));p.appendChild(l);mxUtils.br(p);var m=q.cloneNode(!0);q.setAttribute("checked","checked");
m.setAttribute("value","range");p.appendChild(m);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");p.appendChild(l);var t=document.createElement("input");t.style.cssText="margin:0 8px 0 8px;";t.setAttribute("value","1");t.setAttribute("type","number");t.setAttribute("min","1");t.style.width="50px";p.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("to"));p.appendChild(l);var n=t.cloneNode(!0);p.appendChild(n);mxEvent.addListener(t,"focus",
function(){m.checked=!0});mxEvent.addListener(n,"focus",function(){m.checked=!0});mxEvent.addListener(t,"change",e);mxEvent.addListener(n,"change",e);if(null!=a.pages&&(f=a.pages.length,null!=a.currentPage))for(l=0;l<a.pages.length;l++)if(a.currentPage==a.pages[l]){g=l+1;t.value=g;n.value=g;break}t.setAttribute("max",f);n.setAttribute("max",f);a.isPagesEnabled()?1<f&&(k.appendChild(p),m.checked=!0):m.checked=!0;var u=document.createElement("div");u.style.marginBottom="10px";var z=document.createElement("input");
z.style.marginRight="8px";z.setAttribute("value","adjust");z.setAttribute("type","radio");z.setAttribute("name","printZoom");u.appendChild(z);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));u.appendChild(l);var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","100 %");B.style.width="50px";u.appendChild(B);mxEvent.addListener(B,"focus",function(){z.checked=!0});k.appendChild(u);var p=p.cloneNode(!1),x=z.cloneNode(!0);x.setAttribute("value",
-"fit");z.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(x);p.appendChild(l);u=document.createElement("table");u.style.display="inline-block";var v=document.createElement("tbody"),C=document.createElement("tr"),A=C.cloneNode(!0),y=document.createElement("td"),H=y.cloneNode(!0),G=y.cloneNode(!0),D=y.cloneNode(!0),F=y.cloneNode(!0),E=y.cloneNode(!0);y.style.textAlign="right";D.style.textAlign=
-"right";mxUtils.write(y,mxResources.get("fitTo"));var I=document.createElement("input");I.style.cssText="margin:0 8px 0 8px;";I.setAttribute("value","1");I.setAttribute("min","1");I.setAttribute("type","number");I.style.width="40px";H.appendChild(I);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));G.appendChild(l);mxUtils.write(D,mxResources.get("fitToBy"));var L=I.cloneNode(!0);F.appendChild(L);mxEvent.addListener(I,"focus",function(){x.checked=!0});mxEvent.addListener(L,
-"focus",function(){x.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));E.appendChild(l);C.appendChild(y);C.appendChild(H);C.appendChild(G);A.appendChild(D);A.appendChild(F);A.appendChild(E);v.appendChild(C);v.appendChild(A);u.appendChild(v);p.appendChild(u);k.appendChild(p);p=document.createElement("div");l=document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));p.appendChild(l);
+"fit");z.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(x);p.appendChild(l);u=document.createElement("table");u.style.display="inline-block";var v=document.createElement("tbody"),C=document.createElement("tr"),y=C.cloneNode(!0),G=document.createElement("td"),H=G.cloneNode(!0),A=G.cloneNode(!0),D=G.cloneNode(!0),E=G.cloneNode(!0),I=G.cloneNode(!0);G.style.textAlign="right";D.style.textAlign=
+"right";mxUtils.write(G,mxResources.get("fitTo"));var F=document.createElement("input");F.style.cssText="margin:0 8px 0 8px;";F.setAttribute("value","1");F.setAttribute("min","1");F.setAttribute("type","number");F.style.width="40px";H.appendChild(F);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));A.appendChild(l);mxUtils.write(D,mxResources.get("fitToBy"));var L=F.cloneNode(!0);E.appendChild(L);mxEvent.addListener(F,"focus",function(){x.checked=!0});mxEvent.addListener(L,
+"focus",function(){x.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));I.appendChild(l);C.appendChild(G);C.appendChild(H);C.appendChild(A);y.appendChild(D);y.appendChild(E);y.appendChild(I);v.appendChild(C);v.appendChild(y);u.appendChild(v);p.appendChild(u);k.appendChild(p);p=document.createElement("div");l=document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));p.appendChild(l);
l=document.createElement("div");l.style.marginBottom="12px";var M=PageSetupDialog.addPageFormatPanel(l,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));p.appendChild(l);var N=document.createElement("input");N.style.cssText="margin:0 8px 0 8px;";N.setAttribute("value","100 %");N.style.width="60px";p.appendChild(N);k.appendChild(p);l=document.createElement("div");l.style.cssText=
"text-align:right;margin:48px 0 0 0;";p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});p.className="geBtn";a.editor.cancelFirst&&l.appendChild(p);a.isOffline()||(u=mxUtils.button(mxResources.get("help"),function(){d.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),u.className="geBtn",l.appendChild(u));PrintDialog.previewEnabled&&(u=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)}),u.className="geBtn",l.appendChild(u));u=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?
-"print":"ok"),function(){a.hideDialog();c(!0)});u.className="geBtn gePrimaryBtn";l.appendChild(u);a.editor.cancelFirst||l.appendChild(p);k.appendChild(l);this.container=k};var G=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&
-(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(G.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),
+"print":"ok"),function(){a.hideDialog();c(!0)});u.className="geBtn gePrimaryBtn";l.appendChild(u);a.editor.cancelFirst||l.appendChild(p);k.appendChild(l);this.container=k};var H=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&
+(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(H.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),
this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var L=document.createElement("canvas"),I=new Image;I.onload=function(){try{L.getContext("2d").drawImage(I,0,0);var a=L.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(N){}};I.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(M){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};a.afterDecode=function(a,c,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.9";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
-null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&
-!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,
-topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,c,d,f,g,m){g=null!=g?g:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&
-null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var e=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";f=null!=f?f:Error(a);(new Image).src=e+"/log?severity="+g+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(y){}try{m||null==window.console||
-console.error(g,a,b,c,d,f)}catch(y){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var b=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=b+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(l){}};EditorUi.sendReport=function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>
-b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(l){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)null!=arguments[b]&&a.push(arguments[b]);console.log.apply(console,a)}}catch(l){}};EditorUi.parsePng=function(a,b,c){function e(a,b){var e=k;k+=b;return a.substring(e,
-k)}function d(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var k=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(e(a,4),"IHDR"!=e(a,4))null!=c&&c();else{e(a,17);do{c=d(a);var l=e(a,4);if(null!=b&&b(k-8,l,c))break;value=e(a,c);e(a,4);if("IEND"==l)break}while(c)}};EditorUi.removeChildNodes=function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
-EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,c,b){b.ui=a.ui;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.10";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
+!mxClient.IS_OP&&!EditorUi.isElectronApp&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,
+messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,c,d,f,g,m){g=null!=g?g:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
+"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var e=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";f=null!=f?f:Error(a);(new Image).src=e+"/log?severity="+g+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+
+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(A){}try{m||null==window.console||console.error(g,a,b,c,d,f)}catch(A){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var b=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=b+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(l){}};EditorUi.sendReport=
+function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(l){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)null!=arguments[b]&&a.push(arguments[b]);
+console.log.apply(console,a)}}catch(l){}};EditorUi.parsePng=function(a,b,c){function e(a,b){var e=k;k+=b;return a.substring(e,k)}function d(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var k=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(e(a,4),"IHDR"!=e(a,4))null!=c&&c();else{e(a,17);do{c=d(a);var l=e(a,4);if(null!=b&&b(k-8,l,c))break;value=e(a,c);e(a,4);if("IEND"==l)break}while(c)}};EditorUi.removeChildNodes=
+function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.maxTextWidth=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.maxTextBytes=5E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.insertTemplateEnabled=!0;EditorUi.prototype.closableScratchpad=
!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(q){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&6<a.length}catch(t){}};c.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(q){}try{b=
document.createElement("canvas");b.width=b.height=1;var d=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==d.match("image/jpeg")}catch(q){}})();EditorUi.prototype.openLink=function(a,b,c){return this.editor.graph.openLink(a,b,c)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);null!=c&&c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);
@@ -10381,11 +10386,11 @@ b&&f.selectPage(f.pages[0])};if(39==a.keyCode)return function(){b<f.pages.length
15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(a),g=this.editor.extractGraphModel(f.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!=g?mxUtils.getXml(g):""}catch(u){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('<meta charset="utf-8">');0<=b&&(a=a.slice(0,b)+'<meta charset="utf-8"/>'+a.slice(b+23-1,a.length));a=Graph.zapGremlins(a)}return a};
EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();try{var e=null!=this.pages?this.pages.slice():null,c=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var d=c.length-
1;0<=d;d--){var f=this.updatePageRoot(new DiagramPage(c[d]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[d+1]));b.model.execute(new ChangePage(this,f,0==d?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
-this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=e)for(d=0;d<e.length;d++)b.model.execute(new ChangePage(this,e[d],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,f,g,m,n,y,x,A){b=null!=b?b:this.editor.graph;f=null!=f?f:!1;y=null!=y?y:!0;var e,k=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?e="_blank":k=e=d;if(null==a)return"";var l=a;if("mxfile"!=l.nodeName.toLowerCase()){if(A){var p=
+this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=e)for(d=0;d<e.length;d++)b.model.execute(new ChangePage(this,e[d],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,f,g,m,n,A,x,y){b=null!=b?b:this.editor.graph;f=null!=f?f:!1;A=null!=A?A:!0;var e,k=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?e="_blank":k=e=d;if(null==a)return"";var l=a;if("mxfile"!=l.nodeName.toLowerCase()){if(y){var p=
a.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());p.appendChild(a)}else{p=Graph.zapGremlins(mxUtils.getXml(a));l=Graph.compress(p);if(Graph.decompress(l)!=p)return p;p=a.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());mxUtils.setTextContent(p,l)}l=a.ownerDocument.createElement("mxfile");l.appendChild(p)}x?(l=l.cloneNode(!0),l.removeAttribute("modified"),l.removeAttribute("host"),l.removeAttribute("agent"),l.removeAttribute("etag"),l.removeAttribute("userAgent"),
l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("type")):(l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("pages"),l.removeAttribute("type"),mxClient.IS_CHROMEAPP?l.setAttribute("host","Chrome"):EditorUi.isElectronApp?l.setAttribute("host","Electron"):l.setAttribute("host",window.location.hostname),l.setAttribute("modified",(new Date).toISOString()),l.setAttribute("agent",navigator.appVersion),l.setAttribute("version",
-EditorUi.VERSION),l.setAttribute("etag",Editor.guid()),a=null!=c?c.getMode():this.mode,null!=a&&l.setAttribute("type",a),1<l.getElementsByTagName("diagram").length&&null!=this.pages&&l.setAttribute("pages",this.pages.length));A=A?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!g&&!f&&(m||null!=c&&/(\.html)$/i.test(c.getTitle())))A=this.getHtml2(mxUtils.getXml(l),b,null!=c?c.getTitle():null,e,k);else if(g||!f&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=
-App.MODE_BROWSER||(d=null),A=this.getEmbeddedSvg(A,b,d,null,n,y,k);return A};EditorUi.prototype.getXmlFileData=function(a,b,c){a=null!=a?a:!0;b=null!=b?b:!1;c=null!=c?c:!Editor.compressXml;var e=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=function(a){var b=a.getElementsByTagName("mxGraphModel"),b=0<b.length?b[0]:null;null==b&&c?(b=mxUtils.trim(mxUtils.getTextContent(a)),a=a.cloneNode(!1),0<b.length&&(b=Graph.decompress(b),null!=b&&0<b.length&&a.appendChild(mxUtils.parseXml(b).documentElement))):
+EditorUi.VERSION),l.setAttribute("etag",Editor.guid()),a=null!=c?c.getMode():this.mode,null!=a&&l.setAttribute("type",a),1<l.getElementsByTagName("diagram").length&&null!=this.pages&&l.setAttribute("pages",this.pages.length));y=y?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!g&&!f&&(m||null!=c&&/(\.html)$/i.test(c.getTitle())))y=this.getHtml2(mxUtils.getXml(l),b,null!=c?c.getTitle():null,e,k);else if(g||!f&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=
+App.MODE_BROWSER||(d=null),y=this.getEmbeddedSvg(y,b,d,null,n,A,k);return y};EditorUi.prototype.getXmlFileData=function(a,b,c){a=null!=a?a:!0;b=null!=b?b:!1;c=null!=c?c:!Editor.compressXml;var e=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=function(a){var b=a.getElementsByTagName("mxGraphModel"),b=0<b.length?b[0]:null;null==b&&c?(b=mxUtils.trim(mxUtils.getTextContent(a)),a=a.cloneNode(!1),0<b.length&&(b=Graph.decompress(b),null!=b&&0<b.length&&a.appendChild(mxUtils.parseXml(b).documentElement))):
null==b||c?a=a.cloneNode(!0):(a=a.cloneNode(!1),mxUtils.setTextContent(a,Graph.compressNode(b)));e.appendChild(a)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(e)),e=this.fileNode.cloneNode(!1),b)a(this.currentPage.node);else for(b=0;b<this.pages.length;b++){if(this.currentPage!=this.pages[b]&&this.pages[b].needsUpdate){var d=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(this.pages[b].root));this.editor.graph.saveViewState(this.pages[b].viewState,
d);EditorUi.removeChildNodes(this.pages[b].node);mxUtils.setTextContent(this.pages[b].node,Graph.compressNode(d));delete this.pages[b].needsUpdate}a(this.pages[b].node)}return e};EditorUi.prototype.anonymizeString=function(a,b){for(var e=[],c=0;c<a.length;c++){var d=a.charAt(c);0<=EditorUi.ignoredAnonymizedChars.indexOf(d)?e.push(d):isNaN(parseInt(d))?d.toLowerCase()!=d?e.push(String.fromCharCode(65+Math.round(25*Math.random()))):d.toUpperCase()!=d?e.push(String.fromCharCode(97+Math.round(25*Math.random()))):
/\s/.test(d)?e.push(" "):e.push("?"):e.push(b?"0":Math.round(9*Math.random()))}return e.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var b=0;b<a[EditorUi.DIFF_INSERT].length;b++)try{var e=mxUtils.parseXml(a[EditorUi.DIFF_INSERT][b].data).documentElement.cloneNode(!1);null!=e.getAttribute("name")&&e.setAttribute("name",this.anonymizeString(e.getAttribute("name")));a[EditorUi.DIFF_INSERT][b].data=mxUtils.getXml(e)}catch(t){a[EditorUi.DIFF_INSERT][b].data=
@@ -10393,8 +10398,8 @@ t.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var c in a[EditorUi.DIFF_UPDATE]
delete d.cells[a]}}),b(EditorUi.DIFF_INSERT),b(EditorUi.DIFF_UPDATE),0==Object.keys(d.cells).length&&delete d.cells);0==Object.keys(d).length&&delete a[EditorUi.DIFF_UPDATE][c]}0==Object.keys(a[EditorUi.DIFF_UPDATE]).length&&delete a[EditorUi.DIFF_UPDATE]}return a};EditorUi.prototype.anonymizeAttributes=function(a,b){if(null!=a.attributes)for(var e=0;e<a.attributes.length;e++)"as"!=a.attributes[e].name&&a.setAttribute(a.attributes[e].name,this.anonymizeString(a.attributes[e].value,b));if(null!=a.childNodes)for(e=
0;e<a.childNodes.length;e++)this.anonymizeAttributes(a.childNodes[e],b)};EditorUi.prototype.anonymizeNode=function(a,b){for(var e=a.getElementsByTagName("mxCell"),c=0;c<e.length;c++)null!=e[c].getAttribute("value")&&e[c].setAttribute("value","["+e[c].getAttribute("value").length+"]"),null!=e[c].getAttribute("xmlValue")&&e[c].setAttribute("xmlValue","["+e[c].getAttribute("xmlValue").length+"]"),null!=e[c].getAttribute("style")&&e[c].setAttribute("style","["+e[c].getAttribute("style").length+"]"),null!=
e[c].parentNode&&"root"!=e[c].parentNode.nodeName&&null!=e[c].parentNode.parentNode&&(e[c].setAttribute("id",e[c].parentNode.getAttribute("id")),e[c].parentNode.parentNode.replaceChild(e[c],e[c].parentNode));return a};EditorUi.prototype.synchronizeCurrentFile=function(a){var b=this.getCurrentFile();null!=b&&(b.savingFile?this.handleError({message:mxResources.get("busy")}):!a&&b.invalidChecksum?b.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(b.clearAutosave(),
-this.editor.setStatus(""),a?b.reloadFile(mxUtils.bind(this,function(){b.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){b.handleFileError(a,!0)})):b.synchronizeFile(mxUtils.bind(this,function(){b.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){b.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,c,d,f,g,m,n,y,x){f=null!=f?f:!0;g=null!=g?g:!1;var e=this.editor.graph;if(b||!a&&null!=y&&/(\.svg)$/i.test(y.getTitle()))if(x=
-!1,null!=e.themes&&"darkTheme"==e.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var k=e.getGlobalVariable,e=this.createTemporaryGraph(e.getStylesheet()),l=this.pages[0];e.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?1:k.apply(this,arguments)};document.body.appendChild(e.container);e.model.setRoot(l.root)}m=null!=m?m:this.getXmlFileData(f,g,x);y=null!=y?y:this.getCurrentFile();a=this.createFileData(m,e,y,window.location.href,a,b,c,d,f,n,x);e!=this.editor.graph&&
+this.editor.setStatus(""),a?b.reloadFile(mxUtils.bind(this,function(){b.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){b.handleFileError(a,!0)})):b.synchronizeFile(mxUtils.bind(this,function(){b.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){b.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,c,d,f,g,m,n,A,x){f=null!=f?f:!0;g=null!=g?g:!1;var e=this.editor.graph;if(b||!a&&null!=A&&/(\.svg)$/i.test(A.getTitle()))if(x=
+!1,null!=e.themes&&"darkTheme"==e.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var k=e.getGlobalVariable,e=this.createTemporaryGraph(e.getStylesheet()),l=this.pages[0];e.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?1:k.apply(this,arguments)};document.body.appendChild(e.container);e.model.setRoot(l.root)}m=null!=m?m:this.getXmlFileData(f,g,x);A=null!=A?A:this.getCurrentFile();a=this.createFileData(m,e,A,window.location.href,a,b,c,d,f,n,x);e!=this.editor.graph&&
e.container.parentNode.removeChild(e.container);return a};EditorUi.prototype.getHtml=function(a,b,c,d,f,g){g=null!=g?g:!0;var e=null,k=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var e=g?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),l=b.view.scale;g=Math.floor(e.x/l-b.view.translate.x);l=Math.floor(e.y/l-b.view.translate.y);e=b.background;null==f&&(b=this.getBasenames().join(";"),0<b.length&&(k=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",
l)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=f&&(f=f.replace(/&/g,"&amp;"));a=null!=a?Graph.zapGremlins(mxUtils.getXml(a)):"";d=Graph.compress(a);Graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==f?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+
(null!=f?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==f?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=f?'<meta http-equiv="refresh" content="0;URL=\''+f+"'\"/>\n":"")+"</head>\n<body"+(null==f&&null!=e&&e!=mxConstants.NONE?' style="background-color:'+e+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+d+"</div>\n</div>\n"+(null==f?'<script type="text/javascript" src="'+
@@ -10403,20 +10408,20 @@ null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,thi
mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==f?'<script type="text/javascript" src="'+b+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+f+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
null;var b=Editor.extractParserError(a,mxResources.get("invalidOrMissingFile"));if(b)throw Error(mxResources.get("notADiagramFile")+" ("+b+")");b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a&&"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<b.length||1==b.length&&b[0].hasAttribute("name"))){var e=null;this.fileNode=a;this.pages=[];for(var c=0;c<b.length;c++)null==b[c].getAttribute("id")&&b[c].setAttribute("id",c),a=new DiagramPage(b[c]),
null==a.getName()&&a.setName(mxResources.get("pageWithNumber",[c+1])),this.pages.push(a),null!=urlParams["page-id"]&&a.getId()==urlParams["page-id"]&&(e=a);this.currentPage=null!=e?e:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];a=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var d=urlParams["layer-ids"].split(" ");a={};for(c=0;c<d.length;c++)a[d[c]]=!0;for(var f=this.editor.graph.getModel(),g=f.getChildren(f.root),c=0;c<g.length;c++){var m=g[c];f.setVisible(m,a[m.id]||!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(a){var b=this.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(b)||/(\.html)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.png)$/i.test(b)||/(\.drawio)$/i.test(b))b=b.substring(0,b.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(b=b+"-"+this.currentPage.getName());return b};EditorUi.prototype.downloadFile=function(a,b,c,d,f,g,m,n,y,x,A){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var e=this.getBaseFilename(!f),
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var d=urlParams["layer-ids"].split(" ");a={};for(c=0;c<d.length;c++)a[d[c]]=!0;for(var f=this.editor.graph.getModel(),g=f.getChildren(f.root),c=0;c<g.length;c++){var m=g[c];f.setVisible(m,a[m.id]||!1)}}catch(A){}};EditorUi.prototype.getBaseFilename=function(a){var b=this.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():
+this.defaultFilename;if(/(\.xml)$/i.test(b)||/(\.html)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.png)$/i.test(b)||/(\.drawio)$/i.test(b))b=b.substring(0,b.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(b=b+"-"+this.currentPage.getName());return b};EditorUi.prototype.downloadFile=function(a,b,c,d,f,g,m,n,A,x,y){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var e=this.getBaseFilename(!f),
k=e+"."+a;if("xml"==a){var l='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,d,f,null,null,null,b);this.saveData(k,a,l,"text/xml")}else if("html"==a)l=this.getHtml2(this.getFileData(!0),this.editor.graph,e),this.saveData(k,a,l,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?k=e+".png":"jpeg"==a&&(k=e+".jpg"),this.saveRequest(k,a,mxUtils.bind(this,function(b,e){try{var c=this.editor.graph.pageVisible;
-null!=g&&(this.editor.graph.pageVisible=g);var k=this.createDownloadRequest(b,a,d,e,m,f,n,y,x,A);this.editor.graph.pageVisible=c;return k}catch(N){this.handleError(N)}}));else{var p=null,q=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==a){var t=this.editor.graph.background;if(m||t==mxConstants.NONE)t=
-null;var u=this.editor.graph.getSvg(t,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(u);this.editor.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();q('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else k=e+".svg",p=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();q(a)}),d)}}catch(G){this.handleError(G)}};EditorUi.prototype.createDownloadRequest=
-function(a,b,c,d,f,g,m,n,y,x){var e=this.editor.graph,k=e.getGraphBounds();c=this.getFileData(!0,null,null,null,c,0==g?!1:"xmlpng"!=b);var l="",p="";if(k.width*k.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==b&&0==g&&(p="&allPages=1");if("xmlpng"==b&&(x="1",b="png",null!=this.pages&&null!=this.currentPage))for(g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){l="&from="+g;break}g=e.background;"png"!=b&&"pdf"!=b||!f?f||
-null!=g&&g!=mxConstants.NONE||(g="#ffffff"):g=mxConstants.NONE;f={globalVars:e.getExportVariables()};y&&(f.grid={size:e.gridSize,steps:e.view.gridSteps,color:e.view.gridColor});Graph.translateDiagram&&(f.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+l+p+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+d+"&embedXml="+x+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(f))+(null!=m?"&scale="+
+null!=g&&(this.editor.graph.pageVisible=g);var k=this.createDownloadRequest(b,a,d,e,m,f,n,A,x,y);this.editor.graph.pageVisible=c;return k}catch(N){this.handleError(N)}}));else{var p=null,q=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==a){var t=this.editor.graph.background;if(m||t==mxConstants.NONE)t=
+null;var u=this.editor.graph.getSvg(t,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(u);this.editor.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();q('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else k=e+".svg",p=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();q(a)}),d)}}catch(H){this.handleError(H)}};EditorUi.prototype.createDownloadRequest=
+function(a,b,c,d,f,g,m,n,A,x){var e=this.editor.graph,k=e.getGraphBounds();c=this.getFileData(!0,null,null,null,c,0==g?!1:"xmlpng"!=b);var l="",p="";if(k.width*k.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==b&&0==g&&(p="&allPages=1");if("xmlpng"==b&&(x="1",b="png",null!=this.pages&&null!=this.currentPage))for(g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){l="&from="+g;break}g=e.background;"png"!=b&&"pdf"!=b||!f?f||
+null!=g&&g!=mxConstants.NONE||(g="#ffffff"):g=mxConstants.NONE;f={globalVars:e.getExportVariables()};A&&(f.grid={size:e.gridSize,steps:e.view.gridSteps,color:e.view.gridColor});Graph.translateDiagram&&(f.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+l+p+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+d+"&embedXml="+x+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(f))+(null!=m?"&scale="+
m:"")+(null!=n?"&border="+n:""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var e=window.location.hash,d=mxUtils.bind(this,function(c){var d=null!=a.data?a.data:"";null!=c&&0<c.length&&(0<d.length&&(d+="\n"),d+=c);c=new LocalFile(this,"csv"!=a.format&&0<d.length?d:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return e};this.fileLoaded(c);"csv"==a.format&&this.importCsv(d,
mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var k=null!=a.interval?parseInt(a.interval):6E4,l=null,f=mxUtils.bind(this,function(){var b=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){b===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),g()):this.handleError({message:mxResources.get("error")+
" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(f,k)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();f()}));g();f()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){d(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)})):d("")};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||d.warningImage,
a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,e){c.alert(a.tooltip)});return b}var e=null,c=this;if(null!=a&&0<a.length&&(e=mxUtils.parseXml(a),a=null!=e?e.documentElement:null,null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,f=d.getModel();f.beginUpdate();var g=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var m=f.getCell(a.getAttribute("id"));if(null!=m){try{var n=a.getAttribute("value");if(null!=n){var x=mxUtils.parseXml(n).documentElement;
-if(null!=x)if("1"==x.getAttribute("replace-value"))f.setValue(m,x);else for(var A=x.attributes,E=0;E<A.length;E++)d.setAttributeForCell(m,A[E].nodeName,0<A[E].nodeValue.length?A[E].nodeValue:null)}}catch(L){null!=window.console&&console.log("Error in value for "+m.id+": "+L)}try{var z=a.getAttribute("style");null!=z&&d.model.setStyle(m,z)}catch(L){null!=window.console&&console.log("Error in style for "+m.id+": "+L)}try{var B=a.getAttribute("icon");if(null!=B){var H=0<B.length?JSON.parse(B):null;null!=
-H&&H.append||d.removeCellOverlays(m);null!=H&&d.addCellOverlay(m,b(H))}}catch(L){null!=window.console&&console.log("Error in icon for "+m.id+": "+L)}try{var D=a.getAttribute("geometry");if(null!=D){var D=JSON.parse(D),C=d.getCellGeometry(m);if(null!=C){C=C.clone();for(key in D){var F=parseFloat(D[key]);"dx"==key?C.x+=F:"dy"==key?C.y+=F:"dw"==key?C.width+=F:"dh"==key?C.height+=F:C[key]=parseFloat(D[key])}d.model.setGeometry(m,C)}}}catch(L){null!=window.console&&console.log("Error in icon for "+m.id+
-": "+L)}}}else if("model"==a.nodeName){for(var G=a.firstChild;null!=G&&G.nodeType!=mxConstants.NODETYPE_ELEMENT;)G=G.nextSibling;null!=G&&(new mxCodec(a.firstChild)).decode(G,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(g=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
+if(null!=x)if("1"==x.getAttribute("replace-value"))f.setValue(m,x);else for(var y=x.attributes,E=0;E<y.length;E++)d.setAttributeForCell(m,y[E].nodeName,0<y[E].nodeValue.length?y[E].nodeValue:null)}}catch(L){null!=window.console&&console.log("Error in value for "+m.id+": "+L)}try{var z=a.getAttribute("style");null!=z&&d.model.setStyle(m,z)}catch(L){null!=window.console&&console.log("Error in style for "+m.id+": "+L)}try{var B=a.getAttribute("icon");if(null!=B){var G=0<B.length?JSON.parse(B):null;null!=
+G&&G.append||d.removeCellOverlays(m);null!=G&&d.addCellOverlay(m,b(G))}}catch(L){null!=window.console&&console.log("Error in icon for "+m.id+": "+L)}try{var D=a.getAttribute("geometry");if(null!=D){var D=JSON.parse(D),C=d.getCellGeometry(m);if(null!=C){C=C.clone();for(key in D){var F=parseFloat(D[key]);"dx"==key?C.x+=F:"dy"==key?C.y+=F:"dw"==key?C.width+=F:"dh"==key?C.height+=F:C[key]=parseFloat(D[key])}d.model.setGeometry(m,C)}}}catch(L){null!=window.console&&console.log("Error in icon for "+m.id+
+": "+L)}}}else if("model"==a.nodeName){for(var H=a.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=H.nextSibling;null!=H&&(new mxCodec(a.firstChild)).decode(H,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(g=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
1);a=a.nextSibling}}finally{f.endUpdate()}null!=g&&this.chromelessResize&&this.chromelessResize(!0,g)}return e};EditorUi.prototype.getCopyFilename=function(a,b){var e=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,c="",d=e.lastIndexOf(".");0<=d&&(c=e.substring(d),e=e.substring(0,d));if(b)var k=new Date,d=k.getFullYear(),f=k.getMonth()+1,g=k.getDate(),m=k.getHours(),n=k.getMinutes(),k=k.getSeconds(),e=e+(" "+(d+"-"+f+"-"+g+"-"+m+"-"+n+"-"+k));return e=mxResources.get("copyOf",[e])+c};
EditorUi.prototype.fileLoaded=function(a,b){var e=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var c=!1;this.hideDialog();null!=e&&(EditorUi.debug("File.closed",[e]),e.removeListener(this.descriptorChangedListener),e.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=e&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
this.setBackgroundImage(null);!b&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();b||this.showSplash()});if(null!=a)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);
@@ -10433,7 +10438,7 @@ EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;if
this.libraryLoaded(a,e,c.documentElement.getAttribute("title"),b)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c,d){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var e=this.sidebar.palettes[a.getHash()],e=null!=e?e[e.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var k=
null,l=mxUtils.bind(this,function(b,c){0==b.length&&a.isEditable()?(null==k&&(k=document.createElement("div"),k.className="geDropTarget",mxUtils.write(k,mxResources.get("dragElementsHere"))),c.appendChild(k)):this.addLibraryEntries(b,c)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);c=null!=c&&0<c.length?c:a.getTitle();var f=this.sidebar.addPalette(a.getHash(),c,null!=d?d:!0,mxUtils.bind(this,function(a){l(b,a)}));this.repositionLibrary(e);var g=f.parentNode.previousSibling;d=g.getAttribute("title");
null!=d&&0<d.length&&".scratchpad"!=a.title&&g.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+d);var p=document.createElement("div");p.style.position="absolute";p.style.right="0px";p.style.top="0px";p.style.padding="8px";p.style.backgroundColor="inherit";g.style.position="relative";var m=document.createElement("img");m.setAttribute("src",Dialog.prototype.closeImage);m.setAttribute("title",mxResources.get("close"));m.setAttribute("valign","absmiddle");m.setAttribute("border","0");m.style.cursor=
-"pointer";m.style.margin="0 3px";var n=null;if(".scratchpad"!=a.title||this.closableScratchpad)p.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=n?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var z=this.editor.graph,B=null,H=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
+"pointer";m.style.margin="0 3px";var n=null;if(".scratchpad"!=a.title||this.closableScratchpad)p.appendChild(m),mxEvent.addListener(m,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=n?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var z=this.editor.graph,B=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
f,b,a,a.getMode());mxEvent.consume(c)}),D=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=B&&null!=B.parentNode&&B.parentNode.removeChild(B),B=m.cloneNode(!1),B.setAttribute("src",Editor.spinImage),B.setAttribute("title",mxResources.get("saving")),B.style.cursor="default",B.style.marginRight="2px",B.style.marginTop="-2px",p.insertBefore(B,p.firstChild),g.style.paddingRight=18*p.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=B&&null!=
B.parentNode&&(B.parentNode.removeChild(B),g.style.paddingRight=18*p.childNodes.length+"px")})):null==n&&(n=m.cloneNode(!1),n.setAttribute("src",IMAGE_PATH+"/download.png"),n.setAttribute("title",mxResources.get("save")),p.insertBefore(n,p.firstChild),mxEvent.addListener(n,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==n||a.isModified()||(g.style.paddingRight=18*p.childNodes.length+"px",n.parentNode.removeChild(n),
n=null)});mxEvent.consume(c)})),g.style.paddingRight=18*p.childNodes.length+"px")}),C=mxUtils.bind(this,function(a,c,e,d){a=z.cloneCells(mxUtils.sortCells(z.model.getTopmostCells(a)));for(var l=0;l<a.length;l++){var g=z.getCellGeometry(a[l]);null!=g&&g.translate(-c.x,-c.y)}f.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,d||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=d&&(a.title=d);b.push(a);D(e);null!=
@@ -10444,8 +10449,8 @@ z.panningManager.stop(),z.graphHandler.reset(),z.isMouseDown=!1,z.autoScroll=!0,
new mxGeometry(0,0,p,m),c)],c[0].vertex=!0,C(c,new mxRectangle(0,0,p,m),a,mxEvent.isAltDown(a)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," ")),null!=k&&null!=k.parentNode&&0<b.length&&(k.parentNode.removeChild(k),k=null);else{var z=!1,u=mxUtils.bind(this,function(c,e){if(null!=c&&"application/pdf"==e){var d=Editor.extractGraphModelFromPdf(c);null!=d&&0<d.length&&(c=d)}if(null!=c)if(d=mxUtils.parseXml(c),"mxlibrary"==d.documentElement.nodeName)try{var g=JSON.parse(mxUtils.getTextContent(d.documentElement));
l(g,f);b=b.concat(g);D(a);this.spinner.stop();z=!0}catch(V){}else if("mxfile"==d.documentElement.nodeName)try{for(var p=d.documentElement.getElementsByTagName("diagram"),g=0;g<p.length;g++){var m=this.stringToCells(Editor.getDiagramNodeXml(p[g])),q=this.editor.graph.getBoundingBoxFromGeometry(m);C(m,new mxRectangle(0,0,q.width,q.height),a)}z=!0}catch(V){null!=window.console&&console.log("error in drop handler:",V)}z||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
null!=k&&null!=k.parentNode&&0<b.length&&(k.parentNode.removeChild(k),k=null)});null!=t&&null!=q&&(/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q))?this.importVisio(t,function(a){u(a,"text/xml")},null,q):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,q)&&null!=t?this.parseFile(t,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?u(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?
-"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):u(c,e)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"dragleave",function(a){f.style.cursor="";f.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));m=m.cloneNode(!1);m.setAttribute("src",Editor.editImage);m.setAttribute("title",mxResources.get("edit"));p.insertBefore(m,p.firstChild);mxEvent.addListener(m,"click",H);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==
-f&&H(a)});d=m.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));p.insertBefore(d,p.firstChild);mxEvent.addListener(d,"click",F);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
+"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):u(c,e)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"dragleave",function(a){f.style.cursor="";f.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));m=m.cloneNode(!1);m.setAttribute("src",Editor.editImage);m.setAttribute("title",mxResources.get("edit"));p.insertBefore(m,p.firstChild);mxEvent.addListener(m,"click",G);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==
+f&&G(a)});d=m.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));p.insertBefore(d,p.firstChild);mxEvent.addListener(d,"click",F);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
mxEvent.consume(a)})),p.insertBefore(d,p.firstChild))}g.appendChild(p);g.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var e=a[c],d=e.data;if(null!=d){var d=this.convertDataUri(d),k="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(k+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(k+"image="+d,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(d=this.stringToCells(Graph.decompress(e.xml)),
0<d.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(d,e.w,e.h,e.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
@@ -10456,13 +10461,13 @@ this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!
640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var c=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var b=c.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&b.refresh()}));return b};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");
a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();
mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c,d,f,g,m){var e=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},k=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&null!=a.message)try{m?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(B){}if(null!=k||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));
-var l=mxResources.get("ok"),p=null;b=null!=b?b:mxResources.get("error");if(null!=k){null!=k.retry&&(l=mxResources.get("cancel"),p=function(){e();k.retry()});if(404==k.code||404==k.status||403==k.code){m=403==k.code?null!=k.message?mxUtils.htmlEntities(k.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=f?f:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var q=
-null!=f?null:null!=g?g:window.location.hash;if(null!=q&&("#G"==q.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==q.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==k.code||404==k.status)){q="#U"==q.substring(0,2)?q.substring(45,q.lastIndexOf("%26ex")):q.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),
-mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+q);this.handleError(a,b,c,d,f)}),p,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){d.innerHTML="";for(var a=0;a<b.length;a++){var c=document.createElement("option");mxUtils.write(c,b[a].displayName);c.value=a;d.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(c,"<"+b[a].email+">");c.setAttribute("disabled","disabled");d.appendChild(c)}c=
+var l=mxResources.get("ok"),p=null;b=null!=b?b:mxResources.get("error");if(null!=k){null!=k.retry&&(l=mxResources.get("cancel"),p=function(){e();k.retry()});if(404==k.code||404==k.status||403==k.code){m=403==k.code?null!=k.message?mxUtils.htmlEntities(k.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=f?f:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var n=
+null!=f?null:null!=g?g:window.location.hash;if(null!=n&&("#G"==n.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==n.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==k.code||404==k.status)){n="#U"==n.substring(0,2)?n.substring(45,n.lastIndexOf("%26ex")):n.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),
+mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+n);this.handleError(a,b,c,d,f)}),p,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){d.innerHTML="";for(var a=0;a<b.length;a++){var c=document.createElement("option");mxUtils.write(c,b[a].displayName);c.value=a;d.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(c,"<"+b[a].email+">");c.setAttribute("disabled","disabled");d.appendChild(c)}c=
document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=b.length;d.appendChild(c)}var b=this.drive.getUsersList(),c=document.createElement("div"),e=document.createElement("span");e.style.marginTop="6px";mxUtils.write(e,mxResources.get("changeUser")+": ");c.appendChild(e);var d=document.createElement("select");d.style.width="200px";a();mxEvent.addListener(d,"change",mxUtils.bind(this,function(){var c=d.value,e=b.length!=c;e&&this.drive.setUser(b[c]);this.drive.authorize(e,
mxUtils.bind(this,function(){e||(b=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));c.appendChild(d);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(c.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=c&&c()}),480,150);return}}null!=k.message?m=""==k.message&&null!=k.name?mxUtils.htmlEntities(k.name):mxUtils.htmlEntities(k.message):
-null!=k.response&&null!=k.response.error?m=mxUtils.htmlEntities(k.response.error):"undefined"!==typeof window.App&&(k.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):k.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof k&&0<k.length&&(m=mxUtils.htmlEntities(k)))}var n=g=null;null!=k&&null!=k.helpLink&&(g=mxResources.get("help"),n=mxUtils.bind(this,function(){return this.editor.graph.openLink(k.helpLink)}));this.showError(b,m,l,c,p,null,
-null,g,n,null,null,null,d?c:null)}else null!=c&&c()};EditorUi.prototype.alert=function(a,b,c){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,c||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,c,d,f,g){var e=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},k=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){e();null!=b&&b()},function(){e();null!=c&&c()},d,f,null,null,null,null,k);this.showDialog(a.container,
+null!=k.response&&null!=k.response.error?m=mxUtils.htmlEntities(k.response.error):"undefined"!==typeof window.App&&(k.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):k.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof k&&0<k.length&&(m=mxUtils.htmlEntities(k)))}var q=g=null;null!=k&&null!=k.helpLink&&(g=mxResources.get("help"),q=mxUtils.bind(this,function(){return this.editor.graph.openLink(k.helpLink)}));this.showError(b,m,l,c,p,null,
+null,g,q,null,null,null,d?c:null)}else null!=c&&c()};EditorUi.prototype.alert=function(a,b,c){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,c||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,c,d,f,g){var e=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},k=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){e();null!=b&&b()},function(){e();null!=c&&c()},d,f,null,null,null,null,k);this.showDialog(a.container,
340,46+k,!0,g);a.init()};EditorUi.prototype.showBanner=function(a,b,c,d){var e=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var k=document.createElement("div");k.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(k.style,"box-shadow","1px 1px 2px 0px #ddd");
mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(k.style,"transition","all 1s ease");k.className="geBtn gePrimaryBtn";e=document.createElement("img");e.setAttribute("src",IMAGE_PATH+"/logo.png");e.setAttribute("border","0");e.setAttribute("align","absmiddle");e.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";k.appendChild(e);e=document.createElement("img");e.setAttribute("src",Dialog.prototype.closeImage);e.setAttribute("title",
mxResources.get(d?"doNotShowAgain":"close"));e.setAttribute("border","0");e.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";k.appendChild(e);mxUtils.write(k,b);document.body.appendChild(k);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var f=document.createElement("input");f.setAttribute("type","checkbox");f.setAttribute("id","geDoNotShowAgainCheckbox");f.style.marginRight=
@@ -10473,9 +10478,9 @@ mxResources.get(d?"doNotShowAgain":"close"));e.setAttribute("border","0");e.styl
this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,f,g){"text/xml"!=c||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+
"."+(null!=g?g:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=d?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==c||"image/"!=c.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,c,d);else{var e=document.createElement("a");
g=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof e.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var k=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);g=65==(k?parseInt(k[2],10):!1)?!1:g}if(g||this.isOffline()){e.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));g?e.download=b:e.setAttribute("target","_blank");document.body.appendChild(e);try{window.setTimeout(function(){URL.revokeObjectURL(e.href)},2E4),e.click(),
-e.parentNode.removeChild(e)}catch(y){}}else this.createEchoRequest(a,b,c,d,f).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,f,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=f?"&format="+f:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),k=Array(e),f=0;f<e;++f){for(var g=
-1024*f,m=Math.min(g+1024,d),n=Array(m-g),A=0;g<m;++A,++g)n[A]=c[g].charCodeAt(0);k[f]=new Uint8Array(n)}return new Blob(k,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,f,g,m,n){g=null!=g?g:!1;m=null!=m?m:"vsdx"!=f&&(!mxClient.IS_IOS||!navigator.standalone);f=this.getServiceCount(g);isLocalStorage&&f++;var e=4>=f?2:6<f?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e)if(null!=c&&"image/"==c.substring(0,6))this.openInNewWindow(a,c,d);else if(null!=c&&"text/html"==
-c.substring(0,9)){var k=new EmbedDialog(this,a);this.showDialog(k.container,440,240,!0,!0);k.init()}else{var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),f.document.close())}else e==App.MODE_DEVICE||"download"==e?this.doSaveLocalFile(a,b,c,d,null,n):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(k){try{this.exportFile(a,b,c,d,e,k)}catch(H){this.handleError(H)}}))}catch(B){this.handleError(B)}}),mxUtils.bind(this,
+e.parentNode.removeChild(e)}catch(A){}}else this.createEchoRequest(a,b,c,d,f).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,f,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=f?"&format="+f:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),k=Array(e),f=0;f<e;++f){for(var g=
+1024*f,m=Math.min(g+1024,d),n=Array(m-g),y=0;g<m;++y,++g)n[y]=c[g].charCodeAt(0);k[f]=new Uint8Array(n)}return new Blob(k,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,f,g,m,n){g=null!=g?g:!1;m=null!=m?m:"vsdx"!=f&&(!mxClient.IS_IOS||!navigator.standalone);f=this.getServiceCount(g);isLocalStorage&&f++;var e=4>=f?2:6<f?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,e){try{if("_blank"==e)if(null!=c&&"image/"==c.substring(0,6))this.openInNewWindow(a,c,d);else if(null!=c&&"text/html"==
+c.substring(0,9)){var k=new EmbedDialog(this,a);this.showDialog(k.container,440,240,!0,!0);k.init()}else{var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),f.document.close())}else e==App.MODE_DEVICE||"download"==e?this.doSaveLocalFile(a,b,c,d,null,n):null!=b&&0<b.length&&this.pickFolder(e,mxUtils.bind(this,function(k){try{this.exportFile(a,b,c,d,e,k)}catch(G){this.handleError(G)}}))}catch(B){this.handleError(B)}}),mxUtils.bind(this,
function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,g,m,null,1<f,e,a,c,d);g=this.isServices(f)?f>e?390:270:160;this.showDialog(b.container,400,g,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):(a=c?a:btoa(unescape(encodeURIComponent(a))),d.document.write('<html><img style="max-width:100%;" src="data:'+
b+";base64,"+a+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),d.document.close())};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
@@ -10485,8 +10490,8 @@ mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(
arguments)};EditorUi.prototype.saveData=function(a,b,c,d,f){this.isLocalFileSave()?this.saveLocalFile(c,a,d,f,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,e){return this.createEchoRequest(c,a,d,f,b,e)}),c,f,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,f,g,m){m=null!=m?m:!mxClient.IS_IOS||!navigator.standalone;var e=this.getServiceCount(!1);isLocalStorage&&e++;var k=4>=e?2:6<e?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,e){if("_blank"==e||null!=a&&0<a.length){var k=c("_blank"==
e?null:a,e==App.MODE_DEVICE||"download"==e||null==e||"_blank"==e?"0":"1");null!=k&&(e==App.MODE_DEVICE||"download"==e||"_blank"==e?k.simulate(document,"_blank"):this.pickFolder(e,mxUtils.bind(this,function(c){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=d)try{this.exportFile(d,a,g,!0,e,c)}catch(B){this.handleError(B)}else this.spinner.spin(document.body,mxResources.get("saving"))&&k.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=k.getStatus()&&299>=k.getStatus())try{this.exportFile(k.getText(),
a,g,!0,e,c)}catch(B){this.handleError(B)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,m,null,1<e,k,d,g,f);e=this.isServices(e)?4<e?390:270:160;this.showDialog(a.container,380,e,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,c,d,f,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,f,g,m,n,y,x,A,E){if(this.spinner.spin(document.body,mxResources.get("export")))try{var e=this.editor.graph.isSelectionEmpty();c=null!=c?c:e;var k=b?null:this.editor.graph.background;k==mxConstants.NONE&&(k=null);null==k&&0==b&&(k=A?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(k,a,m,n,null,c,null,null,"blank"==
-x?"_blank":"self"==x?"_top":null,null,!0,A,E);d&&this.editor.graph.addSvgShadow(l);var p=this.getBaseFilename()+".svg",q=mxUtils.bind(this,function(a){this.spinner.stop();f&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,y,null,null,null,!1));var b='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(p,"svg",b,"image/svg+xml"):
+EditorUi.prototype.exportFile=function(a,b,c,d,f,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,f,g,m,n,A,x,y,E){if(this.spinner.spin(document.body,mxResources.get("export")))try{var e=this.editor.graph.isSelectionEmpty();c=null!=c?c:e;var k=b?null:this.editor.graph.background;k==mxConstants.NONE&&(k=null);null==k&&0==b&&(k=y?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(k,a,m,n,null,c,null,null,"blank"==
+x?"_blank":"self"==x?"_top":null,null,!0,y,E);d&&this.editor.graph.addSvgShadow(l);var p=this.getBaseFilename()+".svg",q=mxUtils.bind(this,function(a){this.spinner.stop();f&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,A,null,null,null,!1));var b='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(p,"svg",b,"image/svg+xml"):
this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.editor.addFontCss(l);this.editor.graph.mathEnabled&&this.editor.addMathCss(l);g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(l,q,this.thumbImageCache)):q(l)}catch(F){this.handleError(F)}};EditorUi.prototype.addRadiobox=function(a,b,c,d,f,g,m){return this.addCheckbox(a,c,d,f,g,m,!0,b)};EditorUi.prototype.addCheckbox=function(a,
b,c,d,f,g,m,n){g=null!=g?g:!0;var e=document.createElement("input");e.style.marginRight="8px";e.style.marginTop="16px";e.setAttribute("type",m?"radio":"checkbox");m="geCheckbox-"+Editor.guid();e.id=m;null!=n&&e.setAttribute("name",n);c&&(e.setAttribute("checked","checked"),e.defaultChecked=!0);d&&e.setAttribute("disabled","disabled");g&&(a.appendChild(e),c=document.createElement("label"),mxUtils.write(c,b),c.setAttribute("for",m),a.appendChild(c),f||mxUtils.br(a));return e};EditorUi.prototype.addEditButton=
function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),e="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(e=window.location.href);var k=document.createElement("select");k.style.width="120px";k.style.marginLeft="8px";k.style.marginRight="10px";k.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));k.appendChild(d);d=document.createElement("option");
@@ -10495,35 +10500,35 @@ b.checked)?k.removeAttribute("disabled"):k.setAttribute("disabled","disabled")})
Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var e=document.createElement("option");e.setAttribute("value","auto");mxUtils.write(e,mxResources.get("automatic"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));d.appendChild(e);e=document.createElement("option");
e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));d.appendChild(e);b&&(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(e));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var k="#0000ff",f=null,f=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(k||"none",function(a){k=a;c()});mxEvent.consume(a)}));c();f.style.padding=
mxClient.IS_FF?"4px 2px 4px 2px":"4px";f.style.marginLeft="4px";f.style.height="22px";f.style.width="22px";f.style.position="relative";f.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";f.className="geColorBtn";a.appendChild(f);mxUtils.br(a);return{getColor:function(){return k},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,c,d,f,g,m){m=null!=m?m:[];d&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||m.push("lightbox=1"),"auto"!=a&&m.push("target="+a),null!=b&&b!=mxConstants.NONE&&m.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=f&&0<f.length&&m.push("edit="+encodeURIComponent(f)),g&&m.push("layers=1"),this.editor.graph.foldingEnabled&&m.push("nav=1"));c&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&m.push("page-id="+this.currentPage.getId());return m};EditorUi.prototype.createLink=function(a,b,c,d,f,g,m,n,y,x){y=this.createUrlParameters(a,
-b,c,d,f,g,y);a=this.getCurrentFile();b=!0;null!=m?c="#U"+encodeURIComponent(m):(a=this.getCurrentFile(),n||null==a||a.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&y.push("title="+encodeURIComponent(a.getTitle()));x&&1<c.length&&(y.push("open="+c.substring(1)),c="");return(d&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<y.length?"?"+y.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,f,g,m,n,y,x,A){this.getBasenames();var e={};""!=f&&f!=mxConstants.NONE&&(e.highlight=f);"auto"!==d&&(e.target=d);y||(e.lightbox=!1);e.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(e.zoom=c/100);c=[];m&&(c.push("pages"),
-e.resize=!0,null!=this.pages&&null!=this.currentPage&&(e.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),e.resize=!0);n&&c.push("layers");0<c.length&&(y&&c.push("lightbox"),e.toolbar=c.join(" "));null!=x&&0<x.length&&(e.edit=x);null!=a?e.url=a:e.xml=this.getFileData(!0,null,null,null,null,!m);b='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(e))+'"></div>';a=null!=a?"&fetch="+
-encodeURIComponent(a):"";A(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,
+"1"!=urlParams.dev||m.push("lightbox=1"),"auto"!=a&&m.push("target="+a),null!=b&&b!=mxConstants.NONE&&m.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=f&&0<f.length&&m.push("edit="+encodeURIComponent(f)),g&&m.push("layers=1"),this.editor.graph.foldingEnabled&&m.push("nav=1"));c&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&m.push("page-id="+this.currentPage.getId());return m};EditorUi.prototype.createLink=function(a,b,c,d,f,g,m,n,A,x){A=this.createUrlParameters(a,
+b,c,d,f,g,A);a=this.getCurrentFile();b=!0;null!=m?c="#U"+encodeURIComponent(m):(a=this.getCurrentFile(),n||null==a||a.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(c="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&A.push("title="+encodeURIComponent(a.getTitle()));x&&1<c.length&&(A.push("open="+c.substring(1)),c="");return(d&&
+"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<A.length?"?"+A.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,f,g,m,n,A,x,y){this.getBasenames();var e={};""!=f&&f!=mxConstants.NONE&&(e.highlight=f);"auto"!==d&&(e.target=d);A||(e.lightbox=!1);e.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(e.zoom=c/100);c=[];m&&(c.push("pages"),
+e.resize=!0,null!=this.pages&&null!=this.currentPage&&(e.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),e.resize=!0);n&&c.push("layers");0<c.length&&(A&&c.push("lightbox"),e.toolbar=c.join(" "));null!=x&&0<x.length&&(e.edit=x);null!=a?e.url=a:e.xml=this.getFileData(!0,null,null,null,null,!m);b='<div class="mxgraph" style="'+(g?"max-width:100%;":"")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(e))+'"></div>';a=null!=a?"&fetch="+
+encodeURIComponent(a):"";y(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,
mxResources.get("html"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(k);var f=document.createElement("div");f.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","type-embedhtmldialog");k=g.cloneNode(!0);k.setAttribute("value",
"copy");f.appendChild(k);var l=document.createElement("span");mxUtils.write(l,mxResources.get("includeCopyOfMyDiagram"));f.appendChild(l);mxUtils.br(f);f.appendChild(g);l=document.createElement("span");mxUtils.write(l,mxResources.get("publicDiagramUrl"));f.appendChild(l);var m=this.getCurrentFile();null==c&&null!=m&&m.constructor==window.DriveFile&&(l=document.createElement("a"),l.style.paddingLeft="12px",l.style.color="gray",l.style.cursor="pointer",mxUtils.write(l,mxResources.get("share")),f.appendChild(l),
mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));k.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");e.appendChild(f);var p=this.addLinkSection(e),n=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,":");var z=document.createElement("input");z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value=
-"100%";e.appendChild(z);var B=this.addCheckbox(e,mxResources.get("fit"),!0),f=null!=this.pages&&1<this.pages.length,H=H=this.addCheckbox(e,mxResources.get("allPages"),f,!f),D=this.addCheckbox(e,mxResources.get("layers"),!0),C=this.addCheckbox(e,mxResources.get("lightbox"),!0),F=this.addEditButton(e,C),G=F.getEditInput();G.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?G.removeAttribute("disabled"):G.setAttribute("disabled","disabled");G.checked&&C.checked?F.getEditSelect().removeAttribute("disabled"):
-F.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(g.checked?c:null,n.checked,z.value,p.getTarget(),p.getColor(),B.checked,H.checked,D.checked,C.checked,F.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);k.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,f,g){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,a||mxResources.get("link"));k.style.cssText=
+"100%";e.appendChild(z);var B=this.addCheckbox(e,mxResources.get("fit"),!0),f=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(e,mxResources.get("allPages"),f,!f),D=this.addCheckbox(e,mxResources.get("layers"),!0),C=this.addCheckbox(e,mxResources.get("lightbox"),!0),F=this.addEditButton(e,C),H=F.getEditInput();H.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?H.removeAttribute("disabled"):H.setAttribute("disabled","disabled");H.checked&&C.checked?F.getEditSelect().removeAttribute("disabled"):
+F.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,e,mxUtils.bind(this,function(){d(g.checked?c:null,n.checked,z.value,p.getTarget(),p.getColor(),B.checked,G.checked,D.checked,C.checked,F.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);k.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,f,g){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,a||mxResources.get("link"));k.style.cssText=
"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(k);var l=this.getCurrentFile(),k="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=l&&l.constructor==window.DriveFile&&!b){a=80;var k="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var p=document.createElement("div");
p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));m.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));p.style.marginTop="12px";p.className="geBtn";m.appendChild(p);e.appendChild(m);p=document.createElement("a");p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));m.appendChild(p);mxEvent.addListener(p,"click",
mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var n=null,q=null;if(null!=c||null!=d)a+=30,mxUtils.write(e,mxResources.get("width")+":"),n=document.createElement("input"),n.setAttribute("type","text"),
-n.style.marginRight="16px",n.style.width="50px",n.style.marginLeft="6px",n.style.marginRight="16px",n.style.marginBottom="10px",n.value="100%",e.appendChild(n),mxUtils.write(e,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=d+"px",e.appendChild(q),mxUtils.br(e);var t=this.addLinkSection(e,g);c=null!=this.pages&&1<this.pages.length;var H=null;if(null==l||l.constructor!=window.DriveFile||
-b)H=this.addCheckbox(e,mxResources.get("allPages"),c,!c);var D=this.addCheckbox(e,mxResources.get("lightbox"),!0,null,null,!g),C=this.addEditButton(e,D),F=C.getEditInput();g&&(F.style.marginLeft=D.style.marginLeft,D.style.display="none",a-=30);var G=this.addCheckbox(e,mxResources.get("layers"),!0);G.style.marginLeft=F.style.marginLeft;G.style.marginBottom="16px";G.style.marginTop="8px";mxEvent.addListener(D,"change",function(){D.checked?(G.removeAttribute("disabled"),F.removeAttribute("disabled")):
-(G.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&D.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,function(){f(t.getTarget(),t.getColor(),null==H?!0:H.checked,D.checked,C.getLink(),G.checked,null!=n?n.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||
+n.style.marginRight="16px",n.style.width="50px",n.style.marginLeft="6px",n.style.marginRight="16px",n.style.marginBottom="10px",n.value="100%",e.appendChild(n),mxUtils.write(e,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=d+"px",e.appendChild(q),mxUtils.br(e);var t=this.addLinkSection(e,g);c=null!=this.pages&&1<this.pages.length;var G=null;if(null==l||l.constructor!=window.DriveFile||
+b)G=this.addCheckbox(e,mxResources.get("allPages"),c,!c);var D=this.addCheckbox(e,mxResources.get("lightbox"),!0,null,null,!g),C=this.addEditButton(e,D),F=C.getEditInput();g&&(F.style.marginLeft=D.style.marginLeft,D.style.display="none",a-=30);var H=this.addCheckbox(e,mxResources.get("layers"),!0);H.style.marginLeft=F.style.marginLeft;H.style.marginBottom="16px";H.style.marginTop="8px";mxEvent.addListener(D,"change",function(){D.checked?(H.removeAttribute("disabled"),F.removeAttribute("disabled")):
+(H.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&D.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,function(){f(t.getTarget(),t.getColor(),null==G?!0:G.checked,D.checked,C.getLink(),H.checked,null!=n?n.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),k);this.showDialog(b.container,340,254+a,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||
5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)):t.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d,f){var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=document.createElement("h3");mxUtils.write(k,mxResources.get("image"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(f?"10":"4")+"px";e.appendChild(k);if(f){mxUtils.write(e,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";e.appendChild(g);mxUtils.write(e,mxResources.get("borderWidth")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.value=this.lastExportBorder||"0";e.appendChild(l);mxUtils.br(e)}var m=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
p=d?null:this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),!0),k=this.editor.graph,n=d?null:this.addCheckbox(e,mxResources.get("transparentBackground"),k.background==mxConstants.NONE||null==k.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,e,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,b=parseInt(l.value)||0;c(!m.checked,null!=p?p.checked:!1,null!=n?n.checked:!1,a,b)}),null,a,b);this.showDialog(a.container,300,(f?25:0)+(d?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,c,d,f,g,m,n,y){m=null!=m?m:!0;var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=this.editor.graph,l="jpeg"==n?196:300,p=document.createElement("h3");mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";e.appendChild(p);mxUtils.write(e,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight=
+function(a,b,c,d,f,g,m,n,A){m=null!=m?m:!0;var e=document.createElement("div");e.style.whiteSpace="nowrap";var k=this.editor.graph,l="jpeg"==n?196:300,p=document.createElement("h3");mxUtils.write(p,a);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";e.appendChild(p);mxUtils.write(e,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight=
"12px";q.value=this.lastExportZoom||"100%";e.appendChild(q);mxUtils.write(e,mxResources.get("borderWidth")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.value=this.lastExportBorder||"0";e.appendChild(t);mxUtils.br(e);var u=this.addCheckbox(e,mxResources.get("selectionOnly"),!1,k.isSelectionEmpty()),C=document.createElement("input");C.style.marginTop="16px";C.style.marginRight="8px";C.style.marginLeft=
-"24px";C.setAttribute("disabled","disabled");C.setAttribute("type","checkbox");var v=document.createElement("select");v.style.marginTop="16px";v.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(p=0;p<a.length;p++)if(!k.isSelectionEmpty()||"selectionOnly"!=a[p]){var G=document.createElement("option");mxUtils.write(G,mxResources.get(a[p]));G.setAttribute("value",a[p]);v.appendChild(G)}y?(mxUtils.write(e,mxResources.get("size")+":"),e.appendChild(v),mxUtils.br(e),l+=26,mxEvent.addListener(v,
-"change",function(){"selectionOnly"==v.value&&(u.checked=!0)})):g&&(e.appendChild(C),mxUtils.write(e,mxResources.get("crop")),mxUtils.br(e),l+=26,mxEvent.addListener(u,"change",function(){u.checked?C.removeAttribute("disabled"):C.setAttribute("disabled","disabled")}));k.isSelectionEmpty()?y&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",l-=26):(v.value="diagram",C.setAttribute("checked","checked"),C.defaultChecked=!0,mxEvent.addListener(u,
+"24px";C.setAttribute("disabled","disabled");C.setAttribute("type","checkbox");var v=document.createElement("select");v.style.marginTop="16px";v.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(p=0;p<a.length;p++)if(!k.isSelectionEmpty()||"selectionOnly"!=a[p]){var H=document.createElement("option");mxUtils.write(H,mxResources.get(a[p]));H.setAttribute("value",a[p]);v.appendChild(H)}A?(mxUtils.write(e,mxResources.get("size")+":"),e.appendChild(v),mxUtils.br(e),l+=26,mxEvent.addListener(v,
+"change",function(){"selectionOnly"==v.value&&(u.checked=!0)})):g&&(e.appendChild(C),mxUtils.write(e,mxResources.get("crop")),mxUtils.br(e),l+=26,mxEvent.addListener(u,"change",function(){u.checked?C.removeAttribute("disabled"):C.setAttribute("disabled","disabled")}));k.isSelectionEmpty()?A&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",l-=26):(v.value="diagram",C.setAttribute("checked","checked"),C.defaultChecked=!0,mxEvent.addListener(u,
"change",function(){v.value=u.checked?"selectionOnly":"diagram"}));var L=this.addCheckbox(e,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=n),I=null;Editor.isDarkMode()&&(I=this.addCheckbox(e,mxResources.get("dark"),!0),l+=26);var M=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible),N=document.createElement("input");N.style.marginTop="16px";N.style.marginRight="8px";N.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||N.setAttribute("disabled","disabled");
b&&(e.appendChild(N),mxUtils.write(e,mxResources.get("embedImages")),mxUtils.br(e),l+=26);var K=null;if("png"==n||"jpeg"==n)K=this.addCheckbox(e,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=26;var Z=this.addCheckbox(e,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=n);Z.style.marginBottom="16px";var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");
b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));J.appendChild(b);"svg"==n&&(mxUtils.write(e,mxResources.get("links")+":"),e.appendChild(J),mxUtils.br(e),mxUtils.br(e),l+=26);c=new CustomDialog(this,e,
mxUtils.bind(this,function(){this.lastExportBorder=t.value;this.lastExportZoom=q.value;f(q.value,L.checked,!u.checked,M.checked,Z.checked,N.checked,t.value,C.checked,!1,J.value,null!=K?K.checked:null,null!=I?I.checked:null,v.value)}),null,c,d);this.showDialog(c.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,f){var e=document.createElement("div");
-e.style.whiteSpace="nowrap";var k=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";e.appendChild(g)}var l=this.addCheckbox(e,mxResources.get("fit"),!0),m=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible&&d,!d),p=this.addCheckbox(e,c),n=this.addCheckbox(e,mxResources.get("lightbox"),!0),q=this.addEditButton(e,n),B=q.getEditInput(),H=1<k.model.getChildCount(k.model.getRoot()),
-D=this.addCheckbox(e,mxResources.get("layers"),H,!H);D.style.marginLeft=B.style.marginLeft;D.style.marginBottom="12px";D.style.marginTop="8px";mxEvent.addListener(n,"change",function(){n.checked?(H&&D.removeAttribute("disabled"),B.removeAttribute("disabled")):(D.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&n.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,
+e.style.whiteSpace="nowrap";var k=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";e.appendChild(g)}var l=this.addCheckbox(e,mxResources.get("fit"),!0),m=this.addCheckbox(e,mxResources.get("shadow"),k.shadowVisible&&d,!d),p=this.addCheckbox(e,c),n=this.addCheckbox(e,mxResources.get("lightbox"),!0),q=this.addEditButton(e,n),B=q.getEditInput(),G=1<k.model.getChildCount(k.model.getRoot()),
+D=this.addCheckbox(e,mxResources.get("layers"),G,!G);D.style.marginLeft=B.style.marginLeft;D.style.marginBottom="12px";D.style.marginTop="8px";mxEvent.addListener(n,"change",function(){n.checked?(G&&D.removeAttribute("disabled"),B.removeAttribute("disabled")):(D.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"));B.checked&&n.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,e,mxUtils.bind(this,
function(){a(l.checked,m.checked,p.checked,n.checked,q.getLink(),D.checked)}),null,mxResources.get("embed"),f);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,c,d,f,g,m,n){function e(b){var e=" ",p="";d&&(e=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
EditorUi.lightboxHost+"/?client=1"+(null!=l?"&page="+l:"")+(f?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",p+="cursor:pointer;");a&&(p+="max-width:100%;");var n="";c&&(n=' width="'+Math.round(k.width)+'" height="'+Math.round(k.height)+'"');m('<img src="'+b+'"'+n+(""!=p?' style="'+p+'"':"")+e+"/>")}var k=this.editor.graph.getGraphBounds(),l=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=d?this.getFileData(!0):null;a=
this.createImageDataUri(a,b,"png");e(a)}),null,null,null,mxUtils.bind(this,function(a){n({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),k.width*k.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var p="";c&&(p="&w="+Math.round(2*k.width)+"&h="+Math.round(2*k.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+p+"&xml="+encodeURIComponent(b));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
@@ -10535,21 +10540,21 @@ Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxR
a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(t){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var b=1,c=0;if(null!=
a){if(a.hasAttribute("scale")){var d=parseFloat(a.getAttribute("scale"));!isNaN(d)&&0<d&&(b=d)}a.hasAttribute("border")&&(d=parseInt(a.getAttribute("border")),!isNaN(d)&&0<d&&(c=d))}return{scale:b,border:c}};EditorUi.prototype.getEmbeddedPng=function(a,b,c,d,f){try{var e=this.editor.graph,k=null!=e.themes&&"darkTheme"==e.defaultThemeName,g=null;if(null!=c&&0<c.length)e=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(e.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,
!0),e),g=c;else if(k||null!=this.pages&&this.currentPage!=this.pages[0]){var e=this.createTemporaryGraph(e.getStylesheet()),l=e.getGlobalVariable,m=this.pages[0];e.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?1:l.apply(this,arguments)};document.body.appendChild(e.container);e.model.setRoot(m.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(c){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var d=c.toDataURL("image/png"),d=Editor.writeGraphModelToPng(d,
-"tEXt","mxfile",encodeURIComponent(g));a(d.substring(d.lastIndexOf(",")+1));e!=this.editor.graph&&e.container.parentNode.removeChild(e.container)}catch(z){null!=b&&b(z)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,d,null,e.shadowVisible,null,e,f)}catch(A){null!=b&&b(A)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,f,g,m,n,y,x,A,E,z){n=null!=n?n:!0;m=null!=y?y:b.background;m==mxConstants.NONE&&(m=null);g=b.getSvg(m,x,A,null,null,g,null,null,null,b.shadowVisible||
+"tEXt","mxfile",encodeURIComponent(g));a(d.substring(d.lastIndexOf(",")+1));e!=this.editor.graph&&e.container.parentNode.removeChild(e.container)}catch(z){null!=b&&b(z)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,d,null,e.shadowVisible,null,e,f)}catch(y){null!=b&&b(y)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,f,g,m,n,A,x,y,E,z){n=null!=n?n:!0;m=null!=A?A:b.background;m==mxConstants.NONE&&(m=null);g=b.getSvg(m,x,y,null,null,g,null,null,null,b.shadowVisible||
E,null,z);(b.shadowVisible||E)&&b.addSvgShadow(g);null!=a&&g.setAttribute("content",a);null!=c&&g.setAttribute("resource",c);if(null!=f)this.embedFonts(g,mxUtils.bind(this,function(a){n?this.editor.convertImages(a,mxUtils.bind(this,function(a){f((d?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))})):f((d?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
mxUtils.getXml(a))}));else return(d?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(g)};EditorUi.prototype.embedFonts=function(a,b){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(p){b(a)}}))}catch(l){b(a)}}))};
-EditorUi.prototype.exportImage=function(a,b,c,d,f,g,m,n,y,x,A,E,z){y=null!=y?y:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var e=this.editor.graph.isSelectionEmpty();c=null!=c?c:e;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,f?this.getFileData(!0,null,null,null,c,n):null,y,null==this.pages||0==this.pages.length,A)}catch(D){this.handleError(D)}}),null,this.thumbImageCache,
-null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,g,m,x,E,z)}catch(H){this.spinner.stop(),this.handleError(H)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,c,d,f,g){b=null!=b?b:0;c=null!=c?c:0;var e=[];try{var k=this.editor.graph;if(null!=a&&0<a.length){k.model.beginUpdate();try{var l=mxUtils.parseXml(a);a={};var m=this.editor.extractGraphModel(l.documentElement,
-null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var p=m.getElementsByTagName("diagram");if(1==p.length&&!g){if(m=Editor.parseDiagramNode(p[0]),null!=this.currentPage&&(a[p[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var n=p[0].getAttribute("name");null!=n&&""!=n&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,n))}}else if(0<
-p.length){g=[];var q=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[p[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(p[0]),d=!1,q=1);for(;q<p.length;q++){var t=p[q].getAttribute("id");p[q].removeAttribute("id");var H=this.updatePageRoot(new DiagramPage(p[q]));a[t]=p[q].getAttribute("id");var D=this.pages.length;null==H.getName()&&H.setName(mxResources.get("pageWithNumber",[D+1]));k.model.execute(new ChangePage(this,H,H,D,!0));g.push(H)}this.updatePageLinks(a,
-g)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(e=k.importGraphModel(m,b,c,d),null!=e))for(q=0;q<e.length;q++)this.updatePageLinksForCell(a,e[q])}finally{k.model.endUpdate()}}}catch(C){if(f)throw C;this.handleError(C)}return e};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,
-this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.sanitizeHtml(d.getLabel(b));for(var k=c.getElementsByTagName("a"),f=!1,g=0;g<k.length;g++)e=k[g].getAttribute("href"),null!=e&&(k[g].setAttribute("href",this.updatePageLink(a,e)),f=!0);f&&d.labelChanged(b,c.innerHTML)}for(g=0;g<d.model.getChildCount(b);g++)this.updatePageLinksForCell(a,d.model.getChildAt(b,g))};EditorUi.prototype.updatePageLink=function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=
-null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var k=d.actions[e];if(null!=k.open&&"data:page/id,"==k.open.substring(0,13)){var f=k.open.substring(k.open.indexOf(",")+1),c=a[f];null!=c?k.open="data:page/id,"+c:null==this.getPageById(f)&&delete k.open}}b="data:action/json,"+JSON.stringify(d)}}catch(v){}return b};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||
-/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,c,d){d=null!=d?d:a.name;c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var e=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var e=this.isRemoteVisioFormat(d);try{var k="UNKNOWN-VISIO",f=d.lastIndexOf(".");if(0<=f&&f<d.length)k=d.substring(f+1).toUpperCase();else{var g=d.lastIndexOf("/");0<=g&&g<d.length&&(d=d.substring(g+1))}EditorUi.logEvent({category:k+"-MS-IMPORT-FILE",action:"filename_"+
-d,label:e?"remote":"local"})}catch(A){}if(e)if(null==VSD_CONVERT_URL||this.isOffline())c({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{e=new FormData;e.append("file1",a,d);var l=new XMLHttpRequest;l.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(d)?"?stencil=1":""));l.responseType="blob";this.addRemoteServiceSecurityCheck(l);l.onreadystatechange=mxUtils.bind(this,function(){if(4==l.readyState)if(200<=l.status&&299>=
-l.status)try{var a=l.response;if("text/xml"==a.type){var e=new FileReader;e.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(B){c({message:mxResources.get("errorLoadingFile")})}});e.readAsText(a)}else this.doImportVisio(a,b,c,d)}catch(z){c(z)}else try{""==l.responseType||"text"==l.responseType?c({message:l.responseText}):(e=new FileReader,e.onload=function(){c({message:JSON.parse(e.result).Message})},e.readAsText(l.response))}catch(z){c({})}});l.send(e)}else try{this.doImportVisio(a,
-b,c,d)}catch(A){c(A)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importGraphML=function(a,b,c){c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,c)}catch(q){c(q)}else this.spinner.stop(),
-this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(a){var b=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(a)||this.handleError({message:mxResources.get("unknownError")})}catch(l){this.handleError(l)}else this.spinner.stop(),
+EditorUi.prototype.exportImage=function(a,b,c,d,f,g,m,n,A,x,y,E,z){A=null!=A?A:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var e=this.editor.graph.isSelectionEmpty();c=null!=c?c:e;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,f?this.getFileData(!0,null,null,null,c,n):null,A,null==this.pages||0==this.pages.length,y)}catch(D){this.handleError(D)}}),null,this.thumbImageCache,
+null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,g,m,x,E,z)}catch(G){this.spinner.stop(),this.handleError(G)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,c,d,f,g,m){b=null!=b?b:0;c=null!=c?c:0;var e=[];try{var k=this.editor.graph;if(null!=a&&0<a.length){k.model.beginUpdate();try{var l=mxUtils.parseXml(a);a={};var p=this.editor.extractGraphModel(l.documentElement,
+null!=this.pages);if(null!=p&&"mxfile"==p.nodeName&&null!=this.pages){var n=p.getElementsByTagName("diagram");if(1==n.length&&!g){if(p=Editor.parseDiagramNode(n[0]),null!=this.currentPage&&(a[n[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var q=n[0].getAttribute("name");null!=q&&""!=q&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,q))}}else if(0<
+n.length){g=[];var t=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[n[0].getAttribute("id")]=this.pages[0].getId(),p=Editor.parseDiagramNode(n[0]),d=!1,t=1);for(;t<n.length;t++){var u=n[t].getAttribute("id");n[t].removeAttribute("id");var D=this.updatePageRoot(new DiagramPage(n[t]));a[u]=n[t].getAttribute("id");var C=this.pages.length;null==D.getName()&&D.setName(mxResources.get("pageWithNumber",[C+1]));k.model.execute(new ChangePage(this,D,D,C,!0));g.push(D)}this.updatePageLinks(a,
+g)}}if(null!=p&&"mxGraphModel"===p.nodeName&&(e=k.importGraphModel(p,b,c,d),null!=e))for(t=0;t<e.length;t++)this.updatePageLinksForCell(a,e[t]);m&&this.insertHandler(e,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{k.model.endUpdate()}}}catch(F){if(f)throw F;this.handleError(F)}return e};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,
+b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.sanitizeHtml(d.getLabel(b));for(var k=c.getElementsByTagName("a"),f=!1,g=0;g<k.length;g++)e=k[g].getAttribute("href"),null!=e&&(k[g].setAttribute("href",this.updatePageLink(a,e)),f=!0);f&&d.labelChanged(b,c.innerHTML)}for(g=0;g<d.model.getChildCount(b);g++)this.updatePageLinksForCell(a,d.model.getChildAt(b,g))};EditorUi.prototype.updatePageLink=
+function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var k=d.actions[e];if(null!=k.open&&"data:page/id,"==k.open.substring(0,13)){var f=k.open.substring(k.open.indexOf(",")+1),c=a[f];null!=c?k.open="data:page/id,"+c:null==this.getPageById(f)&&delete k.open}}b="data:action/json,"+JSON.stringify(d)}}catch(v){}return b};
+EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,c,d){d=null!=d?d:a.name;c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var e=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var e=this.isRemoteVisioFormat(d);try{var k="UNKNOWN-VISIO",f=d.lastIndexOf(".");if(0<=f&&f<d.length)k=d.substring(f+1).toUpperCase();else{var g=d.lastIndexOf("/");0<=
+g&&g<d.length&&(d=d.substring(g+1))}EditorUi.logEvent({category:k+"-MS-IMPORT-FILE",action:"filename_"+d,label:e?"remote":"local"})}catch(y){}if(e)if(null==VSD_CONVERT_URL||this.isOffline())c({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{e=new FormData;e.append("file1",a,d);var l=new XMLHttpRequest;l.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(d)?"?stencil=1":""));l.responseType="blob";this.addRemoteServiceSecurityCheck(l);
+l.onreadystatechange=mxUtils.bind(this,function(){if(4==l.readyState)if(200<=l.status&&299>=l.status)try{var a=l.response;if("text/xml"==a.type){var e=new FileReader;e.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(B){c({message:mxResources.get("errorLoadingFile")})}});e.readAsText(a)}else this.doImportVisio(a,b,c,d)}catch(z){c(z)}else try{""==l.responseType||"text"==l.responseType?c({message:l.responseText}):(e=new FileReader,e.onload=function(){c({message:JSON.parse(e.result).Message})},
+e.readAsText(l.response))}catch(z){c({})}});l.send(e)}else try{this.doImportVisio(a,b,c,d)}catch(y){c(y)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importGraphML=function(a,b,c){c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var d=mxUtils.bind(this,function(){this.loadingExtensions=
+!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,c)}catch(q){c(q)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=function(a){var b=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(a)||this.handleError({message:mxResources.get("unknownError")})}catch(l){this.handleError(l)}else this.spinner.stop(),
this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?b():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",b))};EditorUi.prototype.convertLucidChart=function(a,b,c){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+a.length}),EditorUi.debug("convertLucidChart",a)}catch(q){}try{b(LucidImporter.importState(JSON.parse(a)))}catch(q){null!=
window.console&&console.error(q),c(q)}}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(d,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",
d)})})})}):mxscript("js/extensions.min.js",d))};EditorUi.prototype.generateMermaidImage=function(a,b,c,d){var e=this,f=function(){try{this.loadingMermaid=!1,b=null!=b?b:EditorUi.defaultMermaidConfig,b.securityLevel="strict",b.startOnLoad=!1,mermaid.mermaidAPI.initialize(b),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),a,function(a){try{if(mxClient.IS_IE||mxClient.IS_IE11)a=a.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,
@@ -10570,19 +10575,19 @@ a.substring(0,26)||'{"Properties":'==a.substring(0,14))};EditorUi.prototype.impo
function(a,b){if(null!=b&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(b)){var c=new Blob([a],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(a){this.importXml(a,0,0,!0)}),null,b)}else this.editor.graph.setSelectionCells(this.importXml(a,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,
function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(a,b,c){var d=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(a).then(function(e){if(0==Object.keys(e.files).length)c();else{var f=0,k,g=!1;e.forEach(function(a,d){var e=d.name.toLowerCase();"diagram/diagram.xml"==e?(g=!0,d.async("string").then(function(a){0==a.indexOf("<mxfile ")?
b(a):c()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,k=d))});0<f?k.async("string").then(function(e){!d.isOffline()&&(new XMLHttpRequest).upload&&d.isRemoteFileFormat(e,a.name)?d.parseFile(new Blob([e],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?b(a.responseText):c())}),a.name):c()}):g||c()}},function(a){c(a)}):c()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=
-!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,c,d,f,g,m,n,y,x,A,E){x=null!=x?x:!0;var e=!1,k=null,l=mxUtils.bind(this,function(a){var b=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,m)):b=this.importXml(a,c,d,x,null,null!=E?mxEvent.isControlDown(E):null);null!=n&&n(b)});"image"==b.substring(0,5)?(y=!1,"image/png"==b.substring(0,9)&&(b=A?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(k=this.importXml(b,c,d,x,
-null,null!=E?mxEvent.isControlDown(E):null),y=!0)),y||(b=this.editor.graph,A=a.indexOf(";"),0<A&&(a=a.substring(0,A)+a.substring(a.indexOf(",",A+1))),x&&b.isGridEnabled()&&(c=b.snap(c),d=b.snap(d)),k=[b.insertVertex(null,null,"",c,d,f,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(e=!0,this.importGraphML(a,l)):null!=y&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?
-(e=!0,this.importVisio(y,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,m)?(e=!0,this.parseFile(null!=y?y:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?l(a.responseText):null!=n&&n(null))}),m)):0==a.indexOf("PK")&&null!=y?(e=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){k=this.insertTextAt(this.validateFileData(a),c,d,!0,null,x);n(k)}))):/(\.v(sd|dx))($|\?)/i.test(m)||/(\.vs(s|x))($|\?)/i.test(m)||
-(k=this.insertTextAt(this.validateFileData(a),c,d,!0,null,x,null,null!=E?mxEvent.isControlDown(E):null));e||null==n||n(k);return k};EditorUi.prototype.importFiles=function(a,b,c,d,f,g,m,n,y,x,A,E,z){d=null!=d?d:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var e=null!=b&&null!=c,k=!0;b=null!=b?b:0;c=null!=c?c:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var p=A||this.resampleThreshold,q=0;q<a.length;q++)if("image/"==a[q].type.substring(0,6)&&a[q].size>p){l=!0;break}var t=mxUtils.bind(this,
+!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,c,d,f,g,m,n,A,x,y,E){x=null!=x?x:!0;var e=!1,k=null,l=mxUtils.bind(this,function(a){var b=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,m)):b=this.importXml(a,c,d,x,null,null!=E?mxEvent.isControlDown(E):null);null!=n&&n(b)});"image"==b.substring(0,5)?(A=!1,"image/png"==b.substring(0,9)&&(b=y?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(k=this.importXml(b,c,d,x,
+null,null!=E?mxEvent.isControlDown(E):null),A=!0)),A||(b=this.editor.graph,y=a.indexOf(";"),0<y&&(a=a.substring(0,y)+a.substring(a.indexOf(",",y+1))),x&&b.isGridEnabled()&&(c=b.snap(c),d=b.snap(d)),k=[b.insertVertex(null,null,"",c,d,f,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(e=!0,this.importGraphML(a,l)):null!=A&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?
+(e=!0,this.importVisio(A,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,m)?(e=!0,this.parseFile(null!=A?A:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?l(a.responseText):null!=n&&n(null))}),m)):0==a.indexOf("PK")&&null!=A?(e=!0,this.importZipFile(A,l,mxUtils.bind(this,function(){k=this.insertTextAt(this.validateFileData(a),c,d,!0,null,x);n(k)}))):/(\.v(sd|dx))($|\?)/i.test(m)||/(\.vs(s|x))($|\?)/i.test(m)||
+(k=this.insertTextAt(this.validateFileData(a),c,d,!0,null,x,null,null!=E?mxEvent.isControlDown(E):null));e||null==n||n(k);return k};EditorUi.prototype.importFiles=function(a,b,c,d,f,g,m,n,A,x,y,E,z){d=null!=d?d:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var e=null!=b&&null!=c,k=!0;b=null!=b?b:0;c=null!=c?c:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var p=y||this.resampleThreshold,q=0;q<a.length;q++)if("image/"==a[q].type.substring(0,6)&&a[q].size>p){l=!0;break}var t=mxUtils.bind(this,
function(){var l=this.editor.graph,p=l.gridSize;f=null!=f?f:mxUtils.bind(this,function(a,b,c,d,f,k,g,l,m){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):this.importFile(a,b,c,d,f,k,g,l,m,e,E,z)}catch(O){return this.handleError(O),null}});g=null!=g?g:mxUtils.bind(this,function(a){l.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=a.length,t=q,u=[],B=mxUtils.bind(this,function(a,
b){u[a]=b;if(0==--t){this.spinner.stop();if(null!=n)n(u);else{var c=[];l.getModel().beginUpdate();try{for(var d=0;d<u.length;d++){var e=u[d]();null!=e&&(c=c.concat(e))}}finally{l.getModel().endUpdate()}}g(c)}}),C=0;C<q;C++)mxUtils.bind(this,function(e){var g=a[e];if(null!=g){var n=new FileReader;n.onload=mxUtils.bind(this,function(a){if(null==m||m(g))if("image/"==g.type.substring(0,6))if("image/svg"==g.type.substring(0,9)){var n=Graph.clipSvgDataUri(a.target.result),q=n.indexOf(","),z=decodeURIComponent(escape(atob(n.substring(q+
1)))),t=mxUtils.parseXml(z),z=t.getElementsByTagName("svg");if(0<z.length){var z=z[0],u=E?null:z.getAttribute("content");null!=u&&"<"!=u.charAt(0)&&"%"!=u.charAt(0)&&(u=unescape(window.atob?atob(u):Base64.decode(u,!0)));null!=u&&"%"==u.charAt(0)&&(u=decodeURIComponent(u));null==u||"<mxfile "!==u.substring(0,8)&&"<mxGraphModel "!==u.substring(0,14)?B(e,mxUtils.bind(this,function(){try{if(n.substring(0,q+1),null!=t){var a=t.getElementsByTagName("svg");if(0<a.length){var k=a[0],m=k.getAttribute("width"),
z=k.getAttribute("height"),m=null!=m&&"%"!=m.charAt(m.length-1)?parseFloat(m):NaN,z=null!=z&&"%"!=z.charAt(z.length-1)?parseFloat(z):NaN,u=k.getAttribute("viewBox");if(null==u||0==u.length)k.setAttribute("viewBox","0 0 "+m+" "+z);else if(isNaN(m)||isNaN(z)){var B=u.split(" ");3<B.length&&(m=parseFloat(B[2]),z=parseFloat(B[3]))}n=Editor.createSvgDataUri(mxUtils.getXml(k));var C=Math.min(1,Math.min(d/Math.max(1,m)),d/Math.max(1,z)),x=f(n,g.type,b+e*p,c+e*p,Math.max(1,Math.round(m*C)),Math.max(1,Math.round(z*
C)),g.name);if(isNaN(m)||isNaN(z)){var v=new Image;v.onload=mxUtils.bind(this,function(){m=Math.max(1,v.width);z=Math.max(1,v.height);x[0].geometry.width=m;x[0].geometry.height=z;k.setAttribute("viewBox","0 0 "+m+" "+z);n=Editor.createSvgDataUri(mxUtils.getXml(k));var a=n.indexOf(";");0<a&&(n=n.substring(0,a)+n.substring(n.indexOf(",",a+1)));l.setCellStyles("image",n,[x[0]])});v.src=Editor.createSvgDataUri(mxUtils.getXml(k))}return x}}}catch(ba){}return null})):B(e,mxUtils.bind(this,function(){return f(u,
"text/xml",b+e*p,c+e*p,0,0,g.name)}))}else B(e,mxUtils.bind(this,function(){return null}))}else{z=!1;if("image/png"==g.type){var C=E?null:this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var v=new Image;v.src=a.target.result;B(e,mxUtils.bind(this,function(){return f(C,"text/xml",b+e*p,c+e*p,v.width,v.height,g.name)}));z=!0}}z||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
-mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(l){this.resizeImage(l,a.target.result,mxUtils.bind(this,function(a,l,m){B(e,mxUtils.bind(this,function(){if(null!=a&&a.length<x){var n=k&&this.isResampleImageSize(g.size,A)?Math.min(1,Math.min(d/l,d/m)):1;return f(a,g.type,b+e*p,c+e*p,Math.round(l*n),Math.round(m*n),g.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),k,d,A,g.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else n=a.target.result,f(n,g.type,b+e*p,c+e*p,240,160,g.name,function(a){B(e,function(){return a})},g)});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?f(null,g.type,b+e*p,c+e*p,240,160,g.name,function(a){B(e,function(){return a})},g):"image"==g.type.substring(0,5)||"application/pdf"==g.type?n.readAsDataURL(g):n.readAsText(g)}})(C)});if(l){l=
-[];for(q=0;q<a.length;q++)l.push(a[q]);a=l;this.confirmImageResize(function(a){k=a;t()},y)}else t()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
+mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(l){this.resizeImage(l,a.target.result,mxUtils.bind(this,function(a,l,m){B(e,mxUtils.bind(this,function(){if(null!=a&&a.length<x){var n=k&&this.isResampleImageSize(g.size,y)?Math.min(1,Math.min(d/l,d/m)):1;return f(a,g.type,b+e*p,c+e*p,Math.round(l*n),Math.round(m*n),g.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),k,d,y,g.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else n=a.target.result,f(n,g.type,b+e*p,c+e*p,240,160,g.name,function(a){B(e,function(){return a})},g)});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?f(null,g.type,b+e*p,c+e*p,240,160,g.name,function(a){B(e,function(){return a})},g):"image"==g.type.substring(0,5)||"application/pdf"==g.type?n.readAsDataURL(g):n.readAsText(g)}})(C)});if(l){l=
+[];for(q=0;q<a.length;q++)l.push(a[q]);a=l;this.confirmImageResize(function(a){k=a;t()},A)}else t()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",
OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(t){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,c,d,f,g,m){f=null!=f?f:this.maxImageSize;var e=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImageSize(null!=m?m:b.length,g))try{var l=Math.max(e/f,k/f);if(1<l){var n=Math.round(e/l),p=Math.round(k/
l),q=document.createElement("canvas");q.width=n;q.height=p;q.getContext("2d").drawImage(a,0,0,n,p);var t=q.toDataURL();if(t.length<b.length){var u=document.createElement("canvas");u.width=n;u.height=p;var D=u.toDataURL();t!==D&&(b=t,e=n,k=p)}}}catch(C){}c(b,e,k)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,c){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:
@@ -10594,23 +10599,23 @@ f)this.editPlantUmlData(d,e,f);else if(f=this.graph.getAttributeForCell(d,"merma
arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var f=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return f.apply(this,arguments)};
var m=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};m.call(this,a,c,d)};g.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var n=Menus.prototype.addPopupMenuEditItems;
this.menus.addPopupMenuEditItems=function(b,c,d){a.editor.graph.isSelectionEmpty()?n.apply(this,arguments):a.menus.addMenuItems(b,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var v=b.getExportVariables;b.getExportVariables=function(){var b=v.apply(this,arguments),c=a.getCurrentFile();null!=
-c&&(b.filename=c.getTitle());b.pagecount=null!=a.pages?a.pages.length:1;b.page=null!=a.currentPage?a.currentPage.getName():"";b.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return b};var y=b.getGlobalVariable;b.getGlobalVariable=function(b){var c=a.getCurrentFile();return"filename"==b&&null!=c?c.getTitle():"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:
-"pagecount"==b?null!=a.pages?a.pages.length:1:y.apply(this,arguments)};var x=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))x.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?
-c.getTitle():b);return b};var A=this.actions.get("print");A.setEnabled(!mxClient.IS_IOS||!navigator.standalone);A.visible=A.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,
+c&&(b.filename=c.getTitle());b.pagecount=null!=a.pages?a.pages.length:1;b.page=null!=a.currentPage?a.currentPage.getName():"";b.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return b};var A=b.getGlobalVariable;b.getGlobalVariable=function(b){var c=a.getCurrentFile();return"filename"==b&&null!=c?c.getTitle():"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:
+"pagecount"==b?null!=a.pages?a.pages.length:1:A.apply(this,arguments)};var x=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))x.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?
+c.getTitle():b);return b};var y=this.actions.get("print");y.setEnabled(!mxClient.IS_IOS||!navigator.standalone);y.visible=y.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,
!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&b.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==
d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=
mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(A=this.editor.graph.view,A.setUnit(mxSettings.getUnit()),A.addListener("unitChanged",function(a,b){mxSettings.setUnit(b.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==
-document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,A.unit),this.refresh());if("1"==urlParams.styledev){A=document.getElementById("geFooter");null!=A&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility=
-"hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),A.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||
-"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var E=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:E.apply(this,arguments)}}A=document.getElementById("geInfo");null!=A&&A.parentNode.removeChild(A);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var z=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=z&&(z.parentNode.removeChild(z),
+"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(y=this.editor.graph.view,y.setUnit(mxSettings.getUnit()),y.addListener("unitChanged",function(a,b){mxSettings.setUnit(b.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==
+document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,y.unit),this.refresh());if("1"==urlParams.styledev){y=document.getElementById("geFooter");null!=y&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility=
+"hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),y.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||
+"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var E=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:E.apply(this,arguments)}}y=document.getElementById("geInfo");null!=y&&y.parentNode.removeChild(y);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var z=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=z&&(z.parentNode.removeChild(z),
z=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==z&&(!mxClient.IS_IE||10<document.documentMode)&&(z=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=z&&(z.parentNode.removeChild(z),z=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;if(0<a.dataTransfer.files.length)mxEvent.isShiftDown(a)?this.openFiles(a.dataTransfer.files,!0):(mxEvent.isAltDown(a)&&(g=f=null),this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a),a));else{mxEvent.isAltDown(a)&&(g=f=0);var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,
null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var l=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=b.sanitizeHtml(l);var m=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(l=d[0].getAttribute("src"),null==l&&(l=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)||(m=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?l=d[0].getAttribute("href"):
(c=c.getElementsByTagName("pre"),null!=c&&1==c.length&&(l=mxUtils.getTextContent(c[0]))));var n=!0,p=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(l,f,g,!0,m,null,n,mxEvent.isControlDown(a)))});m&&null!=l&&l.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;p()},mxEvent.isControlDown(a)):p()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);
var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),f,g,!0))}}a.stopPropagation();
a.preventDefault()}),!1)}b.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b))try{for(var c=b.clipboardData||b.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=
-f[index];if("file"===g.kind){if(a.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(b,c,d,e,f,g){a.insertImage(b,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(b)}break}}}}catch(y){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){c.innerHTML=
+f[index];if("file"===g.kind){if(a.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(b,c,d,e,f,g){a.insertImage(b,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var k=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],k.x,k.y,this.maxImageSize);mxEvent.consume(b)}break}}}}catch(A){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){c.innerHTML=
"&nbsp;";c.focus();document.execCommand("selectAll",!1,null)},0)}var b=this.editor.graph,c=document.createElement("div");c.setAttribute("autocomplete","off");c.setAttribute("autocorrect","off");c.setAttribute("autocapitalize","off");c.setAttribute("spellcheck","false");c.style.textRendering="optimizeSpeed";c.style.fontFamily="monospace";c.style.wordBreak="break-all";c.style.background="transparent";c.style.color="transparent";c.style.position="absolute";c.style.whiteSpace="nowrap";c.style.overflow=
"hidden";c.style.display="block";c.style.fontSize="1";c.style.zIndex="-1";c.style.resize="none";c.style.outline="none";c.style.width="1px";c.style.height="1px";mxUtils.setOpacity(c,0);c.contentEditable=!0;c.innerHTML="&nbsp;";var d=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var e=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||
b.isEditing()||null!=this.dialog||"INPUT"==e.nodeName||"TEXTAREA"==e.nodeName||224!=a.keyCode&&(mxClient.IS_MAC||17!=a.keyCode)&&(!mxClient.IS_MAC||91!=a.keyCode&&93!=a.keyCode)||d||(c.style.left=b.container.scrollLeft+10+"px",c.style.top=b.container.scrollTop+10+"px",b.container.appendChild(c),d=!0,c.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var e=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!d||224!=e&&17!=
@@ -10622,7 +10627,7 @@ EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof windo
mxUtils.bind(this,function(a,b){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor,
Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",
mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(a,b,c){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(a,
-c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(y){this.handleError(y)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=c?c:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(p){this.handleError(p)}};
+c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(A){this.handleError(A)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=c?c:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(p){this.handleError(p)}};
EditorUi.prototype.writeImageToClipboard=function(a,b,c,d){var e=this.base64ToBlob(a.substring(a.indexOf(",")+1),"image/png");a=new ClipboardItem({"image/png":e,"text/html":new Blob(['<img src="'+a+'" width="'+b+'" height="'+c+'">'],{type:"text/html"})});navigator.clipboard.write([a])["catch"](d)};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(c.encodeCells(d));
mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var a=null;if(Editor.enableNativeCipboard){var b=this.editor.graph;b.isSelectionEmpty()||(a=mxUtils.sortCells(b.getExportableCells(b.model.getTopmostCells(b.getSelectionCells()))),b=mxUtils.getXml(b.encodeCells(a)),navigator.clipboard.writeText(b))}return a};EditorUi.prototype.pasteXml=
function(a,b,c,d){var e=this.editor.graph,f=null;e.lastPasteXml==a?e.pasteCounter++:(e.lastPasteXml=a,e.pasteCounter=0);var g=e.pasteCounter*e.gridSize;if(c||this.isCompatibleString(a))f=this.importXml(a,g,g),e.setSelectionCells(f);else if(b&&1==e.getSelectionCount()){g=e.getStartEditingCell(e.getSelectionCell(),d);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a)&&"image"==e.getCurrentCellStyle(g)[mxConstants.STYLE_SHAPE])e.setCellStyles(mxConstants.STYLE_IMAGE,a,[g]);else{e.model.beginUpdate();try{e.labelChanged(g,
@@ -10637,7 +10642,7 @@ if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(
window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var f=document.documentElement;d=(e.clientWidth||f.clientWidth)-3;e=Math.max(e.clientHeight||0,f.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");
f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);
a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFileHandle=function(a,b,c,d,f){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var e=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
-".drawio":b+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,d);try{this.loadLibrary(new LocalLibrary(this,a,b))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,b,d)});if(/(\.v(dx|sdx?))($|\?)/i.test(b)||/(\.vs(x|sx?))($|\?)/i.test(b))this.importVisio(c,mxUtils.bind(this,function(a){this.spinner.stop();e(a)}));else if(/(\.*<graphml )/.test(a))this.importGraphML(a,
+".drawio":b+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,d);try{this.loadLibrary(new LocalLibrary(this,a,b))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,b,d)});if(/(\.v(dx|sdx?))($|\?)/i.test(b)||/(\.vs(x|sx?))($|\?)/i.test(b))this.importVisio(c,mxUtils.bind(this,function(a){this.spinner.stop();e(a)}));else if(/(\.*<graphml )/.test(a))this.importGraphML(a,
mxUtils.bind(this,function(a){this.spinner.stop();e(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,b))this.parseFile(c,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?e(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(a))/(\.json)$/i.test(b)&&(b=b.substring(0,
b.length-5)+".drawio"),this.convertLucidChart(a,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,b,d)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==a.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,d);try{this.loadLibrary(new LocalLibrary(this,a,c.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
a.indexOf("PK"))this.importZipFile(c,mxUtils.bind(this,function(a){this.spinner.stop();e(a)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(a,b,d)}));else{if("image/png"==c.type.substring(0,9))a=this.extractGraphModelFromPng(a);else if("application/pdf"==c.type){var g=Editor.extractGraphModelFromPdf(a);null!=g&&(f=null,d=!0,a=g)}this.spinner.stop();this.openLocalFile(a,b,d,f,null!=f?c:null)}}};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=
@@ -10658,12 +10663,12 @@ message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxReso
var p=1==k.enableRecent,q=1==k.enableSearch,t=1==k.enableCustomTemp,m=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(b,c,d,e){b=b||this.emptyDiagramXml;null!=k.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d,libs:e,builtIn:!0,message:k}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,p?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",
null,null,a,function(){a(null,"Network Error!")})}):null,q?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",[a],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){g.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,t?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null);this.showDialog(m.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
m.init();return}if("textContent"==k.action){var u=this.getDiagramTextContent();g.postMessage(JSON.stringify({event:"textContent",data:u,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var v=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==
-k.show||k.show?this.spinner.spin(document.body,v):this.spinner.stop();return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var G=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var y=this.editor.graph,I=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=k.format;
-b.message=k;b.data=a;b.xml=G;g.postMessage(JSON.stringify(b),"*")}),M=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==k.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(G)));y!=this.editor.graph&&y.container.parentNode.removeChild(y.container);I(a)}),N=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(G),c=!1);if(null!=this.pages&&
-this.currentPage.getId()!=N){for(var K=y.getGlobalVariable,y=this.createTemporaryGraph(y.getStylesheet()),Z,J=0;J<this.pages.length;J++)if(this.pages[J].getId()==N){Z=this.updatePageRoot(this.pages[J]);break}null==Z&&(Z=this.currentPage);y.getGlobalVariable=function(a){return"page"==a?Z.getName():"pagenumber"==a?1:K.apply(this,arguments)};document.body.appendChild(y.container);y.model.setRoot(Z.root)}if(null!=k.layerIds){for(var R=y.model,S=R.getChildCells(R.getRoot()),m={},J=0;J<k.layerIds.length;J++)m[k.layerIds[J]]=
-!0;for(J=0;J<S.length;J++)R.setVisible(S[J],m[S[J].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){M(a.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){M(null)}),null,null,k.scale,k.transparent,k.shadow,null,y,k.border,null,k.grid,k.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=N?"&pageId="+N:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):
-"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(G))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?I("data:image/png;base64,"+a.getText()):M(null)}),mxUtils.bind(this,function(){M(null)}))}}else{null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(k.xml),c=!1);v=this.createLoadMessage("export");v.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var Y=this.getXmlFileData();v.xml=
-mxUtils.getXml(Y);v.data=this.getFileData(null,null,!0,null,null,null,Y);v.format=k.format}else if("html"==k.format)G=this.editor.getGraphXml(),v.data=this.getHtml(G,this.editor.graph),v.xml=mxUtils.getXml(G),v.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ca=null!=k.background?k.background:this.editor.graph.background;ca==mxConstants.NONE&&(ca=null);v.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);v.format="svg";var ga=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+k.show||k.show?this.spinner.spin(document.body,v):this.spinner.stop();return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var H=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var A=this.editor.graph,I=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=k.format;
+b.message=k;b.data=a;b.xml=H;g.postMessage(JSON.stringify(b),"*")}),M=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==k.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(H)));A!=this.editor.graph&&A.container.parentNode.removeChild(A.container);I(a)}),N=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(H),c=!1);if(null!=this.pages&&
+this.currentPage.getId()!=N){for(var K=A.getGlobalVariable,A=this.createTemporaryGraph(A.getStylesheet()),Z,J=0;J<this.pages.length;J++)if(this.pages[J].getId()==N){Z=this.updatePageRoot(this.pages[J]);break}null==Z&&(Z=this.currentPage);A.getGlobalVariable=function(a){return"page"==a?Z.getName():"pagenumber"==a?1:K.apply(this,arguments)};document.body.appendChild(A.container);A.model.setRoot(Z.root)}if(null!=k.layerIds){for(var R=A.model,S=R.getChildCells(R.getRoot()),m={},J=0;J<k.layerIds.length;J++)m[k.layerIds[J]]=
+!0;for(J=0;J<S.length;J++)R.setVisible(S[J],m[S[J].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){M(a.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){M(null)}),null,null,k.scale,k.transparent,k.shadow,null,A,k.border,null,k.grid,k.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=N?"&pageId="+N:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):
+"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(H))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?I("data:image/png;base64,"+a.getText()):M(null)}),mxUtils.bind(this,function(){M(null)}))}}else{null!=k.xml&&0<k.xml.length&&(c=!0,this.setFileData(k.xml),c=!1);v=this.createLoadMessage("export");v.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var Y=this.getXmlFileData();v.xml=
+mxUtils.getXml(Y);v.data=this.getFileData(null,null,!0,null,null,null,Y);v.format=k.format}else if("html"==k.format)H=this.editor.getGraphXml(),v.data=this.getHtml(H,this.editor.graph),v.xml=mxUtils.getXml(H),v.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ca=null!=k.background?k.background:this.editor.graph.background;ca==mxConstants.NONE&&(ca=null);v.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);v.format="svg";var ga=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
this.spinner.stop();v.data=Editor.createSvgDataUri(a);g.postMessage(JSON.stringify(v),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(v.xml,this.editor.graph,null,!0,ga,null,null,k.embedImages,ca,k.scale,k.border,k.shadow,k.keepTheme);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){this.editor.graph.setEnabled(!1);
var X=this.editor.graph.getSvg(ca,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme);(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(X);this.embedFonts(X,mxUtils.bind(this,function(a){k.embedImages||null==k.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){ga(mxUtils.getXml(a))})):ga(mxUtils.getXml(a))}))}return}g.postMessage(JSON.stringify(v),"*")}return}if("load"==k.action){d=1==k.autosave;this.hideDialog();
null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified);null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=k.saveAndExit);null!=k.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=k.noSaveBtn);null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(n=document.createElement("span"),mxUtils.write(n,k.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop=
@@ -10679,18 +10684,18 @@ arguments);g.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowO
(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b),c=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),c="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(b,c),b.setAttribute("title",
c),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),c=b);c.style.marginRight="20px";this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,
mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var g in a[e].config)f[g]=
-a[e].config[g];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var g={},k=null,m=null,n=null,A=null,E=null,z=null,B=null,H=null,D=null,C="",F="auto",G="auto",L=null,I=null,M=40,N=40,K=100,Z=0,J=this.editor.graph;J.getGraphBounds();for(var R=function(){null!=b?b(na):(J.setSelectionCells(na),J.scrollCellToVisible(J.getSelectionCell()))},S=J.getFreeInsertPoint(),
+a[e].config[g];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var g={},k=null,m=null,n=null,y=null,E=null,z=null,B=null,G=null,D=null,C="",F="auto",H="auto",L=null,I=null,M=40,N=40,K=100,Z=0,J=this.editor.graph;J.getGraphBounds();for(var R=function(){null!=b?b(na):(J.setSelectionCells(na),J.scrollCellToVisible(J.getSelectionCell()))},S=J.getFreeInsertPoint(),
Y=S.x,ca=S.y,S=ca,ga=null,X="auto",D=null,W=[],ja=null,da=null,O=0;O<c.length&&"#"==c[O].charAt(0);){a=c[O];for(O++;O<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[O].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[O].substring(1)),O++;if("#"!=a.charAt(1)){var aa=a.indexOf(":");if(0<aa){var V=mxUtils.trim(a.substring(1,aa)),Q=mxUtils.trim(a.substring(aa+1));"label"==V?ga=J.sanitizeHtml(Q):"labelname"==V&&0<Q.length&&"-"!=Q?E=Q:"labels"==V&&0<Q.length&&"-"!=Q?z=JSON.parse(Q):"style"==V?m=Q:"parentstyle"==
-V?B=Q:"stylename"==V&&0<Q.length&&"-"!=Q?A=Q:"styles"==V&&0<Q.length&&"-"!=Q?n=JSON.parse(Q):"vars"==V&&0<Q.length&&"-"!=Q?k=JSON.parse(Q):"identity"==V&&0<Q.length&&"-"!=Q?H=Q:"parent"==V&&0<Q.length&&"-"!=Q?D=Q:"namespace"==V&&0<Q.length&&"-"!=Q?C=Q:"width"==V?F=Q:"height"==V?G=Q:"left"==V&&0<Q.length?L=Q:"top"==V&&0<Q.length?I=Q:"ignore"==V?da=Q.split(","):"connect"==V?W.push(JSON.parse(Q)):"link"==V?ja=Q:"padding"==V?Z=parseFloat(Q):"edgespacing"==V?M=parseFloat(Q):"nodespacing"==V?N=parseFloat(Q):
-"levelspacing"==V?K=parseFloat(Q):"layout"==V&&(X=Q)}}}if(null==c[O])throw Error(mxResources.get("invalidOrMissingFile"));for(var ea=this.editor.csvToArray(c[O]),V=aa=null,Q=[],U=0;U<ea.length;U++)H==ea[U]&&(aa=U),D==ea[U]&&(V=U),Q.push(mxUtils.trim(ea[U]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==ga&&(ga="%"+Q[0]+"%");if(null!=W)for(var fa=0;fa<W.length;fa++)null==g[W[fa].to]&&(g[W[fa].to]={});H=[];for(U=O+1;U<c.length;U++){var la=this.editor.csvToArray(c[U]);if(null==
-la){var ia=40<c[U].length?c[U].substring(0,40)+"...":c[U];throw Error(ia+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<la.length&&H.push(la)}J.model.beginUpdate();try{for(U=0;U<H.length;U++){var la=H[U],P=null,ma=null!=aa?C+la[aa]:null;null!=ma&&(P=J.model.getCell(ma));var c=null!=P,ba=new mxCell(ga,new mxGeometry(Y,S,0,0),m||"whiteSpace=wrap;html=1;");ba.vertex=!0;ba.id=ma;for(var ka=0;ka<la.length;ka++)J.setAttributeForCell(ba,Q[ka],la[ka]);if(null!=E&&null!=z){var ta=z[ba.getAttribute(E)];
-null!=ta&&J.labelChanged(ba,ta)}if(null!=A&&null!=n){var T=n[ba.getAttribute(A)];null!=T&&(ba.style=T)}J.setAttributeForCell(ba,"placeholders","1");ba.style=J.replacePlaceholders(ba,ba.style,k);c&&(J.model.setGeometry(P,ba.geometry),J.model.setStyle(P,ba.style),0>mxUtils.indexOf(e,P)&&e.push(P));P=ba;if(!c)for(fa=0;fa<W.length;fa++)g[W[fa].to][P.getAttribute(W[fa].to)]=P;null!=ja&&"link"!=ja&&(J.setLinkForCell(P,P.getAttribute(ja)),J.setAttributeForCell(P,ja,null));J.fireEvent(new mxEventObject("cellsInserted",
-"cells",[P]));var ha=this.editor.graph.getPreferredSizeForCell(P);P.vertex&&(null!=L&&null!=P.getAttribute(L)&&(P.geometry.x=Y+parseFloat(P.getAttribute(L))),null!=I&&null!=P.getAttribute(I)&&(P.geometry.y=ca+parseFloat(P.getAttribute(I))),"@"==F.charAt(0)&&null!=P.getAttribute(F.substring(1))?P.geometry.width=parseFloat(P.getAttribute(F.substring(1))):P.geometry.width="auto"==F?ha.width+Z:parseFloat(F),"@"==G.charAt(0)&&null!=P.getAttribute(G.substring(1))?P.geometry.height=parseFloat(P.getAttribute(G.substring(1))):
-P.geometry.height="auto"==G?ha.height+Z:parseFloat(G),S+=P.geometry.height+N);c?(null==f[ma]&&(f[ma]=[]),f[ma].push(P)):(D=null!=V?J.model.getCell(C+la[V]):null,d.push(P),null!=D?(D.style=J.replacePlaceholders(D,B,k),J.addCell(P,D)):e.push(J.addCell(P)))}for(var oa=e.slice(),na=e.slice(),fa=0;fa<W.length;fa++)for(var pa=W[fa],U=0;U<d.length;U++){var P=d[U],xa=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(J.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
+V?B=Q:"stylename"==V&&0<Q.length&&"-"!=Q?y=Q:"styles"==V&&0<Q.length&&"-"!=Q?n=JSON.parse(Q):"vars"==V&&0<Q.length&&"-"!=Q?k=JSON.parse(Q):"identity"==V&&0<Q.length&&"-"!=Q?G=Q:"parent"==V&&0<Q.length&&"-"!=Q?D=Q:"namespace"==V&&0<Q.length&&"-"!=Q?C=Q:"width"==V?F=Q:"height"==V?H=Q:"left"==V&&0<Q.length?L=Q:"top"==V&&0<Q.length?I=Q:"ignore"==V?da=Q.split(","):"connect"==V?W.push(JSON.parse(Q)):"link"==V?ja=Q:"padding"==V?Z=parseFloat(Q):"edgespacing"==V?M=parseFloat(Q):"nodespacing"==V?N=parseFloat(Q):
+"levelspacing"==V?K=parseFloat(Q):"layout"==V&&(X=Q)}}}if(null==c[O])throw Error(mxResources.get("invalidOrMissingFile"));for(var ea=this.editor.csvToArray(c[O]),V=aa=null,Q=[],U=0;U<ea.length;U++)G==ea[U]&&(aa=U),D==ea[U]&&(V=U),Q.push(mxUtils.trim(ea[U]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==ga&&(ga="%"+Q[0]+"%");if(null!=W)for(var fa=0;fa<W.length;fa++)null==g[W[fa].to]&&(g[W[fa].to]={});G=[];for(U=O+1;U<c.length;U++){var la=this.editor.csvToArray(c[U]);if(null==
+la){var ia=40<c[U].length?c[U].substring(0,40)+"...":c[U];throw Error(ia+" ("+U+"):\n"+mxResources.get("containsValidationErrors"));}0<la.length&&G.push(la)}J.model.beginUpdate();try{for(U=0;U<G.length;U++){var la=G[U],P=null,ma=null!=aa?C+la[aa]:null;null!=ma&&(P=J.model.getCell(ma));var c=null!=P,ba=new mxCell(ga,new mxGeometry(Y,S,0,0),m||"whiteSpace=wrap;html=1;");ba.vertex=!0;ba.id=ma;for(var ka=0;ka<la.length;ka++)J.setAttributeForCell(ba,Q[ka],la[ka]);if(null!=E&&null!=z){var ta=z[ba.getAttribute(E)];
+null!=ta&&J.labelChanged(ba,ta)}if(null!=y&&null!=n){var T=n[ba.getAttribute(y)];null!=T&&(ba.style=T)}J.setAttributeForCell(ba,"placeholders","1");ba.style=J.replacePlaceholders(ba,ba.style,k);c&&(J.model.setGeometry(P,ba.geometry),J.model.setStyle(P,ba.style),0>mxUtils.indexOf(e,P)&&e.push(P));P=ba;if(!c)for(fa=0;fa<W.length;fa++)g[W[fa].to][P.getAttribute(W[fa].to)]=P;null!=ja&&"link"!=ja&&(J.setLinkForCell(P,P.getAttribute(ja)),J.setAttributeForCell(P,ja,null));J.fireEvent(new mxEventObject("cellsInserted",
+"cells",[P]));var ha=this.editor.graph.getPreferredSizeForCell(P);P.vertex&&(null!=L&&null!=P.getAttribute(L)&&(P.geometry.x=Y+parseFloat(P.getAttribute(L))),null!=I&&null!=P.getAttribute(I)&&(P.geometry.y=ca+parseFloat(P.getAttribute(I))),"@"==F.charAt(0)&&null!=P.getAttribute(F.substring(1))?P.geometry.width=parseFloat(P.getAttribute(F.substring(1))):P.geometry.width="auto"==F?ha.width+Z:parseFloat(F),"@"==H.charAt(0)&&null!=P.getAttribute(H.substring(1))?P.geometry.height=parseFloat(P.getAttribute(H.substring(1))):
+P.geometry.height="auto"==H?ha.height+Z:parseFloat(H),S+=P.geometry.height+N);c?(null==f[ma]&&(f[ma]=[]),f[ma].push(P)):(D=null!=V?J.model.getCell(C+la[V]):null,d.push(P),null!=D?(D.style=J.replacePlaceholders(D,B,k),J.addCell(P,D)):e.push(J.addCell(P)))}for(var oa=e.slice(),na=e.slice(),fa=0;fa<W.length;fa++)for(var pa=W[fa],U=0;U<d.length;U++){var P=d[U],xa=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(J.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
e=0;e<d.length;e++){var f=g[c.to][d[e]];if(null!=f){var l=c.label;null!=c.fromlabel&&(l=(b.getAttribute(c.fromlabel)||"")+(l||""));null!=c.sourcelabel&&(l=J.replacePlaceholders(b,c.sourcelabel,k)+(l||""));null!=c.tolabel&&(l=(l||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(l=(l||"")+J.replacePlaceholders(f,c.targetlabel,k));var m="target"==c.placeholders==!c.invert?f:a,m=null!=c.style?J.replacePlaceholders(m,c.style,k):J.createCurrentEdgeStyle(),l=J.insertEdge(null,null,l||"",c.invert?
f:a,c.invert?a:f,m);if(null!=c.labels)for(m=0;m<c.labels.length;m++){var n=c.labels[m],p=new mxCell(n.label||m,new mxGeometry(null!=n.x?n.x:0,null!=n.y?n.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=n.placeholders&&(p.value=J.replacePlaceholders("target"==n.placeholders==!c.invert?f:a,p.value,k));if(null!=n.dx||null!=n.dy)p.geometry.offset=new mxPoint(null!=n.dx?n.dx:0,null!=n.dy?n.dy:0);l.insert(p)}na.push(l);mxUtils.remove(c.invert?a:f,oa)}}});xa(P,P,
pa);if(null!=f[P.id])for(ka=0;ka<f[P.id].length;ka++)xa(P,f[P.id][ka],pa)}if(null!=da)for(U=0;U<d.length;U++)for(P=d[U],ka=0;ka<da.length;ka++)J.setAttributeForCell(P,mxUtils.trim(da[ka]),null);if(0<e.length){var ua=new mxParallelEdgeLayout(J);ua.spacing=M;ua.checkOverlap=!0;var wa=function(){0<ua.spacing&&ua.execute(J.getDefaultParent());for(var a=0;a<e.length;a++){var b=J.getCellGeometry(e[a]);b.x=Math.round(J.snap(b.x));b.y=Math.round(J.snap(b.y));"auto"==F&&(b.width=Math.round(J.snap(b.width)));
-"auto"==G&&(b.height=Math.round(J.snap(b.height)))}};if("["==X.charAt(0)){var ya=R;J.view.validate();this.executeLayoutList(JSON.parse(X),function(){wa();ya()});R=null}else if("circle"==X){var qa=new mxCircleLayout(J);qa.disableEdgeStyle=!1;qa.resetEdges=!1;var za=qa.isVertexIgnored;qa.isVertexIgnored=function(a){return za.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){qa.execute(J.getDefaultParent());wa()},!0,R);R=null}else if("horizontaltree"==X||"verticaltree"==X||
+"auto"==H&&(b.height=Math.round(J.snap(b.height)))}};if("["==X.charAt(0)){var ya=R;J.view.validate();this.executeLayoutList(JSON.parse(X),function(){wa();ya()});R=null}else if("circle"==X){var qa=new mxCircleLayout(J);qa.disableEdgeStyle=!1;qa.resetEdges=!1;var za=qa.isVertexIgnored;qa.isVertexIgnored=function(a){return za.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){qa.execute(J.getDefaultParent());wa()},!0,R);R=null}else if("horizontaltree"==X||"verticaltree"==X||
"auto"==X&&na.length==2*e.length-1&&1==oa.length){J.view.validate();var va=new mxCompactTreeLayout(J,"horizontaltree"==X);va.levelDistance=N;va.edgeRouting=!1;va.resetEdges=!1;this.executeLayout(function(){va.execute(J.getDefaultParent(),0<oa.length?oa[0]:null)},!0,R);R=null}else if("horizontalflow"==X||"verticalflow"==X||"auto"==X&&1==oa.length){J.view.validate();var ra=new mxHierarchicalLayout(J,"horizontalflow"==X?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ra.intraCellSpacing=N;ra.parallelEdgeSpacing=
M;ra.interRankCellSpacing=K;ra.disableEdgeStyle=!1;this.executeLayout(function(){ra.execute(J.getDefaultParent(),na);J.moveCells(na,Y,ca)},!0,R);R=null}else if("organic"==X||"auto"==X&&na.length>e.length){J.view.validate();var sa=new mxFastOrganicLayout(J);sa.forceConstant=3*N;sa.disableEdgeStyle=!1;sa.resetEdges=!1;var Aa=sa.isVertexIgnored;sa.isVertexIgnored=function(a){return Aa.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){sa.execute(J.getDefaultParent());wa()},
!0,R);R=null}}this.hideDialog()}finally{J.model.endUpdate()}null!=R&&R()}}catch(Ba){this.handleError(Ba)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==
@@ -10723,8 +10728,8 @@ b){var c=mxUtils.bind(this,function(b,c){var d={event:"remoteInvokeResponse",msg
function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=b&&b(u)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(a){if(!a||"1"==urlParams.forceMigration){var b=document.createElement("iframe");b.style.display="none";b.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(b);var c=!0,d=!1,e,f=0,g=mxUtils.bind(this,function(){d=!0;this.setDatabaseItem(".drawioMigrated3",!0);b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;m()}),m=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(F){console.log(F)}}),l=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
-size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(F){console.log(F)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(G){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
-(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,m()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?l(f.resp[0]):k())}}catch(G){console.log(G)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(q){null!=b&&b(q)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,c,d,f){this.openDatabase(mxUtils.bind(this,function(e){try{f=f||"objects";Array.isArray(f)||(f=
+size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(F){console.log(F)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(H){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
+(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,m()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?l(f.resp[0]):k())}}catch(H){console.log(H)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(q){null!=b&&b(q)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,c,d,f){this.openDatabase(mxUtils.bind(this,function(e){try{f=f||"objects";Array.isArray(f)||(f=
[f],a=[a],b=[b]);var g=e.transaction(f,"readwrite");g.oncomplete=c;g.onerror=d;for(e=0;e<f.length;e++)g.objectStore(f[e]).put(null!=a&&null!=a[e]?{key:a[e],data:b[e]}:b[e])}catch(v){null!=d&&d(v)}}),d)};EditorUi.prototype.removeDatabaseItem=function(a,b,c,d){this.openDatabase(mxUtils.bind(this,function(e){d=d||"objects";Array.isArray(d)||(d=[d],a=[a]);e=e.transaction(d,"readwrite");e.oncomplete=b;e.onerror=c;for(var f=0;f<d.length;f++)e.objectStore(d[f])["delete"](a[f])}),c)};EditorUi.prototype.getDatabaseItem=
function(a,b,c,d){this.openDatabase(mxUtils.bind(this,function(e){try{d=d||"objects";var f=e.transaction([d],"readonly").objectStore(d).get(a);f.onsuccess=function(){b(f.result)};f.onerror=c}catch(u){null!=c&&c(u)}}),c)};EditorUi.prototype.getDatabaseItems=function(a,b,c){this.openDatabase(mxUtils.bind(this,function(d){try{c=c||"objects";var e=d.transaction([c],"readonly").objectStore(c).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
b.target.result["continue"]())};e.onerror=b}catch(u){null!=b&&b(u)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,c){this.openDatabase(mxUtils.bind(this,function(d){try{c=c||"objects";var e=d.transaction([c],"readonly").objectStore(c).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(t){null!=b&&b(t)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
@@ -10732,31 +10737,31 @@ this.getCurrentFile();return null!=a?a.commentsRefreshNeeded():!0};EditorUi.prot
a.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var a=this.getCurrentFile();return null!=a?a.canComment():!0};EditorUi.prototype.newComment=function(a,b){var c=this.getCurrentFile();return null!=c?c.newComment(a,b):new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};EditorUi.prototype.isRevisionHistorySupported=function(){var a=this.getCurrentFile();return null!=a&&a.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(a,b){var c=this.getCurrentFile();null!=
c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(a,b,c,d,f,g,m,n){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
return this.editor.loadUrl(a,b,c,d,f,g,m,n)};EditorUi.prototype.loadFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(a)};EditorUi.prototype.createSvgDataUri=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(a)};EditorUi.prototype.embedCssFonts=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(a,b)};EditorUi.prototype.embedExtFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
-return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,c,d,f,g,m,n,y,x,A,E,z,B,H,D){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,c,d,f,g,m,n,y,x,A,E,z,B,H,D)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,c,d){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,c,d,f,g,m,n,A,x,y,E,z,B,G,D){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,c,d,f,g,m,n,A,x,y,E,z,B,G,D)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,c,d){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
return this.editor.convertImages(a,b,c,d)};EditorUi.prototype.convertImageToDataUri=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(a,b)};EditorUi.prototype.base64Encode=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(a)};EditorUi.prototype.updateCRC=function(a,b,c,d){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(a,b,c,d)};EditorUi.prototype.crc32=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
return Editor.crc32(a)};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,f){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(a,b,c,d,f)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var a=[],b=0;b<localStorage.length;b++){var c=localStorage.key(b),d=localStorage.getItem(c);if(0<c.length&&(".scratchpad"==c||"."!=c.charAt(0))&&0<d.length){var f=
"<mxfile "===d.substring(0,8)||"<?xml"===d.substring(0,5)||"\x3c!--[if IE]>"===d.substring(0,12),d="<mxlibrary>"===d.substring(0,11);(f||d)&&a.push(c)}}return a};EditorUi.prototype.getLocalStorageFile=function(a){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var b=localStorage.getItem(a);return{title:a,data:b,isLib:"<mxlibrary>"===b.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
-var CommentsWindow=function(a,d,c,b,g,f){function m(){for(var a=A.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==A&&b++;E.style.display=0==b?"block":"none"}function n(a,b,c,d){function e(){b.removeChild(k);b.removeChild(l);g.style.display="block";f.style.display="block"}v={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),k=document.createElement("textarea");k.className=
+var CommentsWindow=function(a,d,c,b,g,f){function m(){for(var a=y.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==y&&b++;E.style.display=0==b?"block":"none"}function n(a,b,c,d){function e(){b.removeChild(k);b.removeChild(l);g.style.display="block";f.style.display="block"}v={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),k=document.createElement("textarea");k.className=
"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var l=document.createElement("div");l.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),m()):e();v=null});n.className="geCommentEditBtn";l.appendChild(n);var p=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);v=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(p.click(),mxEvent.consume(a)):27==a.keyCode&&(n.click(),mxEvent.consume(a)))}));p.focus();p.className="geCommentEditBtn gePrimaryBtn";l.appendChild(p);b.insertBefore(l,f);g.style.display="none";f.style.display="none";k.focus()}function e(b,c){c.innerHTML="";var d=new Date(b.modifiedDate),e=a.timeSince(d);null==e&&(e=mxResources.get("lessThanAMinute"));mxUtils.write(c,mxResources.get("timeAgo",
[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function k(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function l(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function p(a){a.style.border="";a.removeChild(a.busyImg)}function q(b,c,d,f,g){function z(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
-"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});G.appendChild(e);d&&(e.style.display="none")}function B(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=D;a(b);return{pdiv:d,replies:c}}function C(c,d,e,g,m){function z(){k(A);b.addReply(C,function(a){C.id=a;b.replies.push(C);p(A);e&&e()},function(b){t();l(A);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},g,m)}function t(){n(C,A,function(a){z()},!0)}var u=B().pdiv,C=a.newComment(c,a.getCurrentUser());C.pCommentId=b.id;null==b.replies&&(b.replies=[]);var A=q(C,b.replies,u,f+1);d?t():z()}if(g||!b.isResolved){E.style.display="none";var D=document.createElement("div");D.className="geCommentContainer";D.setAttribute("data-commentId",b.id);D.style.marginLeft=20*f+5+"px";b.isResolved&&!Editor.isDarkMode()&&(D.style.backgroundColor="ghostWhite");
-var F=document.createElement("div");F.className="geCommentHeader";var x=document.createElement("img");x.className="geCommentUserImg";x.src=b.user.pictureUrl||Editor.userImage;F.appendChild(x);x=document.createElement("div");x.className="geCommentHeaderTxt";F.appendChild(x);var I=document.createElement("div");I.className="geCommentUsername";mxUtils.write(I,b.user.displayName||"");x.appendChild(I);I=document.createElement("div");I.className="geCommentDate";I.setAttribute("data-commentId",b.id);e(b,
-I);x.appendChild(I);D.appendChild(F);F=document.createElement("div");F.className="geCommentTxt";mxUtils.write(F,b.content||"");D.appendChild(F);b.isLocked&&(D.style.opacity="0.5");F=document.createElement("div");F.className="geCommentActions";var G=document.createElement("ul");G.className="geCommentActionsList";F.appendChild(G);t||b.isLocked||0!=f&&!u||z(mxResources.get("reply"),function(){C("",!0)},b.isResolved);x=a.getCurrentUser();null==x||x.id!=b.user.id||t||b.isLocked||(z(mxResources.get("edit"),
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});F.appendChild(e);d&&(e.style.display="none")}function B(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=D;a(b);return{pdiv:d,replies:c}}function C(c,d,e,g,m){function z(){k(y);b.addReply(C,function(a){C.id=a;b.replies.push(C);p(y);e&&e()},function(b){t();l(y);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},g,m)}function t(){n(C,y,function(a){z()},!0)}var u=B().pdiv,C=a.newComment(c,a.getCurrentUser());C.pCommentId=b.id;null==b.replies&&(b.replies=[]);var y=q(C,b.replies,u,f+1);d?t():z()}if(g||!b.isResolved){E.style.display="none";var D=document.createElement("div");D.className="geCommentContainer";D.setAttribute("data-commentId",b.id);D.style.marginLeft=20*f+5+"px";b.isResolved&&!Editor.isDarkMode()&&(D.style.backgroundColor="ghostWhite");
+var I=document.createElement("div");I.className="geCommentHeader";var x=document.createElement("img");x.className="geCommentUserImg";x.src=b.user.pictureUrl||Editor.userImage;I.appendChild(x);x=document.createElement("div");x.className="geCommentHeaderTxt";I.appendChild(x);var H=document.createElement("div");H.className="geCommentUsername";mxUtils.write(H,b.user.displayName||"");x.appendChild(H);H=document.createElement("div");H.className="geCommentDate";H.setAttribute("data-commentId",b.id);e(b,
+H);x.appendChild(H);D.appendChild(I);I=document.createElement("div");I.className="geCommentTxt";mxUtils.write(I,b.content||"");D.appendChild(I);b.isLocked&&(D.style.opacity="0.5");I=document.createElement("div");I.className="geCommentActions";var F=document.createElement("ul");F.className="geCommentActionsList";I.appendChild(F);t||b.isLocked||0!=f&&!u||z(mxResources.get("reply"),function(){C("",!0)},b.isResolved);x=a.getCurrentUser();null==x||x.id!=b.user.id||t||b.isLocked||(z(mxResources.get("edit"),
function(){function c(){n(b,D,function(){k(D);b.editComment(b.content,function(){p(D)},function(b){l(D);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}c()},b.isResolved),z(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){k(D);b.deleteComment(function(a){if(!0===a){a=D.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var d=D.querySelectorAll(".geCommentAction");for(a=
-0;a<d.length;a++)d[a].parentNode.removeChild(d[a]);p(D);D.style.opacity="0.5"}else{d=B(b).replies;for(a=0;a<d.length;a++)A.removeChild(d[a]);for(a=0;a<c.length;a++)if(c[a]==b){c.splice(a,1);break}E.style.display=0==A.getElementsByTagName("div").length?"block":"none"}},function(b){l(D);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));t||b.isLocked||0!=f||z(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
-a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=B(b).replies,f=Editor.isDarkMode()?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var k=e[g].querySelectorAll(".geCommentAction"),l=0;l<k.length;l++)k[l]!=c.parentNode&&(k[l].style.display=d);H||(e[g].style.display="none")}m()}b.isResolved?C(mxResources.get("reOpened")+": ",!0,
-c,!1,!0):C(mxResources.get("markedAsResolved"),!1,c,!0)});D.appendChild(F);null!=d?A.insertBefore(D,d.nextSibling):A.appendChild(D);for(d=0;null!=b.replies&&d<b.replies.length;d++)F=b.replies[d],F.isResolved=b.isResolved,q(F,b.replies,null,f+1,g);null!=v&&(v.comment.id==b.id?(g=b.content,b.content=v.comment.content,n(b,D,v.saveCallback,v.deleteOnCancel),b.content=g):null==v.comment.id&&v.comment.pCommentId==b.id&&(A.appendChild(v.div),n(v.comment,v.div,v.saveCallback,v.deleteOnCancel)));return D}}
-var t=!a.canComment(),u=a.canReplyToReplies(),v=null,y=document.createElement("div");y.className="geCommentsWin";y.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;var x=EditorUi.compactUi?"26px":"30px",A=document.createElement("div");A.className="geCommentsList";A.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;A.style.bottom=parseInt(x)+7+"px";y.appendChild(A);var E=document.createElement("span");E.style.cssText="display:none;padding-top:10px;text-align:center;";
+0;a<d.length;a++)d[a].parentNode.removeChild(d[a]);p(D);D.style.opacity="0.5"}else{d=B(b).replies;for(a=0;a<d.length;a++)y.removeChild(d[a]);for(a=0;a<c.length;a++)if(c[a]==b){c.splice(a,1);break}E.style.display=0==y.getElementsByTagName("div").length?"block":"none"}},function(b){l(D);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));t||b.isLocked||0!=f||z(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
+a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=B(b).replies,f=Editor.isDarkMode()?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var k=e[g].querySelectorAll(".geCommentAction"),l=0;l<k.length;l++)k[l]!=c.parentNode&&(k[l].style.display=d);G||(e[g].style.display="none")}m()}b.isResolved?C(mxResources.get("reOpened")+": ",!0,
+c,!1,!0):C(mxResources.get("markedAsResolved"),!1,c,!0)});D.appendChild(I);null!=d?y.insertBefore(D,d.nextSibling):y.appendChild(D);for(d=0;null!=b.replies&&d<b.replies.length;d++)I=b.replies[d],I.isResolved=b.isResolved,q(I,b.replies,null,f+1,g);null!=v&&(v.comment.id==b.id?(g=b.content,b.content=v.comment.content,n(b,D,v.saveCallback,v.deleteOnCancel),b.content=g):null==v.comment.id&&v.comment.pCommentId==b.id&&(y.appendChild(v.div),n(v.comment,v.div,v.saveCallback,v.deleteOnCancel)));return D}}
+var t=!a.canComment(),u=a.canReplyToReplies(),v=null,A=document.createElement("div");A.className="geCommentsWin";A.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;var x=EditorUi.compactUi?"26px":"30px",y=document.createElement("div");y.className="geCommentsList";y.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;y.style.bottom=parseInt(x)+7+"px";A.appendChild(y);var E=document.createElement("span");E.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(E,mxResources.get("noCommentsFound"));var z=document.createElement("div");z.className="geToolbarContainer geCommentsToolbar";z.style.height=x;z.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";z.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;x=document.createElement("a");x.className="geButton";if(!t){var B=x.cloneNode();B.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';B.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(B,"click",function(b){function c(){n(d,e,function(b){k(e);a.addComment(b,function(a){b.id=a;D.push(b);p(e)},function(b){l(e);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var d=a.newComment("",a.getCurrentUser()),e=q(d,D,null,0);c();b.preventDefault();mxEvent.consume(b)});z.appendChild(B)}B=x.cloneNode();B.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';B.setAttribute("title",mxResources.get("showResolved"));
-var H=!1;Editor.isDarkMode()&&(B.style.filter="invert(100%)");mxEvent.addListener(B,"click",function(a){this.className=(H=!H)?"geButton geCheckedBtn":"geButton";C();a.preventDefault();mxEvent.consume(a)});z.appendChild(B);a.commentsRefreshNeeded()&&(B=x.cloneNode(),B.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',B.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(B.style.filter="invert(100%)"),mxEvent.addListener(B,"click",function(a){C();
-a.preventDefault();mxEvent.consume(a)}),z.appendChild(B));a.commentsSaveNeeded()&&(x=x.cloneNode(),x.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',x.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(x.style.filter="invert(100%)"),mxEvent.addListener(x,"click",function(a){f();a.preventDefault();mxEvent.consume(a)}),z.appendChild(x));y.appendChild(z);var D=[],C=mxUtils.bind(this,function(){this.hasError=!1;if(null!=v)try{v.div=v.div.cloneNode(!0);
-var b=v.div.querySelector(".geCommentEditTxtArea"),c=v.div.querySelector(".geCommentEditBtns");v.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(I){a.handleError(I)}A.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-
-new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});A.innerHTML="";A.appendChild(E);E.style.display="block";D=a;for(a=0;a<D.length;a++)b(D[a].replies),q(D[a],D,null,0,H);null!=v&&null==v.comment.id&&null==v.comment.pCommentId&&(A.appendChild(v.div),n(v.comment,v.div,v.saveCallback,v.deleteOnCancel))},mxUtils.bind(this,function(a){A.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
-": "+a.message:""));this.hasError=!0})):A.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});C();this.refreshComments=C;z=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(e(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}if(this.window.isVisible()){for(var b=A.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var f=b[d];c[f.getAttribute("data-commentId")]=f}for(d=0;d<D.length;d++)a(D[d])}});setInterval(z,6E4);this.refreshCommentsTime=z;this.window=
-new mxWindow(mxResources.get("comments"),y,d,c,b,g,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||
+var G=!1;Editor.isDarkMode()&&(B.style.filter="invert(100%)");mxEvent.addListener(B,"click",function(a){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";C();a.preventDefault();mxEvent.consume(a)});z.appendChild(B);a.commentsRefreshNeeded()&&(B=x.cloneNode(),B.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',B.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(B.style.filter="invert(100%)"),mxEvent.addListener(B,"click",function(a){C();
+a.preventDefault();mxEvent.consume(a)}),z.appendChild(B));a.commentsSaveNeeded()&&(x=x.cloneNode(),x.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',x.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(x.style.filter="invert(100%)"),mxEvent.addListener(x,"click",function(a){f();a.preventDefault();mxEvent.consume(a)}),z.appendChild(x));A.appendChild(z);var D=[],C=mxUtils.bind(this,function(){this.hasError=!1;if(null!=v)try{v.div=v.div.cloneNode(!0);
+var b=v.div.querySelector(".geCommentEditTxtArea"),c=v.div.querySelector(".geCommentEditBtns");v.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(I){a.handleError(I)}y.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-
+new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});y.innerHTML="";y.appendChild(E);E.style.display="block";D=a;for(a=0;a<D.length;a++)b(D[a].replies),q(D[a],D,null,0,G);null!=v&&null==v.comment.id&&null==v.comment.pCommentId&&(y.appendChild(v.div),n(v.comment,v.div,v.saveCallback,v.deleteOnCancel))},mxUtils.bind(this,function(a){y.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
+": "+a.message:""));this.hasError=!0})):y.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});C();this.refreshComments=C;z=mxUtils.bind(this,function(){function a(b){var d=c[b.id];if(null!=d)for(e(b,d),d=0;null!=b.replies&&d<b.replies.length;d++)a(b.replies[d])}if(this.window.isVisible()){for(var b=y.querySelectorAll(".geCommentDate"),c={},d=0;d<b.length;d++){var f=b[d];c[f.getAttribute("data-commentId")]=f}for(d=0;d<D.length;d++)a(D[d])}});setInterval(z,6E4);this.refreshCommentsTime=z;this.window=
+new mxWindow(mxResources.get("comments"),A,d,c,b,g,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var F=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",F);this.destroy=function(){mxEvent.removeListener(window,"resize",F);this.window.destroy()}},ConfirmDialog=function(a,d,c,
b,g,f,m,n,e,k,l){var p=document.createElement("div");p.style.textAlign="center";l=null!=l?l:44;var q=document.createElement("div");q.style.padding="6px";q.style.overflow="auto";q.style.maxHeight=l+"px";q.style.lineHeight="1.2em";mxUtils.write(q,d);p.appendChild(q);null!=k&&(q=document.createElement("div"),q.style.padding="6px 0 6px 0",d=document.createElement("img"),d.setAttribute("src",k),q.appendChild(d),p.appendChild(q));k=document.createElement("div");k.style.textAlign="center";k.style.whiteSpace=
"nowrap";var t=document.createElement("input");t.setAttribute("type","checkbox");f=mxUtils.button(f||mxResources.get("cancel"),function(){a.hideDialog();null!=b&&b(t.checked)});f.className="geBtn";null!=n&&(f.innerHTML=n+"<br>"+f.innerHTML,f.style.paddingBottom="8px",f.style.paddingTop="8px",f.style.height="auto",f.style.width="40%");a.editor.cancelFirst&&k.appendChild(f);var u=mxUtils.button(g||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c(t.checked)});k.appendChild(u);null!=m?(u.innerHTML=
@@ -10764,8 +10769,8 @@ m+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px"
"click",function(a){t.checked=!t.checked;mxEvent.consume(a)})):k.style.marginTop="12px";this.init=function(){u.focus()};this.container=p};EditorUi.DIFF_INSERT="i";EditorUi.DIFF_REMOVE="r";EditorUi.DIFF_UPDATE="u";EditorUi.prototype.codec=new mxCodec;EditorUi.prototype.viewStateProperties={background:!0,backgroundImage:!0,shadowVisible:!0,foldingEnabled:!0,pageScale:!0,mathEnabled:!0,pageFormat:!0,extFonts:!0};EditorUi.prototype.cellProperties={id:!0,value:!0,xmlValue:!0,vertex:!0,edge:!0,visible:!0,collapsed:!0,connectable:!0,parent:!0,children:!0,previous:!0,source:!0,target:!0,edges:!0,geometry:!0,style:!0,mxObjectId:!0,mxTransient:!0};
EditorUi.prototype.patchPages=function(a,d,c,b,g){var f={},m=[],n={},e={},k={},l={};if(null!=b&&null!=b[EditorUi.DIFF_UPDATE])for(var p in b[EditorUi.DIFF_UPDATE])f[p]=b[EditorUi.DIFF_UPDATE][p];if(null!=d[EditorUi.DIFF_REMOVE])for(b=0;b<d[EditorUi.DIFF_REMOVE].length;b++)e[d[EditorUi.DIFF_REMOVE][b]]=!0;if(null!=d[EditorUi.DIFF_INSERT])for(b=0;b<d[EditorUi.DIFF_INSERT].length;b++)n[d[EditorUi.DIFF_INSERT][b].previous]=d[EditorUi.DIFF_INSERT][b];if(null!=d[EditorUi.DIFF_UPDATE])for(p in d[EditorUi.DIFF_UPDATE])b=
d[EditorUi.DIFF_UPDATE][p],null!=b.previous&&(l[b.previous]=p);if(null!=a){var q="";for(b=0;b<a.length;b++){var t=a[b].getId();k[t]=a[b];null!=l[q]||e[t]||null!=d[EditorUi.DIFF_UPDATE]&&null!=d[EditorUi.DIFF_UPDATE][t]&&null!=d[EditorUi.DIFF_UPDATE][t].previous||(l[q]=t);q=t}}var u={},v=mxUtils.bind(this,function(a){var b=null!=a?a.getId():"";if(null!=a&&!u[b]){u[b]=!0;m.push(a);var e=null!=d[EditorUi.DIFF_UPDATE]?d[EditorUi.DIFF_UPDATE][b]:null;null!=e&&(this.updatePageRoot(a),null!=e.name&&a.setName(e.name),
-null!=e.view&&this.patchViewState(a,e.view),null!=e.cells&&this.patchPage(a,e.cells,f[a.getId()],g),!c||null==e.cells&&null==e.view||(a.needsUpdate=!0))}a=l[b];null!=a&&(delete l[b],v(k[a]));a=n[b];null!=a&&(delete n[b],y(a))}),y=mxUtils.bind(this,function(a){a=mxUtils.parseXml(a.data).documentElement;a=new DiagramPage(a);this.updatePageRoot(a);var b=k[a.getId()];null==b?v(a):(b.root=a.root,this.currentPage==b?this.editor.graph.model.setRoot(b.root):c&&(b.needsUpdate=!0))});v();for(p in l)v(k[l[p]]),
-delete l[p];for(p in n)y(n[p]),delete n[p];return m};EditorUi.prototype.patchViewState=function(a,d){if(null!=a.viewState&&null!=d){a==this.currentPage&&(a.viewState=this.editor.graph.getViewState());for(var c in d)try{a.viewState[c]=JSON.parse(d[c])}catch(b){}a==this.currentPage&&this.editor.graph.setViewState(a.viewState,!0)}};
+null!=e.view&&this.patchViewState(a,e.view),null!=e.cells&&this.patchPage(a,e.cells,f[a.getId()],g),!c||null==e.cells&&null==e.view||(a.needsUpdate=!0))}a=l[b];null!=a&&(delete l[b],v(k[a]));a=n[b];null!=a&&(delete n[b],A(a))}),A=mxUtils.bind(this,function(a){a=mxUtils.parseXml(a.data).documentElement;a=new DiagramPage(a);this.updatePageRoot(a);var b=k[a.getId()];null==b?v(a):(b.root=a.root,this.currentPage==b?this.editor.graph.model.setRoot(b.root):c&&(b.needsUpdate=!0))});v();for(p in l)v(k[l[p]]),
+delete l[p];for(p in n)A(n[p]),delete n[p];return m};EditorUi.prototype.patchViewState=function(a,d){if(null!=a.viewState&&null!=d){a==this.currentPage&&(a.viewState=this.editor.graph.getViewState());for(var c in d)try{a.viewState[c]=JSON.parse(d[c])}catch(b){}a==this.currentPage&&this.editor.graph.setViewState(a.viewState,!0)}};
EditorUi.prototype.createParentLookup=function(a,d){function c(a){var c=b[a];null==c&&(c={inserted:[],moved:{}},b[a]=c);return c}var b={};if(null!=d[EditorUi.DIFF_INSERT])for(var g=0;g<d[EditorUi.DIFF_INSERT].length;g++){var f=d[EditorUi.DIFF_INSERT][g],m=null!=f.parent?f.parent:"",n=null!=f.previous?f.previous:"";c(m).inserted[n]=f}if(null!=d[EditorUi.DIFF_UPDATE])for(var e in d[EditorUi.DIFF_UPDATE])f=d[EditorUi.DIFF_UPDATE][e],null!=f.previous&&(m=f.parent,null==m&&(g=a.getCell(e),null!=g&&(g=
a.getParent(g),null!=g&&(m=g.getId()))),null!=m&&(c(m).moved[f.previous]=e));return b};
EditorUi.prototype.patchPage=function(a,d,c,b){var g=a==this.currentPage?this.editor.graph.model:new mxGraphModel(a.root),f=this.createParentLookup(g,d);g.beginUpdate();try{var m=g.updateEdgeParent,n=new mxDictionary,e=[];g.updateEdgeParent=function(a,c){!n.get(a)&&b&&(n.put(a,!0),e.push(a))};var k=f[""],l=null!=k&&null!=k.inserted?k.inserted[""]:null,p=null;null!=l&&(p=this.getCellForJson(l));if(null==p){var q=null!=k&&null!=k.moved?k.moved[""]:null;null!=q&&(p=g.getCell(q))}null!=p&&(g.setRoot(p),
@@ -10829,8 +10834,8 @@ DrawioFileSync.prototype.p2pCatchup=function(a,d,c,b,g,f,m,n){if(null!=g&&(null=
else{failed=!0;c=[];break}}}catch(k){c=[],null!=window.console&&"1"==urlParams.test&&console.log(k)}try{0<c.length?(this.file.stats.cacheHits++,this.merge(c,d,g,f,m,n)):(this.file.stats.cacheFail++,this.reload(f,m,n))}catch(k){null!=m&&m(k)}}}else null!=m&&m()};
DrawioFileSync.prototype.catchup=function(a,d,c,b){if(null!=a&&(null==b||!b())){var g=this.file.getDescriptorRevisionId(a),f=this.file.getCurrentRevisionId();if(f==g)this.file.patchDescriptor(this.file.getDescriptor(),a),null!=d&&d();else if(this.isValidState()){var m=this.file.getDescriptorSecret(a);if(null==m||"1"==urlParams.lockdown)this.reload(d,c,b);else{var n=0,e=!1,k=mxUtils.bind(this,function(){if(null==b||!b())if(f!=this.file.getCurrentRevisionId())null!=d&&d();else if(this.isValidState()){var l=
!0,p=window.setTimeout(mxUtils.bind(this,function(){l=!1;this.reload(d,c,b)}),this.ui.timeout);mxUtils.get(EditorUi.cacheUrl+"?id="+encodeURIComponent(this.channelId)+"&from="+encodeURIComponent(f)+"&to="+encodeURIComponent(g)+(null!=m?"&secret="+encodeURIComponent(m):""),mxUtils.bind(this,function(g){this.file.stats.bytesReceived+=g.getText().length;window.clearTimeout(p);if(l&&(null==b||!b()))if(f!=this.file.getCurrentRevisionId())null!=d&&d();else if(this.isValidState()){var m=null,q=[];if(200<=
-g.getStatus()&&299>=g.getStatus()&&0<g.getText().length)try{var v=JSON.parse(g.getText());if(null!=v&&0<v.length)for(var y=0;y<v.length;y++){var x=this.stringToObject(v[y]);if(x.v>DrawioFileSync.PROTOCOL){e=!0;q=[];break}else if(x.v===DrawioFileSync.PROTOCOL&&null!=x.d)m=x.d.checksum,q.push(x.d.patch);else{e=!0;q=[];break}}}catch(A){q=[],null!=window.console&&"1"==urlParams.test&&console.log(A)}try{0<q.length?(this.file.stats.cacheHits++,this.merge(q,m,a,d,c,b)):n<=this.maxCacheReadyRetries-1&&!e&&
-401!=g.getStatus()&&503!=g.getStatus()?(n++,this.file.stats.cacheMiss++,window.setTimeout(k,(n+1)*this.cacheReadyDelay)):(this.file.stats.cacheFail++,this.reload(d,c,b))}catch(A){null!=c&&c(A)}}else null!=c&&c()}))}else null!=c&&c()});window.setTimeout(k,this.cacheReadyDelay)}}else null!=c&&c()}};
+g.getStatus()&&299>=g.getStatus()&&0<g.getText().length)try{var v=JSON.parse(g.getText());if(null!=v&&0<v.length)for(var A=0;A<v.length;A++){var x=this.stringToObject(v[A]);if(x.v>DrawioFileSync.PROTOCOL){e=!0;q=[];break}else if(x.v===DrawioFileSync.PROTOCOL&&null!=x.d)m=x.d.checksum,q.push(x.d.patch);else{e=!0;q=[];break}}}catch(y){q=[],null!=window.console&&"1"==urlParams.test&&console.log(y)}try{0<q.length?(this.file.stats.cacheHits++,this.merge(q,m,a,d,c,b)):n<=this.maxCacheReadyRetries-1&&!e&&
+401!=g.getStatus()&&503!=g.getStatus()?(n++,this.file.stats.cacheMiss++,window.setTimeout(k,(n+1)*this.cacheReadyDelay)):(this.file.stats.cacheFail++,this.reload(d,c,b))}catch(y){null!=c&&c(y)}}else null!=c&&c()}))}else null!=c&&c()});window.setTimeout(k,this.cacheReadyDelay)}}else null!=c&&c()}};
DrawioFileSync.prototype.reload=function(a,d,c,b){this.file.updateFile(mxUtils.bind(this,function(){this.lastModified=this.file.getLastModifiedDate();this.updateStatus();this.start();null!=a&&a()}),mxUtils.bind(this,function(a){null!=d&&d(a)}),c,b)};
DrawioFileSync.prototype.merge=function(a,d,c,b,g,f){try{this.file.stats.merged++;this.lastModified=new Date;this.file.shadowPages=null!=this.file.shadowPages?this.file.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.file.shadowData).documentElement);this.file.backupPatch=this.file.isModified()?this.ui.diffPages(this.file.shadowPages,this.ui.pages):null;var m=this.file.ignorePatches(a),n=this.file.getDescriptorRevisionId(c);if(!m){for(f=0;f<a.length;f++)this.file.shadowPages=this.ui.patchPages(this.file.shadowPages,
a[f]);var e=null!=d?this.ui.getHashValueForPages(this.file.shadowPages):null;"1"==urlParams.test&&EditorUi.debug("Sync.merge",[this],"from",this.file.getCurrentRevisionId(),"to",n,"etag",this.file.getDescriptorEtag(c),"backup",this.file.backupPatch,"attempt",this.catchupRetryCount,"patches",a,"checksum",d==e,d);if(null!=d&&d!=e){var k=this.ui.hashValue(this.file.getCurrentRevisionId()),l=this.ui.hashValue(n);this.file.checksumError(g,a,"From: "+k+"\nTo: "+l+"\nChecksum: "+d+"\nCurrent: "+e,n,"merge");
@@ -10928,22 +10933,22 @@ mxUtils.bind(this,function(a){a.title=a.originalFilename;a.headRevisionId=a.id;a
b,d,!0,m):this.getXmlFile(c,b,d)}else d({message:mxResources.get("loggedOut")})}catch(k){if(null!=d)d(k);else throw k;}}),d)};DriveClient.prototype.isGoogleRealtimeMimeType=function(a){return null!=a&&"application/vnd.jgraph.mxfile."==a.substring(0,30)};DriveClient.prototype.getXmlFile=function(c,b,d,f,m){try{var g={Authorization:"Bearer "+a},e=c.downloadUrl;if(null==e)null!=d&&d({message:mxResources.get("exportOptionsDisabledDetails")});else{var k=0,l=mxUtils.bind(this,function(){this.ui.editor.loadUrl(e,
mxUtils.bind(this,function(a){try{if(null==a)d({message:mxResources.get("invalidOrMissingFile")});else if(c.mimeType==this.libraryMimeType||m)c.mimeType!=this.libraryMimeType||m?b(new DriveLibrary(this.ui,a,c)):d({message:mxResources.get("notADiagramFile")});else{var f=!1;if(/\.png$/i.test(c.title)){var g=a.lastIndexOf(",");if(0<g){var k=this.ui.extractGraphModelFromPng(a);if(null!=k&&0<k.length)a=k;else try{var k=a.substring(g+1),l=!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(k):
atob(k),n=this.ui.editor.extractGraphModel(mxUtils.parseXml(l).documentElement,!0);null==n||0<n.getElementsByTagName("parsererror").length?f=!0:a=l}catch(x){f=!0}}}else/\.pdf$/i.test(c.title)?(k=Editor.extractGraphModelFromPdf(a),null!=k&&0<k.length&&(f=!0,a=k)):"data:image/png;base64,PG14ZmlsZS"==a.substring(0,32)&&(l=a.substring(22),a=window.atob&&!mxClient.IS_SF?atob(l):Base64.decode(l));Graph.fileSupport&&(new XMLHttpRequest).upload&&this.ui.isRemoteFileFormat(a,e)?this.ui.parseFile(new Blob([a],
-{type:"application/octet-stream"}),mxUtils.bind(this,function(a){try{4==a.readyState&&(200<=a.status&&299>=a.status?b(new LocalFile(this.ui,a.responseText,c.title+this.extension,!0)):null!=d&&d({message:mxResources.get("errorLoadingFile")}))}catch(A){if(null!=d)d(A);else throw A;}}),c.title):b(f?new LocalFile(this.ui,a,c.title,!0):new DriveFile(this.ui,a,c))}}catch(x){if(null!=d)d(x);else throw x;}}),mxUtils.bind(this,function(a,b){if(k<this.maxRetries&&null!=b&&403==b.getStatus())k++,window.setTimeout(l,
+{type:"application/octet-stream"}),mxUtils.bind(this,function(a){try{4==a.readyState&&(200<=a.status&&299>=a.status?b(new LocalFile(this.ui,a.responseText,c.title+this.extension,!0)):null!=d&&d({message:mxResources.get("errorLoadingFile")}))}catch(y){if(null!=d)d(y);else throw y;}}),c.title):b(f?new LocalFile(this.ui,a,c.title,!0):new DriveFile(this.ui,a,c))}}catch(x){if(null!=d)d(x);else throw x;}}),mxUtils.bind(this,function(a,b){if(k<this.maxRetries&&null!=b&&403==b.getStatus())k++,window.setTimeout(l,
2*k*this.coolOff*(1+.1*(Math.random()-.5)));else if(null!=d)d(a);else throw a;}),null!=c.mimeType&&"image/"==c.mimeType.substring(0,6)&&"image/svg"!=c.mimeType.substring(0,9)||/\.png$/i.test(c.title)||/\.jpe?g$/i.test(c.title)||/\.pdf$/i.test(c.title),null,null,null,g)});l()}}catch(p){if(null!=d)d(p);else throw p;}};DriveClient.prototype.saveFile=function(a,b,d,f,m,n,e,k,l){try{var c=0;a.saveLevel=1;var g=mxUtils.bind(this,function(b){if(null!=f)f(b);else throw b;try{if(!a.isConflict(b)){var c="sl_"+
a.saveLevel+"-error_"+(a.getErrorMessage(b)||"unknown");null!=b&&null!=b.error&&null!=b.error.code&&(c+="-code_"+b.error.code);EditorUi.logEvent({category:"ERROR-SAVE-FILE-"+a.getHash()+"-rev_"+a.desc.headRevisionId+"-mod_"+a.desc.modifiedDate+"-size_"+a.getSize()+"-mime_"+a.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(a.isAutosave()?"":"-noauto")+(a.changeListenerEnabled?"":"-nolisten")+(a.inConflictState?"-conflict":"")+(a.invalidChecksum?"-invalid":""),action:c,label:(null!=this.user?
-"user_"+this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync")})}}catch(F){}}),t=mxUtils.bind(this,function(a){g(a);try{EditorUi.logError(a.message,null,null,a)}catch(C){}});if(a.isEditable()&&null!=a.desc){var u=(new Date).getTime(),v=a.desc.etag,y=a.desc.modifiedDate,x=a.desc.headRevisionId,A=this.ui.useCanvasForExport&&/(\.png)$/i.test(a.getTitle());n=null!=n?n:!1;var E=null,z=!1,B={mimeType:a.desc.mimeType,title:a.getTitle()};if(this.isGoogleRealtimeMimeType(B.mimeType))B.mimeType=
-this.xmlMimeType,E=a.desc,z=b=!0;else if("application/octet-stream"==B.mimeType||"1"==urlParams["override-mime"]&&B.mimeType!=this.xmlMimeType)B.mimeType=this.xmlMimeType;var H=mxUtils.bind(this,function(f,m,p){try{a.saveLevel=3;a.constructor==DriveFile&&(null==k&&(k=[]),null==a.getChannelId()&&k.push({key:"channel",value:Editor.guid(32)}),null==a.getChannelKey()&&k.push({key:"key",value:Editor.guid(32)}),k.push({key:"secret",value:null!=l?l:Editor.guid(32)}));p||(null!=f||n||(f=this.placeholderThumbnail,
-m=this.placeholderMimeType),null!=f&&null!=m&&(B.thumbnail={image:f,mimeType:m}));var q=a.getData(),C=mxUtils.bind(this,function(c){try{if(a.saveDelay=(new Date).getTime()-u,a.saveLevel=11,null==c)g({message:mxResources.get("errorSavingFile")+": Empty response"});else{var e=(new Date(c.modifiedDate)).getTime()-(new Date(y)).getTime();if(0>=e||v==c.etag||b&&x==c.headRevisionId){a.saveLevel=12;var f=[];0>=e&&f.push("invalid modified time");v==c.etag&&f.push("stale etag");b&&x==c.headRevisionId&&f.push("stale revision");
-var k=f.join(", ");g({message:mxResources.get("errorSavingFile")+": "+k},c);try{EditorUi.logError("Critical: Error saving to Google Drive "+a.desc.id,null,"from-"+x+"."+y+"-"+this.ui.hashValue(v)+"-to-"+c.headRevisionId+"."+c.modifiedDate+"-"+this.ui.hashValue(c.etag)+(0<k.length?"-errors-"+k:""),"user-"+(null!=this.user?this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync"))}catch(R){}}else if(a.saveLevel=null,d(c,q),null!=E){this.executeRequest({url:"/files/"+E.id+"/revisions/"+
-E.headRevisionId+"?supportsAllDrives=true"},mxUtils.bind(this,mxUtils.bind(this,function(a){a.pinned=!0;this.executeRequest({url:"/files/"+E.id+"/revisions/"+E.headRevisionId,method:"PUT",params:a})})));try{EditorUi.logEvent({category:a.convertedFrom+"-CONVERT-FILE-"+a.getHash(),action:"from_"+E.id+"."+E.headRevisionId+"-to_"+a.desc.id+"."+a.desc.headRevisionId,label:null!=this.user?"user_"+this.user.id:"nouser"+(null!=a.sync?"-client_"+a.sync.clientId:"nosync")})}catch(R){}}}}catch(R){t(R)}}),H=
+"user_"+this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync")})}}catch(F){}}),t=mxUtils.bind(this,function(a){g(a);try{EditorUi.logError(a.message,null,null,a)}catch(C){}});if(a.isEditable()&&null!=a.desc){var u=(new Date).getTime(),v=a.desc.etag,A=a.desc.modifiedDate,x=a.desc.headRevisionId,y=this.ui.useCanvasForExport&&/(\.png)$/i.test(a.getTitle());n=null!=n?n:!1;var E=null,z=!1,B={mimeType:a.desc.mimeType,title:a.getTitle()};if(this.isGoogleRealtimeMimeType(B.mimeType))B.mimeType=
+this.xmlMimeType,E=a.desc,z=b=!0;else if("application/octet-stream"==B.mimeType||"1"==urlParams["override-mime"]&&B.mimeType!=this.xmlMimeType)B.mimeType=this.xmlMimeType;var G=mxUtils.bind(this,function(f,m,p){try{a.saveLevel=3;a.constructor==DriveFile&&(null==k&&(k=[]),null==a.getChannelId()&&k.push({key:"channel",value:Editor.guid(32)}),null==a.getChannelKey()&&k.push({key:"key",value:Editor.guid(32)}),k.push({key:"secret",value:null!=l?l:Editor.guid(32)}));p||(null!=f||n||(f=this.placeholderThumbnail,
+m=this.placeholderMimeType),null!=f&&null!=m&&(B.thumbnail={image:f,mimeType:m}));var q=a.getData(),C=mxUtils.bind(this,function(c){try{if(a.saveDelay=(new Date).getTime()-u,a.saveLevel=11,null==c)g({message:mxResources.get("errorSavingFile")+": Empty response"});else{var e=(new Date(c.modifiedDate)).getTime()-(new Date(A)).getTime();if(0>=e||v==c.etag||b&&x==c.headRevisionId){a.saveLevel=12;var f=[];0>=e&&f.push("invalid modified time");v==c.etag&&f.push("stale etag");b&&x==c.headRevisionId&&f.push("stale revision");
+var k=f.join(", ");g({message:mxResources.get("errorSavingFile")+": "+k},c);try{EditorUi.logError("Critical: Error saving to Google Drive "+a.desc.id,null,"from-"+x+"."+A+"-"+this.ui.hashValue(v)+"-to-"+c.headRevisionId+"."+c.modifiedDate+"-"+this.ui.hashValue(c.etag)+(0<k.length?"-errors-"+k:""),"user-"+(null!=this.user?this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync"))}catch(R){}}else if(a.saveLevel=null,d(c,q),null!=E){this.executeRequest({url:"/files/"+E.id+"/revisions/"+
+E.headRevisionId+"?supportsAllDrives=true"},mxUtils.bind(this,mxUtils.bind(this,function(a){a.pinned=!0;this.executeRequest({url:"/files/"+E.id+"/revisions/"+E.headRevisionId,method:"PUT",params:a})})));try{EditorUi.logEvent({category:a.convertedFrom+"-CONVERT-FILE-"+a.getHash(),action:"from_"+E.id+"."+E.headRevisionId+"-to_"+a.desc.id+"."+a.desc.headRevisionId,label:null!=this.user?"user_"+this.user.id:"nouser"+(null!=a.sync?"-client_"+a.sync.clientId:"nosync")})}catch(R){}}}}catch(R){t(R)}}),G=
mxUtils.bind(this,function(d,m){a.saveLevel=4;try{null!=k&&(B.properties=k);var l=e||a.constructor!=DriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?null:a.getCurrentEtag(),n=mxUtils.bind(this,function(e){a.saveLevel=5;try{var f=a.desc.mimeType!=this.xmlMimeType&&a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType,k=!0,n=null;try{n=window.setTimeout(mxUtils.bind(this,function(){k=!1;g({code:App.ERROR_TIMEOUT})}),5*this.ui.timeout)}catch(W){}this.executeRequest(this.createUploadRequest(a.getId(),
B,d,b||e||f,m,e?null:l,z),mxUtils.bind(this,function(a){window.clearTimeout(n);k&&C(a)}),mxUtils.bind(this,function(b){window.clearTimeout(n);if(k){a.saveLevel=6;try{a.isConflict(b)?this.executeRequest({url:"/files/"+a.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(d){a.saveLevel=7;try{if(null!=d&&d.etag==l)if(c<this.staleEtagMaxRetries){c++;var e=2*c*this.coolOff*(1+.1*(Math.random()-.5));window.setTimeout(p,e);"1"==urlParams.test&&EditorUi.debug("DriveClient: Stale Etag Detected",
"retry",c,"delay",e)}else{p(!0);try{EditorUi.logEvent({category:"STALE-ETAG-SAVE-FILE-"+a.getHash(),action:"rev_"+a.desc.headRevisionId+"-mod_"+a.desc.modifiedDate+"-size_"+a.getSize()+"-mime_"+a.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(a.isAutosave()?"":"-noauto")+(a.changeListenerEnabled?"":"-nolisten")+(a.inConflictState?"-conflict":"")+(a.invalidChecksum?"-invalid":""),label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=a.sync?"-client_"+a.sync.clientId:"-nosync")})}catch(O){}}else"1"==
urlParams.test&&d.headRevisionId==x&&EditorUi.debug("DriveClient: Remote Etag Changed","local",l,"remote",d.etag,"rev",a.desc.headRevisionId,"response",[d],"file",[a]),g(b,d)}catch(O){t(O)}}),mxUtils.bind(this,function(){g(b)})):g(b)}catch(ja){t(ja)}}}))}catch(W){t(W)}}),p=mxUtils.bind(this,function(b){a.saveLevel=9;if(b||null==l)n(b);else{var c=!0,d=null;try{d=window.setTimeout(mxUtils.bind(this,function(){c=!1;g({code:App.ERROR_TIMEOUT})}),3*this.ui.timeout)}catch(X){}this.executeRequest({url:"/files/"+
-a.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(e){window.clearTimeout(d);if(c){a.saveLevel=10;try{null!=e&&e.headRevisionId==x?("1"==urlParams.test&&l!=e.etag&&EditorUi.debug("DriveClient: Preflight Etag Update","from",l,"to",e.etag,"rev",a.desc.headRevisionId,"response",[e],"file",[a]),l=e.etag,n(b)):g({error:{code:412}},e)}catch(W){t(W)}}}),mxUtils.bind(this,function(b){window.clearTimeout(d);c&&(a.saveLevel=11,g(b))}))}});if(A&&null==f){a.saveLevel=8;
-var q=new Image;q.onload=mxUtils.bind(this,function(){try{var a=this.thumbnailWidth/q.width,b=document.createElement("canvas");b.width=this.thumbnailWidth;b.height=Math.floor(q.height*a);b.getContext("2d").drawImage(q,0,0,b.width,b.height);var c=b.toDataURL(),c=c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");B.thumbnail={image:c,mimeType:"image/png"};p(!1)}catch(X){try{p(!1)}catch(W){t(W)}}});q.src="data:image/png;base64,"+d}else p(!1)}catch(Y){t(Y)}});if(A){var F=this.ui.getPngFileProperties(this.ui.fileNode);
-this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){H(a,!0)}),g,this.ui.getCurrentFile()!=a?q:null,F.scale,F.border)}else H(q,!1)}catch(N){t(N)}});try{a.saveLevel=2,(n||A||a.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=B.mimeType&&"application/vnd.jgraph.mxfile"!=B.mimeType.substring(0,29)||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){try{var b=null;try{null!=a&&(b=a.toDataURL("image/png")),null!=b&&(b=b.length>this.maxThumbnailSize?null:
-b.substring(b.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_"))}catch(F){b=null}H(b,"image/png")}catch(F){t(F)}})))&&H(null,null,a.constructor!=DriveLibrary)}catch(D){t(D)}}else this.ui.editor.graph.reset(),g({message:mxResources.get("readOnly")})}catch(D){t(D)}};DriveClient.prototype.insertFile=function(a,b,d,f,m,n,e){n=null!=n?n:this.xmlMimeType;a={mimeType:n,title:a};null!=d&&(a.parents=[{kind:"drive#fileLink",id:d}]);this.executeRequest(this.createUploadRequest(null,a,b,!1,e),mxUtils.bind(this,
+a.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(e){window.clearTimeout(d);if(c){a.saveLevel=10;try{null!=e&&e.headRevisionId==x?("1"==urlParams.test&&l!=e.etag&&EditorUi.debug("DriveClient: Preflight Etag Update","from",l,"to",e.etag,"rev",a.desc.headRevisionId,"response",[e],"file",[a]),l=e.etag,n(b)):g({error:{code:412}},e)}catch(W){t(W)}}}),mxUtils.bind(this,function(b){window.clearTimeout(d);c&&(a.saveLevel=11,g(b))}))}});if(y&&null==f){a.saveLevel=8;
+var q=new Image;q.onload=mxUtils.bind(this,function(){try{var a=this.thumbnailWidth/q.width,b=document.createElement("canvas");b.width=this.thumbnailWidth;b.height=Math.floor(q.height*a);b.getContext("2d").drawImage(q,0,0,b.width,b.height);var c=b.toDataURL(),c=c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");B.thumbnail={image:c,mimeType:"image/png"};p(!1)}catch(X){try{p(!1)}catch(W){t(W)}}});q.src="data:image/png;base64,"+d}else p(!1)}catch(Y){t(Y)}});if(y){var D=this.ui.getPngFileProperties(this.ui.fileNode);
+this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){G(a,!0)}),g,this.ui.getCurrentFile()!=a?q:null,D.scale,D.border)}else G(q,!1)}catch(N){t(N)}});try{a.saveLevel=2,(n||y||a.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=B.mimeType&&"application/vnd.jgraph.mxfile"!=B.mimeType.substring(0,29)||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){try{var b=null;try{null!=a&&(b=a.toDataURL("image/png")),null!=b&&(b=b.length>this.maxThumbnailSize?null:
+b.substring(b.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_"))}catch(F){b=null}G(b,"image/png")}catch(F){t(F)}})))&&G(null,null,a.constructor!=DriveLibrary)}catch(D){t(D)}}else this.ui.editor.graph.reset(),g({message:mxResources.get("readOnly")})}catch(D){t(D)}};DriveClient.prototype.insertFile=function(a,b,d,f,m,n,e){n=null!=n?n:this.xmlMimeType;a={mimeType:n,title:a};null!=d&&(a.parents=[{kind:"drive#fileLink",id:d}]);this.executeRequest(this.createUploadRequest(null,a,b,!1,e),mxUtils.bind(this,
function(a){n==this.libraryMimeType?f(new DriveLibrary(this.ui,b,a)):0==a?null!=m&&m({message:mxResources.get("errorSavingFile")}):f(new DriveFile(this.ui,b,a))}),m)};DriveClient.prototype.createUploadRequest=function(a,b,d,f,m,n,e){m=null!=m?m:!1;var c={"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'};null!=n&&(c["If-Match"]=n);a={fullUrl:"https://content.googleapis.com/upload/drive/v2/files"+(null!=a?"/"+a:"")+"?uploadType=multipart&supportsAllDrives=true&enforceSingleParent=true&fields="+
this.allFields,method:null!=a?"PUT":"POST",headers:c,params:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+JSON.stringify(b)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+(null!=d?m?d:!window.btoa||mxClient.IS_IE||mxClient.IS_IE11?Base64.encode(d):Graph.base64EncodeUnicode(d):"")+"\r\n---------314159265358979323846--"};f||(a.fullUrl+="&newRevision=false");e&&(a.fullUrl+="&pinned=true");return a};
DriveClient.prototype.createLinkPicker=function(){var c=d.linkPicker;if(null==c||d.linkPickerToken!=a){d.linkPickerToken=a;var c=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),b=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),g=(new google.picker.DocsView).setIncludeFolders(!0).setEnableDrives(!0).setSelectFolderEnabled(!0),c=(new google.picker.PickerBuilder).setAppId(this.appId).setLocale(mxLanguage).setOAuthToken(d.linkPickerToken).enableFeature(google.picker.Feature.SUPPORT_DRIVES).addView(c).addView(b).addView(g).addView(google.picker.ViewId.RECENTLY_PICKED)}return c};
@@ -10969,32 +10974,28 @@ a.rev+"&chrome=0&nav=1&layers=1&edit=_blank"+(null!=b?"&page="+b:""))+window.loc
DropboxFile.prototype.doSave=function(a,d,c,b,g,f){var m=this.stat.name;this.stat.name=a;DrawioFile.prototype.save.apply(this,[null,mxUtils.bind(this,function(){this.stat.name=m;this.saveFile(a,d,c,b,g,f)}),b,g,f])};
DropboxFile.prototype.saveFile=function(a,d,c,b){this.isEditable()?this.savingFile?null!=b&&b({code:App.ERROR_BUSY}):(d=mxUtils.bind(this,function(d){if(d)try{this.savingFileTime=new Date;this.setShadowModified(!1);this.savingFile=!0;var f=mxUtils.bind(this,function(d){var e=this.stat.path_display.lastIndexOf("/"),e=1<e?this.stat.path_display.substring(1,e+1):null;this.ui.dropbox.saveFile(a,d,mxUtils.bind(this,function(a){this.setModified(this.getShadowModified());this.savingFile=!1;this.stat=a;this.contentChanged();
null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=!1;null!=b&&b(a)}),e)});if(this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle())){var g=this.ui.getPngFileProperties(this.ui.fileNode);this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){f(this.ui.base64ToBlob(a,"image/png"))}),b,this.ui.getCurrentFile()!=this?this.getData():null,g.scale,g.border)}else f(this.getData())}catch(n){if(this.savingFile=!1,null!=b)b(n);else throw n;}else null!=b&&b()}),this.getTitle()==a?d(!0):this.ui.dropbox.checkExists(a,
-d)):null!=c&&c()};DropboxFile.prototype.rename=function(a,d,c){this.ui.dropbox.renameFile(this,a,mxUtils.bind(this,function(b){this.hasSameExtension(a,this.getTitle())?(this.stat=b,this.descriptorChanged(),null!=d&&d()):(this.stat=b,this.descriptorChanged(),this.save(!0,d,c))}),c)};DropboxLibrary=function(a,d,c){DropboxFile.call(this,a,d,c)};mxUtils.extend(DropboxLibrary,DropboxFile);DropboxLibrary.prototype.isAutosave=function(){return!0};DropboxLibrary.prototype.doSave=function(a,d,c){this.saveFile(a,!1,d,c)};DropboxLibrary.prototype.open=function(){};DropboxClient=function(a){DrawioClient.call(this,a,"dbauth");this.client=new Dropbox({clientId:App.DROPBOX_APPKEY});this.client.setAccessToken(this.token)};mxUtils.extend(DropboxClient,DrawioClient);DropboxClient.prototype.appPath="/drawio/";DropboxClient.prototype.extension=".drawio";DropboxClient.prototype.writingFile=!1;DropboxClient.prototype.maxRetries=4;
-DropboxClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null;this.client.authTokenRevoke().then(mxUtils.bind(this,function(){this.client.setAccessToken(null)}))};
-DropboxClient.prototype.updateUser=function(a,d,c){var b=!0,g=window.setTimeout(mxUtils.bind(this,function(){b=!1;d({code:App.ERROR_TIMEOUT})}),this.ui.timeout),f=this.client.usersGetCurrentAccount();f.then(mxUtils.bind(this,function(c){window.clearTimeout(g);b&&(this.setUser(new DrawioUser(c.account_id,c.email,c.name.display_name)),a())}));f["catch"](mxUtils.bind(this,function(f){window.clearTimeout(g);b&&(null==f||401!==f.status||c?d({message:mxResources.get("accessDenied")}):(this.setUser(null),
-this.client.setAccessToken(null),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,d,!0)}),d)))}))};
-DropboxClient.prototype.authenticate=function(a,d){if(null==window.onDropboxCallback){var c=mxUtils.bind(this,function(){var b=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(g,f){null!=window.open(this.client.getAuthenticationUrl("https://"+window.location.host+"/dropbox.html"),"dbauth")?window.onDropboxCallback=mxUtils.bind(this,function(m,n){if(b){window.onDropboxCallback=null;b=!1;try{null==m?d({message:mxResources.get("accessDenied"),retry:c}):(null!=f&&f(),this.client.setAccessToken(m),
-this.setUser(null),g&&this.setPersistentToken(m),a())}catch(e){d(e)}finally{null!=n&&n.close()}}else null!=n&&n.close()}):d({message:mxResources.get("serviceUnavailableOrBlocked"),retry:c})}),mxUtils.bind(this,function(){b&&(window.onDropboxCallback=null,b=!1,d({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else d({code:App.ERROR_BUSY})};
-DropboxClient.prototype.executePromise=function(a,d,c){var b=mxUtils.bind(this,function(f){var m=!0,n=window.setTimeout(mxUtils.bind(this,function(){m=!1;c({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout);a.then(mxUtils.bind(this,function(a){window.clearTimeout(n);m&&null!=d&&d(a)}));a["catch"](mxUtils.bind(this,function(a){window.clearTimeout(n);m&&(null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.setUser(null),this.client.setAccessToken(null),
-f?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)},c)})}):this.authenticate(function(){b(!0)},c)))}))}),g=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){g(!0)},c,a):b(a)});null===this.client.getAccessToken()?this.authenticate(function(){g(!0)},c):g(!1)};DropboxClient.prototype.getLibrary=function(a,d,c){this.getFile(a,d,c,!0)};
-DropboxClient.prototype.getFile=function(a,d,c,b){b=null!=b?b:!1;var g=/\.png$/i.test(a);if(/^https:\/\//i.test(a)||/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||/\.pdf$/i.test(a)||!this.ui.useCanvasForExport&&g){var f=mxUtils.bind(this,function(){var b=a.split("/");this.ui.convertFile(a,0<b.length?b[b.length-1]:a,null,this.extension,d,c)});null!=this.token?f():this.authenticate(f,c)}else f={path:"/"+a},null!=urlParams.rev&&(f.rev=urlParams.rev),this.readFile(f,mxUtils.bind(this,function(c,f){var e=
-null;if(0<(g?c.lastIndexOf(","):-1)){var k=this.ui.extractGraphModelFromPng(c);null!=k&&0<k.length?c=k:e=new LocalFile(this,c,a,!0)}d(null!=e?e:b?new DropboxLibrary(this.ui,c,f):new DropboxFile(this.ui,c,f))}),c,g)};
-DropboxClient.prototype.readFile=function(a,d,c,b){var g=mxUtils.bind(this,function(m){var n=!0,e=window.setTimeout(mxUtils.bind(this,function(){n=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),k=this.client.filesGetMetadata({path:"/"+a.path.substring(1),include_deleted:!1});k.then(mxUtils.bind(this,function(a){}));k["catch"](function(a){window.clearTimeout(e);n&&null!=a&&409==a.status&&(n=!1,c({message:mxResources.get("fileNotFound")}))});k=this.client.filesDownload(a);k.then(mxUtils.bind(this,
-function(a){window.clearTimeout(e);if(n){n=!1;try{var f=new FileReader;f.onload=mxUtils.bind(this,function(b){d(f.result,a)});b?f.readAsDataURL(a.fileBlob):f.readAsText(a.fileBlob)}catch(q){c(q)}}}));k["catch"](mxUtils.bind(this,function(a){window.clearTimeout(e);n&&(n=!1,null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.client.setAccessToken(null),this.setUser(null),m?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){f(!0)},
-c)})}):this.authenticate(function(){g(!0)},c)))}))}),f=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){f(!0)},c,a):g(a)});null===this.client.getAccessToken()?this.authenticate(function(){f(!0)},c):f(!1)};
-DropboxClient.prototype.checkExists=function(a,d,c){var b=this.client.filesGetMetadata({path:"/"+a.toLowerCase(),include_deleted:!1});this.executePromise(b,mxUtils.bind(this,function(b){c?d(!1,!0,b):this.ui.confirm(mxResources.get("replaceIt",[a]),function(){d(!0,!0,b)},function(){d(!1,!0,b)})}),function(a){d(!0,!1)})};
-DropboxClient.prototype.renameFile=function(a,d,c,b){if(/[\\\/:\?\*"\|]/.test(d))b({message:mxResources.get("dropboxCharsNotAllowed")});else{if(null!=a&&null!=d){var g=a.stat.path_display.substring(1),f=g.lastIndexOf("/");0<f&&(d=g.substring(0,f+1)+d)}null!=a&&null!=d&&a.stat.path_lower.substring(1)!==d.toLowerCase()?this.checkExists(d,mxUtils.bind(this,function(f,g,e){f?(f=mxUtils.bind(this,function(e){e=this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+d,autorename:!1});this.executePromise(e,
-c,b)}),g&&e.path_lower.substring(1)!==d.toLowerCase()?(g=this.client.filesDelete({path:"/"+d.toLowerCase()}),this.executePromise(g,f,b)):f()):b()})):b({message:mxResources.get("invalidName")})}};DropboxClient.prototype.insertLibrary=function(a,d,c,b){this.insertFile(a,d,c,b,!0)};
-DropboxClient.prototype.insertFile=function(a,d,c,b,g){g=null!=g?g:!1;this.checkExists(a,mxUtils.bind(this,function(f){f?this.saveFile(a,d,mxUtils.bind(this,function(a){g?c(new DropboxLibrary(this.ui,d,a)):c(new DropboxFile(this.ui,d,a))}),b):b()}))};
-DropboxClient.prototype.saveFile=function(a,d,c,b,g){/[\\\/:\?\*"\|]/.test(a)?b({message:mxResources.get("dropboxCharsNotAllowed")}):15E7<=d.length?b({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(d.length)+" / 150 MB)"}):(a=this.client.filesUpload({path:"/"+(null!=g?g:"")+a,mode:{".tag":"overwrite"},mute:!0,contents:new Blob([d],{type:"text/plain"})}),this.executePromise(a,c,b))};
-DropboxClient.prototype.pickLibrary=function(a){Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(d){if(this.ui.spinner.spin(document.body,mxResources.get("loading"))){var c=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),b=d[0].link.indexOf(this.appPath);if(0<b){var g=decodeURIComponent(d[0].link.substring(b+this.appPath.length-1));this.readFile({path:g},mxUtils.bind(this,function(b,m){if(null!=m&&m.id==d[0].id)try{this.ui.spinner.stop(),
-a(g.substring(1),new DropboxLibrary(this.ui,b,m))}catch(n){this.ui.handleError(n)}else this.createLibrary(d[0],a,c)}),c)}else this.createLibrary(d[0],a,c)}})})};
-DropboxClient.prototype.createLibrary=function(a,d,c){this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){this.ui.editor.loadUrl(a.link,mxUtils.bind(this,function(b){this.insertFile(a.name,b,mxUtils.bind(this,function(a){try{this.ui.spinner.stop(),d(a.getHash().substring(1),a)}catch(f){c(f)}}),c,!0)}),c)}),mxUtils.bind(this,function(){this.ui.spinner.stop()}))};
-DropboxClient.prototype.pickFile=function(a,d){null!=Dropbox.choose?(a=null!=a?a:mxUtils.bind(this,function(a,b){this.ui.loadFile(null!=a?"D"+encodeURIComponent(a):b.getHash(),null,b)}),Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(c){if(this.ui.spinner.spin(document.body,mxResources.get("loading")))if(d)this.ui.spinner.stop(),a(c[0].link);else{var b=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),g=mxUtils.bind(this,
-function(b,c){this.ui.spinner.stop();a(b,c)}),f=/\.png$/i.test(c[0].name);if(/\.vsdx$/i.test(c[0].name)||/\.gliffy$/i.test(c[0].name)||!this.ui.useCanvasForExport&&f)g(c[0].link);else{var m=c[0].link.indexOf(this.appPath);if(0<m){var n=decodeURIComponent(c[0].link.substring(m+this.appPath.length-1));this.readFile({path:n},mxUtils.bind(this,function(d,k){if(null!=k&&k.id==c[0].id){var e=f?d.lastIndexOf(","):-1;this.ui.spinner.stop();var m=null;0<e&&(e=this.ui.extractGraphModelFromPng(d),null!=e&&0<
-e.length?d=e:m=new LocalFile(this,d,n,!0));a(n.substring(1),null!=m?m:new DropboxFile(this.ui,d,k))}else this.createFile(c[0],g,b)}),b,f)}else this.createFile(c[0],g,b)}}})})):this.ui.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})};
-DropboxClient.prototype.createFile=function(a,d,c){var b=/(\.png)$/i.test(a.name);this.ui.editor.loadUrl(a.link,mxUtils.bind(this,function(g){null!=g&&0<g.length?this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){var f=b?g.lastIndexOf(","):-1;0<f&&(f=this.ui.extractGraphModelFromPng(g.substring(f+1)),null!=f&&0<f.length&&(g=f));this.insertFile(a.name,g,mxUtils.bind(this,function(b){d(a.name,b)}),c)}),mxUtils.bind(this,function(){this.ui.spinner.stop()})):
-(this.ui.spinner.stop(),c({message:mxResources.get("errorLoadingFile")}))}),c,b)};OneDriveFile=function(a,d,c){DrawioFile.call(this,a,d);this.meta=c};mxUtils.extend(OneDriveFile,DrawioFile);OneDriveFile.prototype.autosaveDelay=300;
+d)):null!=c&&c()};DropboxFile.prototype.rename=function(a,d,c){this.ui.dropbox.renameFile(this,a,mxUtils.bind(this,function(b){this.hasSameExtension(a,this.getTitle())?(this.stat=b,this.descriptorChanged(),null!=d&&d()):(this.stat=b,this.descriptorChanged(),this.save(!0,d,c))}),c)};DropboxLibrary=function(a,d,c){DropboxFile.call(this,a,d,c)};mxUtils.extend(DropboxLibrary,DropboxFile);DropboxLibrary.prototype.isAutosave=function(){return!0};DropboxLibrary.prototype.doSave=function(a,d,c){this.saveFile(a,!1,d,c)};DropboxLibrary.prototype.open=function(){};(function(){var a=null;window.DropboxClient=function(a){DrawioClient.call(this,a,"dbauth");this.client=new Dropbox({clientId:this.clientId})};mxUtils.extend(DropboxClient,DrawioClient);DropboxClient.prototype.appPath="/drawio/";DropboxClient.prototype.extension=".drawio";DropboxClient.prototype.writingFile=!1;DropboxClient.prototype.maxRetries=4;DropboxClient.prototype.clientId=window.DRAWIO_DROPBOX_ID;DropboxClient.prototype.redirectUri=window.location.protocol+"//"+window.location.host+"/dropbox";
+DropboxClient.prototype.logout=function(){this.ui.editor.loadUrl(this.redirectUri+"?doLogout=1&state="+encodeURIComponent("cId="+this.clientId+"&domain="+window.location.hostname));this.clearPersistentToken();this.setUser(null);a=null;this.client.authTokenRevoke().then(mxUtils.bind(this,function(){this.client.setAccessToken(null)}))};DropboxClient.prototype.updateUser=function(d,c,b){var g=!0,f=window.setTimeout(mxUtils.bind(this,function(){g=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),m=this.client.usersGetCurrentAccount();
+m.then(mxUtils.bind(this,function(a){window.clearTimeout(f);g&&(this.setUser(new DrawioUser(a.account_id,a.email,a.name.display_name)),d())}));m["catch"](mxUtils.bind(this,function(m){window.clearTimeout(f);g&&(null==m||401!==m.status||b?c({message:mxResources.get("accessDenied")}):(this.setUser(null),this.client.setAccessToken(null),a=null,this.authenticate(mxUtils.bind(this,function(){this.updateUser(d,c,!0)}),c)))}))};DropboxClient.prototype.authenticate=function(a,c){(new mxXmlRequest(this.redirectUri+
+"?getState=1",null,"GET")).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?this.authenticateStep2(b.getText(),a,c):null!=c&&c(b)}),c)};DropboxClient.prototype.authenticateStep2=function(d,c,b){if(null==window.onDropboxCallback){var g=mxUtils.bind(this,function(){var f=!0;null!=this.getPersistentToken(!0)?(new mxXmlRequest(this.redirectUri+"?state="+encodeURIComponent("cId="+this.clientId+"&domain="+window.location.hostname+"&token="+d),null,"GET")).send(mxUtils.bind(this,
+function(d){200<=d.getStatus()&&299>=d.getStatus()?(a=JSON.parse(d.getText()).access_token,this.client.setAccessToken(a),this.setUser(null),c()):(this.clearPersistentToken(),this.setUser(null),a=null,this.client.setAccessToken(null),401==d.getStatus()?g():b({message:mxResources.get("accessDenied"),retry:g}))}),b):this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(m,n){null!=window.open("https://www.dropbox.com/oauth2/authorize?client_id="+this.clientId+(m?"&token_access_type=offline":"")+"&redirect_uri="+
+encodeURIComponent(this.redirectUri)+"&response_type=code&state="+encodeURIComponent("cId="+this.clientId+"&domain="+window.location.hostname+"&token="+d),"dbauth")?window.onDropboxCallback=mxUtils.bind(this,function(d,k){if(f){window.onDropboxCallback=null;f=!1;try{null==d?b({message:mxResources.get("accessDenied"),retry:g}):(null!=n&&n(),a=d.access_token,this.client.setAccessToken(a),this.setUser(null),m&&this.setPersistentToken("remembered"),c())}catch(l){b(l)}finally{null!=k&&k.close()}}else null!=
+k&&k.close()}):b({message:mxResources.get("serviceUnavailableOrBlocked"),retry:g})}),mxUtils.bind(this,function(){f&&(window.onDropboxCallback=null,f=!1,b({message:mxResources.get("accessDenied"),retry:g}))}))});g()}else b({code:App.ERROR_BUSY})};DropboxClient.prototype.executePromise=function(d,c,b){var g=mxUtils.bind(this,function(m){var n=!0,e=window.setTimeout(mxUtils.bind(this,function(){n=!1;b({code:App.ERROR_TIMEOUT,retry:f})}),this.ui.timeout),k=d();k.then(mxUtils.bind(this,function(a){window.clearTimeout(e);
+n&&null!=c&&c(a)}));k["catch"](mxUtils.bind(this,function(c){window.clearTimeout(e);n&&(null==c||500!=c.status&&400!=c.status&&401!=c.status?b({message:mxResources.get("error")+" "+c.status}):(this.setUser(null),this.client.setAccessToken(null),a=null,m?b({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){f(!0)},b)})}):this.authenticate(function(){g(!0)},b)))}))}),f=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){f(!0)},
+b,a):g(a)});null==a?this.authenticate(function(){f(!0)},b):f(!1)};DropboxClient.prototype.getLibrary=function(a,c,b){this.getFile(a,c,b,!0)};DropboxClient.prototype.getFile=function(d,c,b,g){g=null!=g?g:!1;var f=/\.png$/i.test(d);if(/^https:\/\//i.test(d)||/\.v(dx|sdx?)$/i.test(d)||/\.gliffy$/i.test(d)||/\.pdf$/i.test(d)||!this.ui.useCanvasForExport&&f){var m=mxUtils.bind(this,function(){var a=d.split("/");this.ui.convertFile(d,0<a.length?a[a.length-1]:d,null,this.extension,c,b)});null!=a?m():this.authenticate(m,
+b)}else m={path:"/"+d},null!=urlParams.rev&&(m.rev=urlParams.rev),this.readFile(m,mxUtils.bind(this,function(a,b){var e=null;if(0<(f?a.lastIndexOf(","):-1)){var m=this.ui.extractGraphModelFromPng(a);null!=m&&0<m.length?a=m:e=new LocalFile(this,a,d,!0)}c(null!=e?e:g?new DropboxLibrary(this.ui,a,b):new DropboxFile(this.ui,a,b))}),b,f)};DropboxClient.prototype.readFile=function(d,c,b,g){var f=mxUtils.bind(this,function(n){var e=!0,k=window.setTimeout(mxUtils.bind(this,function(){e=!1;b({code:App.ERROR_TIMEOUT})}),
+this.ui.timeout),l=this.client.filesGetMetadata({path:"/"+d.path.substring(1),include_deleted:!1});l.then(mxUtils.bind(this,function(a){}));l["catch"](function(a){window.clearTimeout(k);e&&null!=a&&409==a.status&&(e=!1,b({message:mxResources.get("fileNotFound")}))});l=this.client.filesDownload(d);l.then(mxUtils.bind(this,function(a){window.clearTimeout(k);if(e){e=!1;try{var d=new FileReader;d.onload=mxUtils.bind(this,function(b){c(d.result,a)});g?d.readAsDataURL(a.fileBlob):d.readAsText(a.fileBlob)}catch(t){b(t)}}}));
+l["catch"](mxUtils.bind(this,function(c){window.clearTimeout(k);e&&(e=!1,null==c||500!=c.status&&400!=c.status&&401!=c.status?b({message:mxResources.get("error")+" "+c.status}):(this.client.setAccessToken(null),this.setUser(null),a=null,n?b({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){m(!0)},b)})}):this.authenticate(function(){f(!0)},b)))}))}),m=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){m(!0)},b,a):f(a)});null==
+a?this.authenticate(function(){m(!0)},b):m(!1)};DropboxClient.prototype.checkExists=function(a,c,b){var d=mxUtils.bind(this,function(){return this.client.filesGetMetadata({path:"/"+a.toLowerCase(),include_deleted:!1})});this.executePromise(d,mxUtils.bind(this,function(d){b?c(!1,!0,d):this.ui.confirm(mxResources.get("replaceIt",[a]),function(){c(!0,!0,d)},function(){c(!1,!0,d)})}),function(a){c(!0,!1)})};DropboxClient.prototype.renameFile=function(a,c,b,g){if(/[\\\/:\?\*"\|]/.test(c))g({message:mxResources.get("dropboxCharsNotAllowed")});
+else{if(null!=a&&null!=c){var d=a.stat.path_display.substring(1),m=d.lastIndexOf("/");0<m&&(c=d.substring(0,m+1)+c)}null!=a&&null!=c&&a.stat.path_lower.substring(1)!==c.toLowerCase()?this.checkExists(c,mxUtils.bind(this,function(d,e,f){d?(d=mxUtils.bind(this,function(d){d=mxUtils.bind(this,function(){return this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+c,autorename:!1})});this.executePromise(d,b,g)}),e&&f.path_lower.substring(1)!==c.toLowerCase()?(e=mxUtils.bind(this,function(){return this.client.filesDelete({path:"/"+
+c.toLowerCase()})}),this.executePromise(e,d,g)):d()):g()})):g({message:mxResources.get("invalidName")})}};DropboxClient.prototype.insertLibrary=function(a,c,b,g){this.insertFile(a,c,b,g,!0)};DropboxClient.prototype.insertFile=function(a,c,b,g,f){f=null!=f?f:!1;this.checkExists(a,mxUtils.bind(this,function(d){d?this.saveFile(a,c,mxUtils.bind(this,function(a){f?b(new DropboxLibrary(this.ui,c,a)):b(new DropboxFile(this.ui,c,a))}),g):g()}))};DropboxClient.prototype.saveFile=function(a,c,b,g,f){if(/[\\\/:\?\*"\|]/.test(a))g({message:mxResources.get("dropboxCharsNotAllowed")});
+else if(15E7<=c.length)g({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(c.length)+" / 150 MB)"});else{f=null!=f?f:"";var d=mxUtils.bind(this,function(){return this.client.filesUpload({path:"/"+f+a,mode:{".tag":"overwrite"},mute:!0,contents:new Blob([c],{type:"text/plain"})})});this.executePromise(d,b,g)}};DropboxClient.prototype.pickLibrary=function(a){Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(c){if(this.ui.spinner.spin(document.body,
+mxResources.get("loading"))){var b=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),d=c[0].link.indexOf(this.appPath);if(0<d){var f=decodeURIComponent(c[0].link.substring(d+this.appPath.length-1));this.readFile({path:f},mxUtils.bind(this,function(d,g){if(null!=g&&g.id==c[0].id)try{this.ui.spinner.stop(),a(f.substring(1),new DropboxLibrary(this.ui,d,g))}catch(e){this.ui.handleError(e)}else this.createLibrary(c[0],a,b)}),b)}else this.createLibrary(c[0],a,b)}})})};DropboxClient.prototype.createLibrary=
+function(a,c,b){this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){this.ui.editor.loadUrl(a.link,mxUtils.bind(this,function(d){this.insertFile(a.name,d,mxUtils.bind(this,function(a){try{this.ui.spinner.stop(),c(a.getHash().substring(1),a)}catch(m){b(m)}}),b,!0)}),b)}),mxUtils.bind(this,function(){this.ui.spinner.stop()}))};DropboxClient.prototype.pickFile=function(a,c){null!=Dropbox.choose?(a=null!=a?a:mxUtils.bind(this,
+function(a,c){this.ui.loadFile(null!=a?"D"+encodeURIComponent(a):c.getHash(),null,c)}),Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(b){if(this.ui.spinner.spin(document.body,mxResources.get("loading")))if(c)this.ui.spinner.stop(),a(b[0].link);else{var d=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),f=mxUtils.bind(this,function(b,c){this.ui.spinner.stop();a(b,c)}),m=/\.png$/i.test(b[0].name);if(/\.vsdx$/i.test(b[0].name)||
+/\.gliffy$/i.test(b[0].name)||!this.ui.useCanvasForExport&&m)f(b[0].link);else{var n=b[0].link.indexOf(this.appPath);if(0<n){var e=decodeURIComponent(b[0].link.substring(n+this.appPath.length-1));this.readFile({path:e},mxUtils.bind(this,function(c,g){if(null!=g&&g.id==b[0].id){var k=m?c.lastIndexOf(","):-1;this.ui.spinner.stop();var l=null;0<k&&(k=this.ui.extractGraphModelFromPng(c),null!=k&&0<k.length?c=k:l=new LocalFile(this,c,e,!0));a(e.substring(1),null!=l?l:new DropboxFile(this.ui,c,g))}else this.createFile(b[0],
+f,d)}),d,m)}else this.createFile(b[0],f,d)}}})})):this.ui.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})};DropboxClient.prototype.createFile=function(a,c,b){var d=/(\.png)$/i.test(a.name);this.ui.editor.loadUrl(a.link,mxUtils.bind(this,function(f){null!=f&&0<f.length?this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){var g=d?f.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(f.substring(g+
+1)),null!=g&&0<g.length&&(f=g));this.insertFile(a.name,f,mxUtils.bind(this,function(b){c(a.name,b)}),b)}),mxUtils.bind(this,function(){this.ui.spinner.stop()})):(this.ui.spinner.stop(),b({message:mxResources.get("errorLoadingFile")}))}),b,d)}})();OneDriveFile=function(a,d,c){DrawioFile.call(this,a,d);this.meta=c};mxUtils.extend(OneDriveFile,DrawioFile);OneDriveFile.prototype.autosaveDelay=300;
OneDriveFile.prototype.share=function(){var a=this.meta.webUrl,a=a.substring(0,a.lastIndexOf("/"));if(null!=this.meta.parentReference)try{if("personal"==this.meta.parentReference.driveType)a="https://onedrive.live.com/?cid="+encodeURIComponent(this.meta.parentReference.driveId)+"&id="+encodeURIComponent(this.meta.id);else if("documentLibrary"==this.meta.parentReference.driveType)var d=this.meta.parentReference.path,d=d.substring(d.indexOf("/root:")+6),c=this.meta.webUrl,a=c.substring(0,c.length-d.length-
this.meta.name.length-(0<d.length?1:0)),c=c.substring(c.indexOf("/",8)),a=a+"/Forms/AllItems.aspx?id="+c+"&parent="+c.substring(0,c.lastIndexOf("/"));else if("business"==this.meta.parentReference.driveType)var a=this.meta["@microsoft.graph.downloadUrl"],b=a.indexOf("/_layouts/15/download.aspx?"),d=c=this.meta.webUrl,c=c.substring(8),c=c.substring(c.indexOf("/")),d=d.substring(0,d.lastIndexOf("/")),d=d.substring(d.indexOf("/",8)),a=a.substring(0,b)+"/_layouts/15/onedrive.aspx?id="+c+"&parent="+d}catch(g){}this.ui.editor.graph.openLink(a)};
OneDriveFile.prototype.getId=function(){return this.getIdOf(this.meta)};OneDriveFile.prototype.getParentId=function(){return this.getIdOf(this.meta,!0)};OneDriveFile.prototype.getIdOf=function(a,d){return(null!=a.parentReference&&null!=a.parentReference.driveId?a.parentReference.driveId+"/":"")+(null!=d?a.parentReference.id:a.id)};OneDriveFile.prototype.getChannelId=function(){return"W-"+DrawioFile.prototype.getChannelId.apply(this,arguments)};OneDriveFile.prototype.getHash=function(){return"W"+encodeURIComponent(this.getId())};
@@ -11025,7 +11026,7 @@ this.user&&this.updateUser(this.emptyFn,this.emptyFn,!0),c(d)):a||401!==d.getSta
function(a){var c=a.split("/");return 1<c.length?{driveId:c[0],id:c[1]}:{id:a}};OneDriveClient.prototype.getItemURL=function(a,c){var b=a.split("/");if(1<b.length){var d=b[1];return(c?"":this.baseUrl)+"/drives/"+b[0]+("root"==d?"/root":"/items/"+d)}return(c?"":this.baseUrl)+"/me/drive/items/"+a};OneDriveClient.prototype.getLibrary=function(a,c,b){this.getFile(a,c,b,!1,!0)};OneDriveClient.prototype.removeExtraHtmlContent=function(a){var c=a.lastIndexOf('<html><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"><meta name="Robots" ');
0<c&&(a=a.substring(0,c));return a};OneDriveClient.prototype.getFile=function(a,c,b,g,f){f=null!=f?f:!1;this.executeRequest(this.getItemURL(a),mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){var d=JSON.parse(a.getText()),e=/\.png$/i.test(d.name);if(/\.v(dx|sdx?)$/i.test(d.name)||/\.gliffy$/i.test(d.name)||/\.pdf$/i.test(d.name)||!this.ui.useCanvasForExport&&e)this.ui.convertFile(d["@microsoft.graph.downloadUrl"],d.name,null!=d.file?d.file.mimeType:null,this.extension,c,b);
else{var g=!0,m=window.setTimeout(mxUtils.bind(this,function(){g=!1;b({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.ui.editor.loadUrl(d["@microsoft.graph.downloadUrl"],mxUtils.bind(this,function(a){try{if(window.clearTimeout(m),g){/\.html$/i.test(d.name)&&(a=this.removeExtraHtmlContent(a));var k=null;if(0<(e?a.lastIndexOf(","):-1)){var l=this.ui.extractGraphModelFromPng(a);null!=l&&0<l.length?a=l:k=new LocalFile(this.ui,a,d.name,!0)}else if("data:image/png;base64,PG14ZmlsZS"==a.substring(0,32)){var n=
-a.substring(22);a=window.atob&&!mxClient.IS_SF?atob(n):Base64.decode(n)}Graph.fileSupport&&(new XMLHttpRequest).upload&&this.ui.isRemoteFileFormat(a,d["@microsoft.graph.downloadUrl"])?this.ui.parseFile(new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){try{4==a.readyState&&(200<=a.status&&299>=a.status?c(new LocalFile(this.ui,a.responseText,d.name+this.extension,!0)):null!=b&&b({message:mxResources.get("errorLoadingFile")}))}catch(y){if(null!=b)b(y);else throw y;}}),d.name):
+a.substring(22);a=window.atob&&!mxClient.IS_SF?atob(n):Base64.decode(n)}Graph.fileSupport&&(new XMLHttpRequest).upload&&this.ui.isRemoteFileFormat(a,d["@microsoft.graph.downloadUrl"])?this.ui.parseFile(new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){try{4==a.readyState&&(200<=a.status&&299>=a.status?c(new LocalFile(this.ui,a.responseText,d.name+this.extension,!0)):null!=b&&b({message:mxResources.get("errorLoadingFile")}))}catch(A){if(null!=b)b(A);else throw A;}}),d.name):
null!=k?c(k):f?c(new OneDriveLibrary(this.ui,a,d)):c(new OneDriveFile(this.ui,a,d))}}catch(v){if(null!=b)b(v);else throw v;}}),mxUtils.bind(this,function(a){window.clearTimeout(m);g&&b(this.parseRequestText(a))}),e||null!=d.file&&null!=d.file.mimeType&&("image/"==d.file.mimeType.substring(0,6)||"application/pdf"==d.file.mimeType))}}else b(this.parseRequestText(a))}),b)};OneDriveClient.prototype.renameFile=function(a,c,b,g){null!=a&&null!=c&&(this.isValidFilename(c)?this.checkExists(a.getParentId(),
c,!1,mxUtils.bind(this,function(d){d?this.writeFile(this.getItemURL(a.getId()),JSON.stringify({name:c}),"PATCH","application/json",b,g):g()})):g({message:this.invalidFilenameRegExs[0].test(c)?mxResources.get("oneDriveCharsNotAllowed"):mxResources.get("oneDriveInvalidDeviceName")}))};OneDriveClient.prototype.moveFile=function(a,c,b,g){c=this.getItemRef(c);var d=this.getItemRef(a);c.driveId!=d.driveId?g({message:mxResources.get("cannotMoveOneDrive",null,"Moving a file between accounts is not supported yet.")}):
this.writeFile(this.getItemURL(a),JSON.stringify({parentReference:c}),"PATCH","application/json",b,g)};OneDriveClient.prototype.insertLibrary=function(a,c,b,g,f){this.insertFile(a,c,b,g,!0,f)};OneDriveClient.prototype.insertFile=function(a,c,b,g,f,m){this.isValidFilename(a)?(f=null!=f?f:!1,this.checkExists(m,a,!0,mxUtils.bind(this,function(d){if(d){d="/me/drive/root";null!=m&&(d=this.getItemURL(m,!0));var e=mxUtils.bind(this,function(a){f?b(new OneDriveLibrary(this.ui,c,a)):b(new OneDriveFile(this.ui,
@@ -11072,18 +11073,18 @@ c(JSON.parse(b.getText()).content.sha)}),mxUtils.bind(this,function(a){b(a)}))})
function(a){this.pickFile(a)};GitHubClient.prototype.pickFolder=function(a){this.showGitHubDialog(!1,a)};GitHubClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("H"+encodeURIComponent(a))});this.showGitHubDialog(!0,a)};GitHubClient.prototype.showGitHubDialog=function(a,c){var b=null,d=null,f=null,m=null,n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.overflow="hidden";n.style.height="304px";var e=document.createElement("h3");mxUtils.write(e,
mxResources.get(a?"selectFile":"selectFolder"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";n.appendChild(e);var k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.border="1px solid lightgray";k.style.boxSizing="border-box";k.style.padding="4px";k.style.overflow="auto";k.style.lineHeight="1.2em";k.style.height="274px";n.appendChild(k);var l=document.createElement("div");l.style.textOverflow="ellipsis";l.style.boxSizing="border-box";l.style.overflow=
"hidden";l.style.padding="4px";l.style.width="100%";var p=new CustomDialog(this.ui,n,mxUtils.bind(this,function(){c(b+"/"+d+"/"+encodeURIComponent(f)+"/"+m)}));this.ui.showDialog(p.container,420,360,!0,!0);a&&p.okButton.parentNode.removeChild(p.okButton);var q=mxUtils.bind(this,function(a,b,c,d){var e=document.createElement("a");e.setAttribute("title",a);e.style.cursor="pointer";mxUtils.write(e,a);mxEvent.addListener(e,"click",b);d&&(e.style.textDecoration="underline");null!=c&&(a=l.cloneNode(),a.style.padding=
-c,a.appendChild(e),e=a);return e}),t=mxUtils.bind(this,function(a){var c=document.createElement("div");c.style.marginBottom="8px";c.appendChild(q(b+"/"+d,mxUtils.bind(this,function(){m=null;E()}),null,!0));a||(mxUtils.write(c," / "),c.appendChild(q(decodeURIComponent(f),mxUtils.bind(this,function(){m=null;A()}),null,!0)));if(null!=m&&0<m.length){var e=m.split("/");for(a=0;a<e.length;a++)(function(a){mxUtils.write(c," / ");c.appendChild(q(e[a],mxUtils.bind(this,function(){m=e.slice(0,a+1).join("/");
-x()}),null,!0))})(a)}k.appendChild(c)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?(m=f=d=b=null,E()):this.ui.hideDialog()}),null,{})}),v=null,y=null,x=mxUtils.bind(this,function(e){null==e&&(k.innerHTML="",e=1);var g=new mxXmlRequest(this.baseUrl+"/repos/"+b+"/"+d+"/contents/"+m+"?ref="+encodeURIComponent(f)+"&per_page=100&page="+e,null,"GET");this.ui.spinner.spin(k,mxResources.get("loading"));p.okButton.removeAttribute("disabled");
-null!=y&&(mxEvent.removeListener(k,"scroll",y),y=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+"...");var n=mxUtils.bind(this,function(){x(e+1)});mxEvent.addListener(v,"click",n);this.executeRequest(g,mxUtils.bind(this,function(g){this.ui.spinner.stop();1==e&&(t(),k.appendChild(q("../ [Up]",mxUtils.bind(this,function(){if(""==m)m=null,E();else{var a=m.split("/");
-m=a.slice(0,a.length-1).join("/");x()}}),"4px")));var n=JSON.parse(g.getText());if(null==n||0==n.length)mxUtils.write(k,mxResources.get("noFiles"));else{var p=!0,z=0;g=mxUtils.bind(this,function(e){for(var g=0;g<n.length;g++)mxUtils.bind(this,function(g,n){if(e==("dir"==g.type)){var B=l.cloneNode();B.style.backgroundColor=p?"dark"==uiTheme?"#000000":"#eeeeee":"";p=!p;var C=document.createElement("img");C.src=IMAGE_PATH+"/"+("dir"==g.type?"folder.png":"file.png");C.setAttribute("align","absmiddle");
-C.style.marginRight="4px";C.style.marginTop="-4px";C.width=20;B.appendChild(C);B.appendChild(q(g.name+("dir"==g.type?"/":""),mxUtils.bind(this,function(){"dir"==g.type?(m=g.path,x()):a&&"file"==g.type&&(this.ui.hideDialog(),c(b+"/"+d+"/"+encodeURIComponent(f)+"/"+g.path))})));k.appendChild(B);z++}})(n[g],g)});g(!0);a&&g(!1)}}),u,!0)}),A=mxUtils.bind(this,function(a,c){null==a&&(k.innerHTML="",a=1);var e=new mxXmlRequest(this.baseUrl+"/repos/"+b+"/"+d+"/branches?per_page=100&page="+a,null,"GET");p.okButton.setAttribute("disabled",
-"disabled");this.ui.spinner.spin(k,mxResources.get("loading"));null!=y&&(mxEvent.removeListener(k,"scroll",y),y=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+"...");var g=mxUtils.bind(this,function(){A(a+1)});mxEvent.addListener(v,"click",g);this.executeRequest(e,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(t(!0),k.appendChild(q("../ [Up]",mxUtils.bind(this,
-function(){m=null;E()}),"4px")));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(k,mxResources.get("noFiles"));else if(1==b.length&&c)f=b[0].name,m="",x();else{for(var d=0;d<b.length;d++)mxUtils.bind(this,function(a,b){var c=l.cloneNode();c.style.backgroundColor=0==b%2?"dark"==uiTheme?"#000000":"#eeeeee":"";c.appendChild(q(a.name,mxUtils.bind(this,function(){f=a.name;m="";x()})));k.appendChild(c)})(b[d],d);100==b.length&&(k.appendChild(v),y=function(){k.scrollTop>=k.scrollHeight-k.offsetHeight&&
-g()},mxEvent.addListener(k,"scroll",y))}}),u)}),E=mxUtils.bind(this,function(a){null==a&&(k.innerHTML="",a=1);var c=new mxXmlRequest(this.baseUrl+"/user/repos?per_page=100&page="+a,null,"GET");p.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(k,mxResources.get("loading"));null!=y&&mxEvent.removeListener(k,"scroll",y);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+
+c,a.appendChild(e),e=a);return e}),t=mxUtils.bind(this,function(a){var c=document.createElement("div");c.style.marginBottom="8px";c.appendChild(q(b+"/"+d,mxUtils.bind(this,function(){m=null;E()}),null,!0));a||(mxUtils.write(c," / "),c.appendChild(q(decodeURIComponent(f),mxUtils.bind(this,function(){m=null;y()}),null,!0)));if(null!=m&&0<m.length){var e=m.split("/");for(a=0;a<e.length;a++)(function(a){mxUtils.write(c," / ");c.appendChild(q(e[a],mxUtils.bind(this,function(){m=e.slice(0,a+1).join("/");
+x()}),null,!0))})(a)}k.appendChild(c)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?(m=f=d=b=null,E()):this.ui.hideDialog()}),null,{})}),v=null,A=null,x=mxUtils.bind(this,function(e){null==e&&(k.innerHTML="",e=1);var g=new mxXmlRequest(this.baseUrl+"/repos/"+b+"/"+d+"/contents/"+m+"?ref="+encodeURIComponent(f)+"&per_page=100&page="+e,null,"GET");this.ui.spinner.spin(k,mxResources.get("loading"));p.okButton.removeAttribute("disabled");
+null!=A&&(mxEvent.removeListener(k,"scroll",A),A=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+"...");var n=mxUtils.bind(this,function(){x(e+1)});mxEvent.addListener(v,"click",n);this.executeRequest(g,mxUtils.bind(this,function(g){this.ui.spinner.stop();1==e&&(t(),k.appendChild(q("../ [Up]",mxUtils.bind(this,function(){if(""==m)m=null,E();else{var a=m.split("/");
+m=a.slice(0,a.length-1).join("/");x()}}),"4px")));var n=JSON.parse(g.getText());if(null==n||0==n.length)mxUtils.write(k,mxResources.get("noFiles"));else{var p=!0,z=0;g=mxUtils.bind(this,function(e){for(var g=0;g<n.length;g++)mxUtils.bind(this,function(g,n){if(e==("dir"==g.type)){var B=l.cloneNode();B.style.backgroundColor=p?"dark"==uiTheme?"#000000":"#eeeeee":"";p=!p;var t=document.createElement("img");t.src=IMAGE_PATH+"/"+("dir"==g.type?"folder.png":"file.png");t.setAttribute("align","absmiddle");
+t.style.marginRight="4px";t.style.marginTop="-4px";t.width=20;B.appendChild(t);B.appendChild(q(g.name+("dir"==g.type?"/":""),mxUtils.bind(this,function(){"dir"==g.type?(m=g.path,x()):a&&"file"==g.type&&(this.ui.hideDialog(),c(b+"/"+d+"/"+encodeURIComponent(f)+"/"+g.path))})));k.appendChild(B);z++}})(n[g],g)});g(!0);a&&g(!1)}}),u,!0)}),y=mxUtils.bind(this,function(a,c){null==a&&(k.innerHTML="",a=1);var e=new mxXmlRequest(this.baseUrl+"/repos/"+b+"/"+d+"/branches?per_page=100&page="+a,null,"GET");p.okButton.setAttribute("disabled",
+"disabled");this.ui.spinner.spin(k,mxResources.get("loading"));null!=A&&(mxEvent.removeListener(k,"scroll",A),A=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+"...");var g=mxUtils.bind(this,function(){y(a+1)});mxEvent.addListener(v,"click",g);this.executeRequest(e,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(t(!0),k.appendChild(q("../ [Up]",mxUtils.bind(this,
+function(){m=null;E()}),"4px")));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(k,mxResources.get("noFiles"));else if(1==b.length&&c)f=b[0].name,m="",x();else{for(var d=0;d<b.length;d++)mxUtils.bind(this,function(a,b){var c=l.cloneNode();c.style.backgroundColor=0==b%2?"dark"==uiTheme?"#000000":"#eeeeee":"";c.appendChild(q(a.name,mxUtils.bind(this,function(){f=a.name;m="";x()})));k.appendChild(c)})(b[d],d);100==b.length&&(k.appendChild(v),A=function(){k.scrollTop>=k.scrollHeight-k.offsetHeight&&
+g()},mxEvent.addListener(k,"scroll",A))}}),u)}),E=mxUtils.bind(this,function(a){null==a&&(k.innerHTML="",a=1);var c=new mxXmlRequest(this.baseUrl+"/user/repos?per_page=100&page="+a,null,"GET");p.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(k,mxResources.get("loading"));null!=A&&mxEvent.removeListener(k,"scroll",A);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+
"...");var e=mxUtils.bind(this,function(){E(a+1)});mxEvent.addListener(v,"click",e);this.executeRequest(c,mxUtils.bind(this,function(c){this.ui.spinner.stop();c=JSON.parse(c.getText());if(null==c||0==c.length)mxUtils.write(k,mxResources.get("noFiles"));else{1==a&&(k.appendChild(q(mxResources.get("enterValue")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this,function(a){if(null!=a){var c=a.split("/");if(1<c.length){a=c[0];var e=
-c[1];3>c.length?(b=a,d=e,m=f=null,A()):this.ui.spinner.spin(k,mxResources.get("loading"))&&(c=encodeURIComponent(c.slice(2,c.length).join("/")),this.getFile(a+"/"+e+"/"+c,mxUtils.bind(this,function(a){this.ui.spinner.stop();b=a.meta.org;d=a.meta.repo;f=decodeURIComponent(a.meta.ref);m="";x()}),mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError({message:mxResources.get("fileNotFound")})})))}else this.ui.spinner.stop(),this.ui.handleError({message:mxResources.get("invalidName")})}}),
-mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(k),mxUtils.br(k));for(var g=0;g<c.length;g++)mxUtils.bind(this,function(a,c){var e=l.cloneNode();e.style.backgroundColor=0==c%2?"dark"==uiTheme?"#000000":"#eeeeee":"";e.appendChild(q(a.full_name,mxUtils.bind(this,function(){b=a.owner.login;d=a.name;m="";A(null,!0)})));k.appendChild(e)})(c[g],g)}100==c.length&&(k.appendChild(v),y=function(){k.scrollTop>=k.scrollHeight-k.offsetHeight&&e()},mxEvent.addListener(k,
-"scroll",y))}),u)});E()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);a=null}})();TrelloFile=function(a,d,c){DrawioFile.call(this,a,d);this.meta=c;this.saveNeededCounter=0};mxUtils.extend(TrelloFile,DrawioFile);TrelloFile.prototype.getHash=function(){return"T"+encodeURIComponent(this.meta.compoundId)};TrelloFile.prototype.getMode=function(){return App.MODE_TRELLO};TrelloFile.prototype.isAutosave=function(){return!0};TrelloFile.prototype.getTitle=function(){return this.meta.name};TrelloFile.prototype.isRenamable=function(){return!1};TrelloFile.prototype.getSize=function(){return this.meta.bytes};
+c[1];3>c.length?(b=a,d=e,m=f=null,y()):this.ui.spinner.spin(k,mxResources.get("loading"))&&(c=encodeURIComponent(c.slice(2,c.length).join("/")),this.getFile(a+"/"+e+"/"+c,mxUtils.bind(this,function(a){this.ui.spinner.stop();b=a.meta.org;d=a.meta.repo;f=decodeURIComponent(a.meta.ref);m="";x()}),mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError({message:mxResources.get("fileNotFound")})})))}else this.ui.spinner.stop(),this.ui.handleError({message:mxResources.get("invalidName")})}}),
+mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(k),mxUtils.br(k));for(var g=0;g<c.length;g++)mxUtils.bind(this,function(a,c){var e=l.cloneNode();e.style.backgroundColor=0==c%2?"dark"==uiTheme?"#000000":"#eeeeee":"";e.appendChild(q(a.full_name,mxUtils.bind(this,function(){b=a.owner.login;d=a.name;m="";y(null,!0)})));k.appendChild(e)})(c[g],g)}100==c.length&&(k.appendChild(v),A=function(){k.scrollTop>=k.scrollHeight-k.offsetHeight&&e()},mxEvent.addListener(k,
+"scroll",A))}),u)});E()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);a=null}})();TrelloFile=function(a,d,c){DrawioFile.call(this,a,d);this.meta=c;this.saveNeededCounter=0};mxUtils.extend(TrelloFile,DrawioFile);TrelloFile.prototype.getHash=function(){return"T"+encodeURIComponent(this.meta.compoundId)};TrelloFile.prototype.getMode=function(){return App.MODE_TRELLO};TrelloFile.prototype.isAutosave=function(){return!0};TrelloFile.prototype.getTitle=function(){return this.meta.name};TrelloFile.prototype.isRenamable=function(){return!1};TrelloFile.prototype.getSize=function(){return this.meta.bytes};
TrelloFile.prototype.save=function(a,d,c){this.doSave(this.getTitle(),d,c)};TrelloFile.prototype.saveAs=function(a,d,c){this.doSave(a,d,c)};TrelloFile.prototype.doSave=function(a,d,c){var b=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,[null,mxUtils.bind(this,function(){this.meta.name=b;this.saveFile(a,!1,d,c)}),c])};
TrelloFile.prototype.saveFile=function(a,d,c,b){this.isEditable()?this.savingFile?null!=b&&(this.saveNeededCounter++,b({code:App.ERROR_BUSY})):(this.savingFileTime=new Date,this.setShadowModified(!1),this.savingFile=!0,this.getTitle()==a?this.ui.trello.saveFile(this,mxUtils.bind(this,function(g){this.setModified(this.getShadowModified());this.savingFile=!1;this.meta=g;this.contentChanged();null!=c&&c();0<this.saveNeededCounter&&(this.saveNeededCounter--,this.saveFile(a,d,c,b))}),mxUtils.bind(this,
function(a){this.savingFile=!1;null!=b&&b(a)})):this.ui.pickFolder(App.MODE_TRELLO,mxUtils.bind(this,function(g){this.ui.trello.insertFile(a,this.getData(),mxUtils.bind(this,function(f){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(f);0<this.saveNeededCounter&&(this.saveNeededCounter--,this.saveFile(a,d,c,b))}),mxUtils.bind(this,function(){this.savingFile=!1;null!=b&&b()}),!1,g)}))):null!=c&&c()};TrelloLibrary=function(a,d,c){TrelloFile.call(this,a,d,c)};mxUtils.extend(TrelloLibrary,TrelloFile);TrelloLibrary.prototype.doSave=function(a,d,c){this.saveFile(a,!1,d,c)};TrelloLibrary.prototype.open=function(){};TrelloClient=function(a){DrawioClient.call(this,a,"tauth");Trello.setKey(this.key)};mxUtils.extend(TrelloClient,DrawioClient);TrelloClient.prototype.key="e73615c79cf7e381aef91c85936e9553";TrelloClient.prototype.baseUrl="https://api.trello.com/1/";TrelloClient.prototype.SEPARATOR="|$|";TrelloClient.prototype.maxFileSize=1E7;TrelloClient.prototype.extension=".xml";
@@ -11115,7 +11116,7 @@ l);a.setRequestHeader("PRIVATE_TOKEN",l);a.setRequestHeader("Content-Type","appl
null!=l.errors&&0<l.errors.length&&(a="too_large"==l.errors[0].code)}catch(t){}b({message:mxResources.get(a?"drawingTooLarge":"forbidden")})}else 404===d.getStatus()?b({message:this.getErrorMessage(d,mxResources.get("fileNotFound"))}):400===d.getStatus()?b({status:400}):b({status:d.getStatus(),message:this.getErrorMessage(d,mxResources.get("error")+" "+d.getStatus())})}),mxUtils.bind(this,function(a){window.clearTimeout(k);e&&b(a)}))}),m=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){m(!0)},
b,a):f(a)});null==a?this.authenticate(function(){m(!0)},b):m(!1)};GitLabClient.prototype.getRefIndex=function(a,c,b,g,f,m){if(null!=f)b(a,f);else{var d=a.length-2,e=mxUtils.bind(this,function(){if(2>d)g({message:mxResources.get("fileNotFound")});else{var f=Math.max(d-1,0),l=a.slice(0,f).join("/"),f=a[f],n=a[d],q=a.slice(d+1,a.length).join("/"),l=this.baseUrl+"/projects/"+encodeURIComponent(l+"/"+f)+"/repository/"+(c?m?"branches?per_page=1&page=1&ref="+n:"tree?path="+q+"&ref="+n:"files/"+encodeURIComponent(q)+
"?ref="+n),t=new mxXmlRequest(l,null,"HEAD");this.executeRequest(t,mxUtils.bind(this,function(){200==t.getStatus()?b(a,d):g({message:mxResources.get("fileNotFound")})}),mxUtils.bind(this,function(){404==t.getStatus()?(d--,e()):g({message:mxResources.get("fileNotFound")})}))}});e()}};GitLabClient.prototype.getFile=function(d,c,b,g,f,m){g=null!=g?g:!1;this.getRefIndex(d.split("/"),!1,mxUtils.bind(this,function(m,e){var k=Math.max(e-1,0),l=m.slice(0,k).join("/"),n=m[k],q=m[e];d=m.slice(e+1,m.length).join("/");
-k=/\.png$/i.test(d);if(!f&&(/\.v(dx|sdx?)$/i.test(d)||/\.gliffy$/i.test(d)||/\.pdf$/i.test(d)||!this.ui.useCanvasForExport&&k))if(null!=a){var k="&t="+(new Date).getTime(),t=this.baseUrl+"/projects/"+encodeURIComponent(l+"/"+n)+"/repository/files/"+encodeURIComponent(d)+"?ref="+q;m=d.split("/");this.ui.convertFile(t+k,0<m.length?m[m.length-1]:d,null,this.extension,c,b,mxUtils.bind(this,function(a,b,c){a=new mxXmlRequest(a,null,"GET");this.executeRequest(a,mxUtils.bind(this,function(a){try{b(this.getFileContent(JSON.parse(a.getText())))}catch(A){c(A)}}),
+k=/\.png$/i.test(d);if(!f&&(/\.v(dx|sdx?)$/i.test(d)||/\.gliffy$/i.test(d)||/\.pdf$/i.test(d)||!this.ui.useCanvasForExport&&k))if(null!=a){var k="&t="+(new Date).getTime(),t=this.baseUrl+"/projects/"+encodeURIComponent(l+"/"+n)+"/repository/files/"+encodeURIComponent(d)+"?ref="+q;m=d.split("/");this.ui.convertFile(t+k,0<m.length?m[m.length-1]:d,null,this.extension,c,b,mxUtils.bind(this,function(a,b,c){a=new mxXmlRequest(a,null,"GET");this.executeRequest(a,mxUtils.bind(this,function(a){try{b(this.getFileContent(JSON.parse(a.getText())))}catch(y){c(y)}}),
c)}))}else b({message:mxResources.get("accessDenied")});else k="&t="+(new Date).getTime(),t=this.baseUrl+"/projects/"+encodeURIComponent(l+"/"+n)+"/repository/files/"+encodeURIComponent(d)+"?ref="+q,k=new mxXmlRequest(t+k,null,"GET"),this.executeRequest(k,mxUtils.bind(this,function(a){try{c(this.createGitLabFile(l,n,q,JSON.parse(a.getText()),g,e))}catch(v){b(v)}}),b)}),b,m)};GitLabClient.prototype.getFileContent=function(a){var c=a.file_name,b=a.content;"base64"===a.encoding&&(/\.jpe?g$/i.test(c)?
b="data:image/jpeg;base64,"+b:/\.gif$/i.test(c)?b="data:image/gif;base64,"+b:/\.pdf$/i.test(c)?b="data:application/pdf;base64,"+b:/\.png$/i.test(c)?(a=this.ui.extractGraphModelFromPng(b),b=null!=a&&0<a.length?a:"data:image/png;base64,"+b):b=Base64.decode(b));return b};GitLabClient.prototype.createGitLabFile=function(a,c,b,g,f,m){var d=DRAWIO_GITLAB_URL+"/";a={org:a,repo:c,ref:b,name:g.file_name,path:g.file_path,html_url:d+a+"/"+c+"/blob/"+b+"/"+g.file_path,download_url:d+a+"/"+c+"/raw/"+b+"/"+g.file_path+
"?inline=false",last_commit_id:g.last_commit_id,refPos:m};g=this.getFileContent(g);return f?new GitLabLibrary(this.ui,g,a):new GitLabFile(this.ui,g,a)};GitLabClient.prototype.insertFile=function(a,c,b,g,f,m,n){f=null!=f?f:!1;m=m.split("/");this.getRefIndex(m,!0,mxUtils.bind(this,function(d,k){var e=Math.max(k-1,0),m=d.slice(0,e).join("/"),q=d[e],t=d[k];path=d.slice(k+1,d.length).join("/");0<path.length&&(path+="/");path+=a;this.checkExists(m+"/"+q+"/"+t+"/"+path,!0,mxUtils.bind(this,function(d,e){if(d)if(f)n||
@@ -11127,19 +11128,19 @@ this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){l(a.meta.last_commit_id,b)}
encodeURIComponent(a))});this.showGitLabDialog(!0,a)};GitLabClient.prototype.showGitLabDialog=function(d,c){var b=null,g=null,f=null,m=null,n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.overflow="hidden";n.style.height="304px";var e=document.createElement("h3");mxUtils.write(e,mxResources.get(d?"selectFile":"selectFolder"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";n.appendChild(e);var k=document.createElement("div");k.style.whiteSpace=
"nowrap";k.style.border="1px solid lightgray";k.style.boxSizing="border-box";k.style.padding="4px";k.style.overflow="auto";k.style.lineHeight="1.2em";k.style.height="274px";n.appendChild(k);var l=document.createElement("div");l.style.textOverflow="ellipsis";l.style.boxSizing="border-box";l.style.overflow="hidden";l.style.padding="4px";l.style.width="100%";var p=new CustomDialog(this.ui,n,mxUtils.bind(this,function(){c(b+"/"+g+"/"+encodeURIComponent(f)+"/"+m)}));this.ui.showDialog(p.container,420,
360,!0,!0);d&&p.okButton.parentNode.removeChild(p.okButton);var q=mxUtils.bind(this,function(a,b,c,d){var e=document.createElement("a");e.setAttribute("title",a);e.style.cursor="pointer";mxUtils.write(e,a);mxEvent.addListener(e,"click",b);d&&(e.style.textDecoration="underline");null!=c&&(a=l.cloneNode(),a.style.padding=c,a.appendChild(e),e=a);return e}),t=mxUtils.bind(this,function(a){var c=document.createElement("div");c.style.marginBottom="8px";c.appendChild(q(b+"/"+g,mxUtils.bind(this,function(){m=
-null;E()}),null,!0));a||(mxUtils.write(c," / "),c.appendChild(q(decodeURIComponent(f),mxUtils.bind(this,function(){m=null;A()}),null,!0)));if(null!=m&&0<m.length){var d=m.split("/");for(a=0;a<d.length;a++)(function(a){mxUtils.write(c," / ");c.appendChild(q(d[a],mxUtils.bind(this,function(){m=d.slice(0,a+1).join("/");x()}),null,!0))})(a)}k.appendChild(c)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?(m=f=g=b=null,
-E()):this.ui.hideDialog()}))}),v=null,y=null,x=mxUtils.bind(this,function(a){null==a&&(k.innerHTML="",a=1);var e=new mxXmlRequest(this.baseUrl+"/projects/"+encodeURIComponent(b+"/"+g)+"/repository/tree?path="+m+"&ref="+f+"&per_page=100&page="+a,null,"GET");this.ui.spinner.spin(k,mxResources.get("loading"));p.okButton.removeAttribute("disabled");null!=y&&(mxEvent.removeListener(k,"scroll",y),y=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display=
+null;E()}),null,!0));a||(mxUtils.write(c," / "),c.appendChild(q(decodeURIComponent(f),mxUtils.bind(this,function(){m=null;y()}),null,!0)));if(null!=m&&0<m.length){var d=m.split("/");for(a=0;a<d.length;a++)(function(a){mxUtils.write(c," / ");c.appendChild(q(d[a],mxUtils.bind(this,function(){m=d.slice(0,a+1).join("/");x()}),null,!0))})(a)}k.appendChild(c)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?(m=f=g=b=null,
+E()):this.ui.hideDialog()}))}),v=null,A=null,x=mxUtils.bind(this,function(a){null==a&&(k.innerHTML="",a=1);var e=new mxXmlRequest(this.baseUrl+"/projects/"+encodeURIComponent(b+"/"+g)+"/repository/tree?path="+m+"&ref="+f+"&per_page=100&page="+a,null,"GET");this.ui.spinner.spin(k,mxResources.get("loading"));p.okButton.removeAttribute("disabled");null!=A&&(mxEvent.removeListener(k,"scroll",A),A=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display=
"block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+"...");var n=mxUtils.bind(this,function(){x(a+1)});mxEvent.addListener(v,"click",n);this.executeRequest(e,mxUtils.bind(this,function(e){this.ui.spinner.stop();1==a&&(t(!f),k.appendChild(q("../ [Up]",mxUtils.bind(this,function(){if(""==m)m=null,E();else{var a=m.split("/");m=a.slice(0,a.length-1).join("/");x()}}),"4px")));var p=JSON.parse(e.getText());if(null==p||0==p.length)mxUtils.write(k,mxResources.get("noFiles"));else{var z=
!0,B=0;e=mxUtils.bind(this,function(a){for(var e=0;e<p.length;e++)mxUtils.bind(this,function(e){if(a==("tree"==e.type)){var n=l.cloneNode();n.style.backgroundColor=z?"dark"==uiTheme?"#000000":"#eeeeee":"";z=!z;var p=document.createElement("img");p.src=IMAGE_PATH+"/"+("tree"==e.type?"folder.png":"file.png");p.setAttribute("align","absmiddle");p.style.marginRight="4px";p.style.marginTop="-4px";p.width=20;n.appendChild(p);n.appendChild(q(e.name+("tree"==e.type?"/":""),mxUtils.bind(this,function(){"tree"==
-e.type?(m=e.path,x()):d&&"blob"==e.type&&(this.ui.hideDialog(),c(b+"/"+g+"/"+f+"/"+e.path))})));k.appendChild(n);B++}})(p[e])});e(!0);d&&e(!1);100==B&&(k.appendChild(v),y=function(){k.scrollTop>=k.scrollHeight-k.offsetHeight&&n()},mxEvent.addListener(k,"scroll",y))}}),u,!0)}),A=mxUtils.bind(this,function(a,c){null==a&&(k.innerHTML="",a=1);var d=new mxXmlRequest(this.baseUrl+"/projects/"+encodeURIComponent(b+"/"+g)+"/repository/branches?per_page=100&page="+a,null,"GET");p.okButton.setAttribute("disabled",
-"disabled");this.ui.spinner.spin(k,mxResources.get("loading"));null!=y&&(mxEvent.removeListener(k,"scroll",y),y=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+"...");var e=mxUtils.bind(this,function(){A(a+1)});mxEvent.addListener(v,"click",e);this.executeRequest(d,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(t(!0),k.appendChild(q("../ [Up]",mxUtils.bind(this,
-function(){m=null;E()}),"4px")));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(k,mxResources.get("noFiles"));else if(1==b.length&&c)f=b[0].name,m="",x();else{for(var d=0;d<b.length;d++)mxUtils.bind(this,function(a,b){var c=l.cloneNode();c.style.backgroundColor=0==b%2?"dark"==uiTheme?"#000000":"#eeeeee":"";c.appendChild(q(a.name,mxUtils.bind(this,function(){f=encodeURIComponent(a.name);m="";x()})));k.appendChild(c)})(b[d],d);100==b.length&&(k.appendChild(v),y=function(){k.scrollTop>=
-k.scrollHeight-k.offsetHeight&&e()},mxEvent.addListener(k,"scroll",y))}}),u)});p.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(k,mxResources.get("loading"));var E=mxUtils.bind(this,function(a){this.ui.spinner.stop();null==a&&(k.innerHTML="",a=1);null!=y&&(mxEvent.removeListener(k,"scroll",y),y=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+"...");
+e.type?(m=e.path,x()):d&&"blob"==e.type&&(this.ui.hideDialog(),c(b+"/"+g+"/"+f+"/"+e.path))})));k.appendChild(n);B++}})(p[e])});e(!0);d&&e(!1);100==B&&(k.appendChild(v),A=function(){k.scrollTop>=k.scrollHeight-k.offsetHeight&&n()},mxEvent.addListener(k,"scroll",A))}}),u,!0)}),y=mxUtils.bind(this,function(a,c){null==a&&(k.innerHTML="",a=1);var d=new mxXmlRequest(this.baseUrl+"/projects/"+encodeURIComponent(b+"/"+g)+"/repository/branches?per_page=100&page="+a,null,"GET");p.okButton.setAttribute("disabled",
+"disabled");this.ui.spinner.spin(k,mxResources.get("loading"));null!=A&&(mxEvent.removeListener(k,"scroll",A),A=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+"...");var e=mxUtils.bind(this,function(){y(a+1)});mxEvent.addListener(v,"click",e);this.executeRequest(d,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(t(!0),k.appendChild(q("../ [Up]",mxUtils.bind(this,
+function(){m=null;E()}),"4px")));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(k,mxResources.get("noFiles"));else if(1==b.length&&c)f=b[0].name,m="",x();else{for(var d=0;d<b.length;d++)mxUtils.bind(this,function(a,b){var c=l.cloneNode();c.style.backgroundColor=0==b%2?"dark"==uiTheme?"#000000":"#eeeeee":"";c.appendChild(q(a.name,mxUtils.bind(this,function(){f=encodeURIComponent(a.name);m="";x()})));k.appendChild(c)})(b[d],d);100==b.length&&(k.appendChild(v),A=function(){k.scrollTop>=
+k.scrollHeight-k.offsetHeight&&e()},mxEvent.addListener(k,"scroll",A))}}),u)});p.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(k,mxResources.get("loading"));var E=mxUtils.bind(this,function(a){this.ui.spinner.stop();null==a&&(k.innerHTML="",a=1);null!=A&&(mxEvent.removeListener(k,"scroll",A),A=null);null!=v&&null!=v.parentNode&&v.parentNode.removeChild(v);v=document.createElement("a");v.style.display="block";v.style.cursor="pointer";mxUtils.write(v,mxResources.get("more")+"...");
var c=mxUtils.bind(this,function(){E(a+1)});mxEvent.addListener(v,"click",c);var d=mxUtils.bind(this,function(a){this.ui.spinner.spin(k,mxResources.get("loading"));var b=new mxXmlRequest(this.baseUrl+"/groups?per_page=100",null,"GET");this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();a(JSON.parse(b.getText()))}),u)}),e=mxUtils.bind(this,function(a,b){this.ui.spinner.spin(k,mxResources.get("loading"));var c=new mxXmlRequest(this.baseUrl+"/groups/"+a.id+"/projects?per_page=100",
null,"GET");this.executeRequest(c,mxUtils.bind(this,function(c){this.ui.spinner.stop();b(a,JSON.parse(c.getText()))}),u)});d(mxUtils.bind(this,function(d){var n=new mxXmlRequest(this.baseUrl+"/users/"+this.user.id+"/projects?per_page=100&page="+a,null,"GET");this.ui.spinner.spin(k,mxResources.get("loading"));this.executeRequest(n,mxUtils.bind(this,function(n){this.ui.spinner.stop();n=JSON.parse(n.getText());if(null!=n&&0!=n.length||null!=d&&0!=d.length){1==a&&(k.appendChild(q(mxResources.get("enterValue")+
-"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(a=a.split("/"),1<a.length?(b=a[0],g=a[1],f=m=null,2<a.length?(f=encodeURIComponent(a.slice(2,a.length).join("/")),x()):A(null,!0)):(this.ui.spinner.stop(),this.ui.handleError({message:mxResources.get("invalidName")})))}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(k),mxUtils.br(k));for(var p=0;p<n.length;p++)mxUtils.bind(this,
-function(a,c){var d=l.cloneNode();d.style.backgroundColor=0==c%2?"dark"==uiTheme?"#000000":"#eeeeee":"";d.appendChild(q(a.name_with_namespace,mxUtils.bind(this,function(){b=a.owner.username;g=a.path;m="";A(null,!0)})));k.appendChild(d)})(n[p],p);for(p=0;p<d.length;p++)e(d[p],mxUtils.bind(this,function(a,c){for(var d=0;d<c.length;d++){var e=l.cloneNode();e.style.backgroundColor=0==idx%2?"dark"==uiTheme?"#000000":"#eeeeee":"";mxUtils.bind(this,function(c){e.appendChild(q(c.name_with_namespace,mxUtils.bind(this,
-function(){b=a.full_path;g=c.path;m="";A(null,!0)})));k.appendChild(e)})(c[d])}}))}else mxUtils.write(k,mxResources.get("noFiles"));100==n.length&&(k.appendChild(v),y=function(){k.scrollTop>=k.scrollHeight-k.offsetHeight&&c()},mxEvent.addListener(k,"scroll",y))}),u)}))});a?this.user?E():this.updateUser(function(){E()},u,!0):this.authenticate(mxUtils.bind(this,function(){this.updateUser(function(){E()},u,!0)}),u)};GitLabClient.prototype.logout=function(){this.ui.editor.loadUrl(this.redirectUri+"?doLogout=1&state="+
+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(a=a.split("/"),1<a.length?(b=a[0],g=a[1],f=m=null,2<a.length?(f=encodeURIComponent(a.slice(2,a.length).join("/")),x()):y(null,!0)):(this.ui.spinner.stop(),this.ui.handleError({message:mxResources.get("invalidName")})))}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(k),mxUtils.br(k));for(var p=0;p<n.length;p++)mxUtils.bind(this,
+function(a,c){var d=l.cloneNode();d.style.backgroundColor=0==c%2?"dark"==uiTheme?"#000000":"#eeeeee":"";d.appendChild(q(a.name_with_namespace,mxUtils.bind(this,function(){b=a.owner.username;g=a.path;m="";y(null,!0)})));k.appendChild(d)})(n[p],p);for(p=0;p<d.length;p++)e(d[p],mxUtils.bind(this,function(a,c){for(var d=0;d<c.length;d++){var e=l.cloneNode();e.style.backgroundColor=0==idx%2?"dark"==uiTheme?"#000000":"#eeeeee":"";mxUtils.bind(this,function(c){e.appendChild(q(c.name_with_namespace,mxUtils.bind(this,
+function(){b=a.full_path;g=c.path;m="";y(null,!0)})));k.appendChild(e)})(c[d])}}))}else mxUtils.write(k,mxResources.get("noFiles"));100==n.length&&(k.appendChild(v),A=function(){k.scrollTop>=k.scrollHeight-k.offsetHeight&&c()},mxEvent.addListener(k,"scroll",A))}),u)}))});a?this.user?E():this.updateUser(function(){E()},u,!0):this.authenticate(mxUtils.bind(this,function(){this.updateUser(function(){E()},u,!0)}),u)};GitLabClient.prototype.logout=function(){this.ui.editor.loadUrl(this.redirectUri+"?doLogout=1&state="+
encodeURIComponent("cId="+this.clientId+"&domain="+window.location.hostname));this.clearPersistentToken();this.setUser(null);a=null;this.setToken(null)}})();DrawioComment=function(a,d,c,b,g,f,m){this.file=a;this.id=d;this.content=c;this.modifiedDate=b;this.createdDate=g;this.isResolved=f;this.user=m;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,d,c,b,g){d()};DrawioComment.prototype.editComment=function(a,d,c){d()};DrawioComment.prototype.deleteComment=function(a,d){a()};DriveComment=function(a,d,c,b,g,f,m,n){DrawioComment.call(this,a,d,c,b,g,f,m);this.pCommentId=n};mxUtils.extend(DriveComment,DrawioComment);DriveComment.prototype.addReply=function(a,d,c,b,g){a={content:a.content};b?a.verb="resolve":g&&(a.verb="reopen");this.file.ui.drive.executeRequest({url:"/files/"+this.file.getId()+"/comments/"+this.id+"/replies",params:a,method:"POST"},mxUtils.bind(this,function(a){d(a.replyId)}),c)};
DriveComment.prototype.editComment=function(a,d,c){this.content=a;a={content:a};this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,params:a,method:"PATCH"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,params:a,method:"PATCH"},d,c)};
DriveComment.prototype.deleteComment=function(a,d){this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,method:"DELETE"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,method:"DELETE"},a,d)};App=function(a,d,c){EditorUi.call(this,a,d,null!=c?c:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(window.onunload=mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.isModified()){var c={category:"DISCARD-FILE-"+a.getHash(),action:(a.savingFile?"saving":"")+(a.savingFile&&null!=a.savingFileTime?"_"+Math.round((Date.now()-a.savingFileTime.getTime())/1E3):"")+(null!=a.saveLevel?"-sl_"+a.saveLevel:"")+"-age_"+(null!=
@@ -11148,7 +11149,7 @@ a.constructor==DriveFile&&null!=a.desc&&null!=this.drive&&(c.label+=(null!=this.
"on":"off")})}));mxClient.IS_SVG?mxGraph.prototype.warningImage.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE7SURBVHjaYvz//z8DJQAggBjwGXDuHMP/tWuD/uPTCxBAOA0AaQRK/f/+XeJ/cbHlf1wGAAQQTgPu3QNLgfHSpZo4DQAIIKwGwGyH4e/fFbG6AiQJEEAs2Ew2NFzH8OOHBMO6dT/A/KCg7wxGRh+wuhQggDBcALMdFIAcHBxgDGJjcwVIIUAAYbhAUXEdVos4OO4DXcGBIQ4QQCguQPY7sgtgAYruCpAgQACx4LJdU1OCwctLEcyWlLwPJF+AXQE0EMUBAAEEdwF6yMOiD4RRY0QT7gqQAEAAseDzu6XldYYPH9DD4joQa8L5AAEENgWb7SBcXa0JDQMBrK4AcQACiAlfyOMCEFdAnAYQQEz4FLa0XGf4/v0H0IIPONUABBAjyBmMjIwMS5cK/L927QORbtBkaG29DtYLEGAAH6f7oq3Zc+kAAAAASUVORK5CYII=":
(new Image).src=mxGraph.prototype.warningImage.src;window.openWindow=mxUtils.bind(this,function(a,c,d){if("1"==urlParams.openInSameWin)d();else{var b=null;try{b=window.open(a)}catch(n){}null==b||void 0===b?this.showDialog((new PopupDialog(this,a,c,d)).container,320,140,!0,!0):null!=c&&c()}});this.updateDocumentTitle();this.updateUi();window.showOpenAlert=mxUtils.bind(this,function(a){null!=window.openFile&&window.openFile.cancel(!0);this.handleError(a)});this.editor.chromeless&&!this.editor.editable||
this.addFileDropHandler([document]);if(null!=App.DrawPlugins){for(a=0;a<App.DrawPlugins.length;a++)try{App.DrawPlugins[a](this)}catch(b){null!=window.console&&console.log("Plugin Error:",b,App.DrawPlugins[a])}finally{App.embedModePluginsCount--,this.initializeEmbedMode()}window.Draw.loadPlugin=mxUtils.bind(this,function(a){try{a(this)}finally{App.embedModePluginsCount--,this.initializeEmbedMode()}});setTimeout(mxUtils.bind(this,function(){0<App.embedModePluginsCount&&(App.embedModePluginsCount=0,
-this.initializeEmbedMode())}),5E3)}this.load()};App.ERROR_TIMEOUT="timeout";App.ERROR_BUSY="busy";App.ERROR_UNKNOWN="unknown";App.MODE_GOOGLE="google";App.MODE_DROPBOX="dropbox";App.MODE_ONEDRIVE="onedrive";App.MODE_GITHUB="github";App.MODE_GITLAB="gitlab";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello";App.MODE_EMBED="embed";App.DROPBOX_APPKEY="libwls2fa9szdji";App.DROPBOX_URL=window.DRAWIO_BASE_URL+"/js/dropbox/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";
+this.initializeEmbedMode())}),5E3)}this.load()};App.ERROR_TIMEOUT="timeout";App.ERROR_BUSY="busy";App.ERROR_UNKNOWN="unknown";App.MODE_GOOGLE="google";App.MODE_DROPBOX="dropbox";App.MODE_ONEDRIVE="onedrive";App.MODE_GITHUB="github";App.MODE_GITLAB="gitlab";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello";App.MODE_EMBED="embed";App.DROPBOX_APPKEY=window.DRAWIO_DROPBOX_ID;App.DROPBOX_URL=window.DRAWIO_BASE_URL+"/js/dropbox/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";
App.ONEDRIVE_URL=mxClient.IS_IE11?"https://js.live.net/v7.2/OneDrive.js":window.DRAWIO_BASE_URL+"/js/onedrive/OneDrive.js";App.ONEDRIVE_INLINE_PICKER_URL=window.DRAWIO_BASE_URL+"/js/onedrive/mxODPicker.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL="https://code.jquery.com/jquery-1.7.1.min.js";App.PUSHER_KEY="1e756b07a690c5bdb054";App.PUSHER_CLUSTER="eu";App.PUSHER_URL="https://js.pusher.com/4.3/pusher.min.js";App.SOCKET_IO_URL=window.DRAWIO_BASE_URL+"/js/socket.io/socket.io.min.js";
App.SIMPLE_PEER_URL=window.DRAWIO_BASE_URL+"/js/socket.io/simplepeer9.10.0.min.js";App.SOCKET_IO_SRV="http://localhost:3030";App.GOOGLE_APIS="drive-share";App.startTime=new Date;
App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"plugins/explore.js",ex:"plugins/explore.js",p1:"plugins/p1.js",ac:"plugins/connect.js",acj:"plugins/connectJira.js",ac148:"plugins/cConf-1-4-8.js",ac148cmnt:"plugins/cConf-comments.js",voice:"plugins/voice.js",tips:"plugins/tooltips.js",svgdata:"plugins/svgdata.js",electron:"plugins/electron.js",number:"plugins/number.js",sql:"plugins/sql.js",props:"plugins/props.js",text:"plugins/text.js",anim:"plugins/animation.js",update:"plugins/update.js",trees:"plugins/trees/trees.js",
@@ -11226,8 +11227,8 @@ App.prototype.onBeforeUnload=function(){if("1"==urlParams.embed&&this.editor.mod
App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.isLightboxView()){var a=this.editor.appName,d=this.getCurrentFile();this.isOfflineApp()&&(a+=" app");null!=d&&(a=(null!=d.getTitle()?d.getTitle():this.defaultFilename)+" - "+a);document.title!=a&&(document.title=a,a=this.editor.graph,a.invalidateDescendantsWithPlaceholders(a.model.getRoot()),a.view.validate())}};
App.prototype.getThumbnail=function(a,d){var c=!1;try{var b=!0,g=window.setTimeout(mxUtils.bind(this,function(){b=!1;d(null)}),this.timeout),f=mxUtils.bind(this,function(a){window.clearTimeout(g);b&&d(a)});null==this.thumbImageCache&&(this.thumbImageCache={});var m=this.editor.graph,n=null!=m.themes&&"darkTheme"==m.defaultThemeName;if(null!=this.pages&&(n||this.currentPage!=this.pages[0])){var e=m.getGlobalVariable,m=this.createTemporaryGraph(n?m.getDefaultStylesheet():m.getStylesheet()),k=this.pages[0];
n&&(m.defaultThemeName="default");m.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?1:e.apply(this,arguments)};m.getGlobalVariable=e;document.body.appendChild(m.container);m.model.setRoot(k.root)}if(mxClient.IS_CHROMEAPP||this.useCanvasForExport)this.editor.exportToCanvas(mxUtils.bind(this,function(a){try{m!=this.editor.graph&&null!=m.container.parentNode&&m.container.parentNode.removeChild(m.container)}catch(B){a=null}f(a)}),a,this.thumbImageCache,"#ffffff",function(){f()},
-null,null,null,null,null,null,m),c=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var l=document.createElement("canvas"),p=m.getGraphBounds(),q=a/p.width,q=Math.min(1,Math.min(3*a/(4*p.height),q)),t=Math.floor(p.x),u=Math.floor(p.y);l.setAttribute("width",Math.ceil(q*(p.width+4)));l.setAttribute("height",Math.ceil(q*(p.height+4)));var v=l.getContext("2d");v.scale(q,q);v.translate(-t,-u);var y=m.background;if(null==y||""==y||y==mxConstants.NONE)y="#ffffff";v.save();v.fillStyle=y;v.fillRect(t,
-u,Math.ceil(p.width+4),Math.ceil(p.height+4));v.restore();var x=new mxJsCanvas(l),A=new mxAsyncCanvas(this.thumbImageCache);x.images=this.thumbImageCache.images;var E=new mxImageExport;E.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};E.drawText=function(a,b){};E.drawState(m.getView().getState(m.model.root),A);A.finish(mxUtils.bind(this,function(){try{E.drawState(m.getView().getState(m.model.root),
+null,null,null,null,null,null,m),c=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var l=document.createElement("canvas"),p=m.getGraphBounds(),q=a/p.width,q=Math.min(1,Math.min(3*a/(4*p.height),q)),t=Math.floor(p.x),u=Math.floor(p.y);l.setAttribute("width",Math.ceil(q*(p.width+4)));l.setAttribute("height",Math.ceil(q*(p.height+4)));var v=l.getContext("2d");v.scale(q,q);v.translate(-t,-u);var A=m.background;if(null==A||""==A||A==mxConstants.NONE)A="#ffffff";v.save();v.fillStyle=A;v.fillRect(t,
+u,Math.ceil(p.width+4),Math.ceil(p.height+4));v.restore();var x=new mxJsCanvas(l),y=new mxAsyncCanvas(this.thumbImageCache);x.images=this.thumbImageCache.images;var E=new mxImageExport;E.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};E.drawText=function(a,b){};E.drawState(m.getView().getState(m.model.root),y);y.finish(mxUtils.bind(this,function(){try{E.drawState(m.getView().getState(m.model.root),
x),m!=this.editor.graph&&null!=m.container.parentNode&&m.container.parentNode.removeChild(m.container)}catch(z){l=null}f(l)}));c=!0}}catch(z){c=!1,null!=m&&m!=this.editor.graph&&null!=m.container.parentNode&&m.container.parentNode.removeChild(m.container)}c||window.clearTimeout(g);return c};
App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);return a};
(function(){var a=EditorUi.prototype.setMode;App.prototype.setMode=function(d,c){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(null!=this.appIcon){var b=this.getCurrentFile();d=null!=b?b.getMode():d;d==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):d==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),
@@ -11270,9 +11271,9 @@ App.prototype.loadFileSystemEntry=function(a,d,c){c=null!=c?c:mxUtils.bind(this,
"image/svg"===b.type.substring(0,9)?g.readAsText(b):g.readAsDataURL(b)}),c)}catch(b){c(b)}};
App.prototype.createFileSystemOptions=function(a){var d=[],c=null;if(null!=a){var b=a.lastIndexOf(".");0<b&&(c=a.substring(b+1))}for(b=0;b<this.editor.diagramFileTypes.length;b++){var g={description:mxResources.get(this.editor.diagramFileTypes[b].description)+(mxClient.IS_MAC?" (."+this.editor.diagramFileTypes[b].extension+")":""),accept:{}};g.accept[this.editor.diagramFileTypes[b].mimeType]=["."+this.editor.diagramFileTypes[b].extension];this.editor.diagramFileTypes[b].extension==c?d.splice(0,0,
g):this.editor.diagramFileTypes[b].extension==c?d.splice(0,0,g):d.push(g)}return{types:d,fileName:a}};App.prototype.showSaveFilePicker=function(a,d,c){d=null!=d?d:mxUtils.bind(this,function(a){"AbortError"!=a.name&&this.handleError(a)});c=null!=c?c:this.createFileSystemOptions();window.showSaveFilePicker(c).then(mxUtils.bind(this,function(b){null!=b&&b.getFile().then(mxUtils.bind(this,function(c){a(b,c)}),d)}),d)};
-App.prototype.pickFile=function(a){try{if(a=null!=a?a:this.mode,a==App.MODE_GOOGLE)null!=this.drive&&"undefined"!=typeof google&&"undefined"!=typeof google.picker?this.drive.pickFile():this.openLink("https://drive.google.com");else{var d=this.getPeerForMode(a);if(null!=d)d.pickFile();else if(a==App.MODE_DEVICE&&"showOpenFilePicker"in window&&!EditorUi.isElectronApp)window.showOpenFilePicker().then(mxUtils.bind(this,function(a){null!=a&&0<a.length&&this.spinner.spin(document.body,mxResources.get("loading"))&&
-this.loadFileSystemEntry(a[0])}),mxUtils.bind(this,function(a){"AbortError"!=a.name&&this.handleError(a)}));else if(a==App.MODE_DEVICE&&Graph.fileSupport){if(null==this.openFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.openFiles(c.files),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.openFileInputElt=c}this.openFileInputElt.click()}else{this.hideDialog();
-window.openNew=null!=this.getCurrentFile()&&!this.isDiagramEmpty();window.baseUrl=this.getUrl();window.openKey="open";window.listBrowserFiles=mxUtils.bind(this,function(a,b){StorageFile.listFiles(this,"F",a,b)});window.openBrowserFile=mxUtils.bind(this,function(a,b,c){StorageFile.getFileContent(this,a,b,c)});window.deleteBrowserFile=mxUtils.bind(this,function(a,b,c){StorageFile.deleteFile(this,a,b,c)});var b=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;this.openFile();window.openFile.setConsumer(mxUtils.bind(this,
+App.prototype.pickFile=function(a){try{if(a=null!=a?a:this.mode,a==App.MODE_GOOGLE)null!=this.drive&&"undefined"!=typeof google&&"undefined"!=typeof google.picker?this.drive.pickFile():this.openLink("https://drive.google.com");else{var d=this.getPeerForMode(a);if(null!=d)d.pickFile();else if(a==App.MODE_DEVICE&&EditorUi.nativeFileSupport)window.showOpenFilePicker().then(mxUtils.bind(this,function(a){null!=a&&0<a.length&&this.spinner.spin(document.body,mxResources.get("loading"))&&this.loadFileSystemEntry(a[0])}),
+mxUtils.bind(this,function(a){"AbortError"!=a.name&&this.handleError(a)}));else if(a==App.MODE_DEVICE&&Graph.fileSupport){if(null==this.openFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.openFiles(c.files),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.openFileInputElt=c}this.openFileInputElt.click()}else{this.hideDialog();window.openNew=
+null!=this.getCurrentFile()&&!this.isDiagramEmpty();window.baseUrl=this.getUrl();window.openKey="open";window.listBrowserFiles=mxUtils.bind(this,function(a,b){StorageFile.listFiles(this,"F",a,b)});window.openBrowserFile=mxUtils.bind(this,function(a,b,c){StorageFile.getFileContent(this,a,b,c)});window.deleteBrowserFile=mxUtils.bind(this,function(a,b,c){StorageFile.deleteFile(this,a,b,c)});var b=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;this.openFile();window.openFile.setConsumer(mxUtils.bind(this,
function(b,c){this.useCanvasForExport||".png"!=c.substring(c.length-4)||(c=c.substring(0,c.length-4)+".drawio");this.fileLoaded(a==App.MODE_BROWSER?new StorageFile(this,b,c):new LocalFile(this,b,c))}));var g=this.dialog,f=g.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=b;f.apply(g,arguments);null==this.getCurrentFile()&&this.showSplash()})}}}catch(m){this.handleError(m)}};
App.prototype.pickLibrary=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE||a==App.MODE_DROPBOX||a==App.MODE_ONEDRIVE||a==App.MODE_GITHUB||a==App.MODE_GITLAB||a==App.MODE_TRELLO){var d=a==App.MODE_GOOGLE?this.drive:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_GITLAB?this.gitLab:a==App.MODE_TRELLO?this.trello:this.dropbox;null!=d&&d.pickLibrary(mxUtils.bind(this,function(a,b){if(null!=b)try{this.loadLibrary(b)}catch(m){this.handleError(m,mxResources.get("errorLoadingFile"))}else this.spinner.spin(document.body,
mxResources.get("loading"))&&d.getLibrary(a,mxUtils.bind(this,function(a){this.spinner.stop();try{this.loadLibrary(a)}catch(n){this.handleError(n,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)}))}))}else if(a==App.MODE_DEVICE&&Graph.fileSupport){if(null==this.libFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){if(null!=
@@ -11287,7 +11288,7 @@ c():this.confirm(mxResources.get("replaceIt",[a]),c)):this.handleError({message:
(mxSettings.removeCustomLibrary(l),mxSettings.addCustomLibrary(c.getHash()));this.removeLibrarySidebar(l);k()}),e)}else k()}}catch(p){this.handleError(p)}};
App.prototype.saveFile=function(a,d){var c=this.getCurrentFile();if(null!=c){var b=mxUtils.bind(this,function(){EditorUi.enableDrafts&&c.removeDraft();this.getCurrentFile()==c||c.isModified()||(c.getMode()!=App.MODE_DEVICE?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):this.editor.setStatus(""));null!=d&&d()});if(a||null==c.getTitle()||null!=c.invalidFileHandle||null==this.mode)if(null!=c&&c.constructor==LocalFile&&null!=c.fileHandle)this.showSaveFilePicker(mxUtils.bind(this,
function(a,d){c.invalidFileHandle=null;c.fileHandle=a;c.title=d.name;c.desc=d;this.save(d.name,b)}),null,this.createFileSystemOptions(c.getTitle()));else{var g=null!=c.getTitle()?c.getTitle():this.defaultFilename,f=!mxClient.IS_IOS||!navigator.standalone,m=this.mode,n=this.getServiceCount(!0);isLocalStorage&&n++;var e=4>=n?2:6<n?4:3,g=new CreateDialog(this,g,mxUtils.bind(this,function(a,d,e){null!=a&&0<a.length&&(/(\.pdf)$/i.test(a)?this.confirm(mxResources.get("didYouMeanToExportToPdf"),mxUtils.bind(this,
-function(){this.hideDialog();this.actions.get("exportPdf").funct()}),mxUtils.bind(this,function(){e.value=a.split(".").slice(0,-1).join(".");e.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?e.select():document.execCommand("selectAll",!1,null)}),mxResources.get("yes"),mxResources.get("no")):(this.hideDialog(),null==m&&d==App.MODE_DEVICE?null!=c&&"showSaveFilePicker"in window?this.showSaveFilePicker(mxUtils.bind(this,function(a,d){c.fileHandle=a;c.mode=App.MODE_DEVICE;c.title=d.name;
+function(){this.hideDialog();this.actions.get("exportPdf").funct()}),mxUtils.bind(this,function(){e.value=a.split(".").slice(0,-1).join(".");e.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?e.select():document.execCommand("selectAll",!1,null)}),mxResources.get("yes"),mxResources.get("no")):(this.hideDialog(),null==m&&d==App.MODE_DEVICE?null!=c&&EditorUi.nativeFileSupport?this.showSaveFilePicker(mxUtils.bind(this,function(a,d){c.fileHandle=a;c.mode=App.MODE_DEVICE;c.title=d.name;
c.desc=d;this.setMode(App.MODE_DEVICE);this.save(d.name,b)}),mxUtils.bind(this,function(a){"AbortError"!=a.name&&this.handleError(a)}),this.createFileSystemOptions(a)):(this.setMode(App.MODE_DEVICE),this.save(a,b)):"download"==d?(new LocalFile(this,null,a)).save():"_blank"==d?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(this.getFileData(!0)),this.openLink(this.getUrl(window.location.pathname),null,!0)):m!=d?this.pickFolder(d,mxUtils.bind(this,function(c){this.createFile(a,
this.getFileData(/(\.xml)$/i.test(a)||0>a.indexOf(".")||/(\.drawio)$/i.test(a),/(\.svg)$/i.test(a),/(\.html)$/i.test(a)),null,d,b,null==this.mode,c)})):null!=d&&this.save(a,b)))}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),null,null,f,null,!0,e,null,null,null,this.editor.fileExtensions,!1);this.showDialog(g.container,400,n>e?390:270,!0,!0);g.init()}else this.save(c.getTitle(),b)}};
App.prototype.loadTemplate=function(a,d,c,b,g){var f=!1,m=a;this.editor.isCorsEnabledForUrl(m)||(m="t="+(new Date).getTime(),m=PROXY_URL+"?url="+encodeURIComponent(a)+"&base64=1&"+m,f=!0);var n=null!=b?b:a;this.editor.loadUrl(m,mxUtils.bind(this,function(b){try{var e=f?!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(b):atob(b):b,m=/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n);if(m||this.isVisioData(e))m||(n=g?this.isRemoteVisioData(e)?"raw.vss":"raw.vssx":this.isRemoteVisioData(e)?
@@ -11295,7 +11296,7 @@ App.prototype.loadTemplate=function(a,d,c,b,g){var f=!1,m=a;this.editor.isCorsEn
mxUtils.bind(this,function(a){c(a)}));else{if(/(\.png)($|\?)/i.test(n)||this.isPngData(e))e=this.extractGraphModelFromPng(b);d(e)}}catch(p){c(p)}}),c,/(\.png)($|\?)/i.test(n)||/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n),null,null,f)};App.prototype.getPeerForMode=function(a){return a==App.MODE_GOOGLE?this.drive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_GITLAB?this.gitLab:a==App.MODE_DROPBOX?this.dropbox:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_TRELLO?this.trello:null};
App.prototype.createFile=function(a,d,c,b,g,f,m,n,e){b=n?null:null!=b?b:this.mode;if(null!=a&&this.spinner.spin(document.body,mxResources.get("inserting"))){d=null!=d?d:this.emptyDiagramXml;var k=mxUtils.bind(this,function(){this.spinner.stop()}),l=mxUtils.bind(this,function(a){k();null==a&&null==this.getCurrentFile()&&null==this.dialog?this.showSplash():null!=a&&this.handleError(a)});try{b==App.MODE_GOOGLE&&null!=this.drive?(null==m&&null!=this.stateArg&&null!=this.stateArg.folderId&&(m=this.stateArg.folderId),
this.drive.insertFile(a,d,m,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l)):b==App.MODE_GITHUB&&null!=this.gitHub?this.gitHub.insertFile(a,d,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l,!1,m):b==App.MODE_GITLAB&&null!=this.gitLab?this.gitLab.insertFile(a,d,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l,!1,m):b==App.MODE_TRELLO&&null!=this.trello?this.trello.insertFile(a,d,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l,
-!1,m):b==App.MODE_DROPBOX&&null!=this.dropbox?this.dropbox.insertFile(a,d,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l):b==App.MODE_ONEDRIVE&&null!=this.oneDrive?this.oneDrive.insertFile(a,d,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l,!1,m):b==App.MODE_BROWSER?StorageFile.insertFile(this,a,d,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l):!n&&b==App.MODE_DEVICE&&"showSaveFilePicker"in window&&!EditorUi.isElectronApp?(k(),this.showSaveFilePicker(mxUtils.bind(this,
+!1,m):b==App.MODE_DROPBOX&&null!=this.dropbox?this.dropbox.insertFile(a,d,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l):b==App.MODE_ONEDRIVE&&null!=this.oneDrive?this.oneDrive.insertFile(a,d,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l,!1,m):b==App.MODE_BROWSER?StorageFile.insertFile(this,a,d,mxUtils.bind(this,function(a){k();this.fileCreated(a,c,f,g,e)}),l):!n&&b==App.MODE_DEVICE&&EditorUi.nativeFileSupport?(k(),this.showSaveFilePicker(mxUtils.bind(this,
function(a,b){var k=new LocalFile(this,d,b.name,null,a,b);k.saveFile(b.name,!1,mxUtils.bind(this,function(){this.fileCreated(k,c,f,g,e)}),l,!0)}),mxUtils.bind(this,function(a){"AbortError"!=a.name&&l(a)}),this.createFileSystemOptions(a))):(k(),this.fileCreated(new LocalFile(this,d,a,null==b),c,f,g,e))}catch(p){k(),this.handleError(p)}}};
App.prototype.fileCreated=function(a,d,c,b,g){var f=window.location.pathname;null!=d&&0<d.length&&(f+="?libs="+d);null!=g&&0<g.length&&(f+="?clibs="+g);f=this.getUrl(f);a.getMode()!=App.MODE_DEVICE&&(f+="#"+a.getHash());if(this.spinner.spin(document.body,mxResources.get("inserting"))){var m=a.getData(),m=0<m.length?this.editor.extractGraphModel(mxUtils.parseXml(m).documentElement,!0):null,n=window.location.protocol+"//"+window.location.hostname+f,e=m,k=null;null!=m&&/\.svg$/i.test(a.getTitle())&&
(k=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(k.container),e=this.decodeNodeIntoGraph(e,k));a.setData(this.createFileData(m,k,a,n));null!=k&&k.container.parentNode.removeChild(k.container);var l=mxUtils.bind(this,function(){this.spinner.stop()}),p=mxUtils.bind(this,function(){l();var e=this.getCurrentFile();null==c&&null!=e&&(c=!e.isModified()&&null==e.getMode());var k=mxUtils.bind(this,function(){window.openFile=null;this.fileLoaded(a);c&&a.addAllSavedStatus();
@@ -11317,7 +11318,7 @@ mxResources.get("browser")+")":a.constructor==LocalLibrary&&(d+=" ("+mxResources
App.prototype.loadLibraries=function(a,d){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var c=mxUtils.bind(this,function(a,b){b||mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),b=0,g=[],f=mxUtils.bind(this,function(){if(0==b){if(null!=a)for(var c=a.length-1;0<=c;c--)null!=g[c]&&this.loadLibrary(g[c]);null!=d&&d()}});if(null!=a)for(var m=0;m<a.length;m++){var n=encodeURIComponent(decodeURIComponent(a[m]));mxUtils.bind(this,function(a,d){if(null!=
a&&0<a.length&&null==this.pendingLibraries[a]&&null==this.sidebar.palettes[a]){b++;var e=mxUtils.bind(this,function(c){delete this.pendingLibraries[a];g[d]=c;b--;f()}),k=mxUtils.bind(this,function(d){c(a,d);b--;f()});this.pendingLibraries[a]=!0;var m=a.substring(0,1);if("L"==m)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var b=decodeURIComponent(a.substring(1));StorageFile.getFileContent(this,b,mxUtils.bind(this,function(a){".scratchpad"==b&&null==a&&
(a=this.emptyLibraryXml);null!=a?e(new StorageLibrary(this,a,b)):k()}),k)}catch(x){k()}}),0);else if("U"==m){var n=decodeURIComponent(a.substring(1));this.isOffline()||this.loadTemplate(n,mxUtils.bind(this,function(a){null!=a&&0<a.length?e(new UrlLibrary(this,a,n)):k()}),function(){k()},null,!0)}else if("R"==m){m=decodeURIComponent(a.substring(1));try{var m=JSON.parse(m),u={id:m[0],title:m[1],downloadUrl:m[2]};this.remoteInvoke("getFileContent",[u.downloadUrl],null,mxUtils.bind(this,function(a){try{e(new RemoteLibrary(this,
-a,u))}catch(x){k()}}),function(){k()})}catch(y){k()}}else if("S"==m&&null!=this.loadDesktopLib)try{this.loadDesktopLib(decodeURIComponent(a.substring(1)),function(a){e(a)},k)}catch(y){k()}else{var v=null;"G"==m?null!=this.drive&&null!=this.drive.user&&(v=this.drive):"H"==m?null!=this.gitHub&&null!=this.gitHub.getUser()&&(v=this.gitHub):"T"==m?null!=this.trello&&this.trello.isAuthorized()&&(v=this.trello):"D"==m?null!=this.dropbox&&null!=this.dropbox.getUser()&&(v=this.dropbox):"W"==m&&null!=this.oneDrive&&
+a,u))}catch(x){k()}}),function(){k()})}catch(A){k()}}else if("S"==m&&null!=this.loadDesktopLib)try{this.loadDesktopLib(decodeURIComponent(a.substring(1)),function(a){e(a)},k)}catch(A){k()}else{var v=null;"G"==m?null!=this.drive&&null!=this.drive.user&&(v=this.drive):"H"==m?null!=this.gitHub&&null!=this.gitHub.getUser()&&(v=this.gitHub):"T"==m?null!=this.trello&&this.trello.isAuthorized()&&(v=this.trello):"D"==m?null!=this.dropbox&&null!=this.dropbox.getUser()&&(v=this.dropbox):"W"==m&&null!=this.oneDrive&&
null!=this.oneDrive.getUser()&&(v=this.oneDrive);null!=v?v.getLibrary(decodeURIComponent(a.substring(1)),mxUtils.bind(this,function(a){try{e(a)}catch(x){k()}}),function(a){k()}):k(!0)}}})(n,m)}f()}};
App.prototype.updateButtonContainer=function(){if(null!=this.buttonContainer){var a=this.getCurrentFile();this.commentsSupported()&&"1"!=urlParams.sketch?null==this.commentButton&&(this.commentButton=document.createElement("a"),this.commentButton.setAttribute("title",mxResources.get("comments")),this.commentButton.className="geToolbarButton",this.commentButton.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;float:left;cursor:pointer;width:24px;height:24px;background-size:24px 24px;background-position:center center;background-repeat:no-repeat;background-image:url("+
Editor.commentImage+");","atlas"==uiTheme?(this.commentButton.style.marginRight="10px",this.commentButton.style.marginTop="-3px"):this.commentButton.style.marginTop="min"==uiTheme?"1px":"-5px",mxEvent.addListener(this.commentButton,"click",mxUtils.bind(this,function(){this.actions.get("comments").funct()})),this.buttonContainer.appendChild(this.commentButton),"dark"==uiTheme||"atlas"==uiTheme)&&(this.commentButton.style.filter="invert(100%)"):null!=this.commentButton&&(this.commentButton.parentNode.removeChild(this.commentButton),
@@ -11394,113 +11395,113 @@ var c=document.createElement("img");mxUtils.setOpacity(c,50);c.style.height="16p
Menus.prototype.init=function(){function a(a,b,c){this.ui=a;this.previousExtFonts=this.extFonts=b;this.prevCustomFonts=this.customFonts=c}d.apply(this,arguments);var b=this.editorUi,g=b.editor.graph,f=mxUtils.bind(g,g.isEnabled),m=("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&mxClient.IS_SVG&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode),n=("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&mxClient.IS_SVG&&
(null==document.documentMode||9<document.documentMode),e=("www.draw.io"==window.location.hostname||"test.draw.io"==window.location.hostname||"drive.draw.io"==window.location.hostname||"app.diagrams.net"==window.location.hostname)&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&!mxClient.IS_IOS&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode),k="1"==urlParams.tr&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode);mxClient.IS_SVG||
b.isOffline()||((new Image).src=IMAGE_PATH+"/help.png");"1"==urlParams.noFileMenu&&(this.defaultMenuItems=this.defaultMenuItems.filter(function(a){return"file"!=a}));b.actions.addAction("new...",function(){var a=b.isOffline(),c=new NewDialog(b,a,!(b.mode==App.MODE_DEVICE&&"chooseFileSystemEntries"in window));b.showDialog(c.container,a?350:620,a?70:440,!0,!0,function(a){a&&null==b.getCurrentFile()&&b.showSplash()});c.init()});b.actions.put("insertTemplate",new Action(mxResources.get("template")+"...",
-function(){var a=new NewDialog(b,null,!1,function(a){b.hideDialog();if(null!=a){var c=b.editor.graph.getFreeInsertPoint();g.setSelectionCells(b.importXml(a,Math.max(c.x,20),Math.max(c.y,20),!0));g.scrollCellToVisible(g.getSelectionCell())}},null,null,null,null,null,null,null,null,null,null,!1,mxResources.get("insert"));b.showDialog(a.container,620,440,!0,!0)})).isEnabled=f;var l=b.actions.addAction("points",function(){b.editor.graph.view.setUnit(mxConstants.POINTS)});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.editor.graph.view.unit==
-mxConstants.POINTS});l=b.actions.addAction("inches",function(){b.editor.graph.view.setUnit(mxConstants.INCHES)});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.INCHES});l=b.actions.addAction("millimeters",function(){b.editor.graph.view.setUnit(mxConstants.MILLIMETERS)});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.MILLIMETERS});this.put("units",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,
-["points","millimeters"],b)})));l=b.actions.addAction("ruler",function(){mxSettings.setRulerOn(!mxSettings.isRulerOn());mxSettings.save();null!=b.ruler?(b.ruler.destroy(),b.ruler=null):b.ruler=new mxDualRuler(b,b.editor.graph.view.unit);b.refresh()});l.setEnabled(b.canvasSupported&&9!=document.documentMode);l.setToggleAction(!0);l.setSelectedCallback(function(){return null!=b.ruler});l=b.actions.addAction("fullscreen",function(){null==document.fullscreenElement?document.body.requestFullscreen():document.exitFullscreen()});
-l.visible=document.fullscreenEnabled&&null!=document.body.requestFullscreen;l.setToggleAction(!0);l.setSelectedCallback(function(){return null!=document.fullscreenElement});b.actions.addAction("properties...",function(){var a=new FilePropertiesDialog(b);b.showDialog(a.container,320,120,!0,!0);a.init()}).isEnabled=f;window.mxFreehand&&(b.actions.put("insertFreehand",new Action(mxResources.get("freehand")+"...",function(a){g.isEnabled()&&(null==this.freehandWindow&&(this.freehandWindow=new FreehandWindow(b,
-document.body.offsetWidth-420,102,176,104)),g.freehand.isDrawing()?g.freehand.stopDrawing():g.freehand.startDrawing(),this.freehandWindow.window.setVisible(g.freehand.isDrawing()))})).isEnabled=function(){return f()&&mxClient.IS_SVG});b.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var a=document.createElement("div");a.style.whiteSpace="nowrap";var c=null==b.pages||1>=b.pages.length,d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatXml"));d.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:4px";a.appendChild(d);var e=b.addCheckbox(a,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),f=b.addCheckbox(a,mxResources.get("compressed"),!0),k=b.addCheckbox(a,mxResources.get("allPages"),!c,c);k.style.marginBottom="16px";mxEvent.addListener(e,"change",function(){e.checked?k.setAttribute("disabled","disabled"):k.removeAttribute("disabled")});a=new CustomDialog(b,a,mxUtils.bind(this,function(){b.downloadFile("xml",!f.checked,null,
-!e.checked,c||!k.checked)}),null,mxResources.get("export"));b.showDialog(a.container,300,180,!0,!0)}));b.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){b.showPublishLinkDialog(mxResources.get("url"),!0,null,null,function(a,c,d,e,f,g){a=new EmbedDialog(b,b.createLink(a,c,d,e,f,g,null,!0));b.showDialog(a.container,440,240,!0,!0);a.init()})}));b.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&
-b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();b.showHtmlDialog(mxResources.get("export"),null,a,function(a,c,d,e,f,g,k,m,l,n){b.createHtml(a,c,d,e,f,g,k,m,l,n,mxUtils.bind(this,function(a,c){var d=b.getBaseFilename(k),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+a+"\n"+c+"\n</body>\n</html>";b.saveData(d+".html","html",
-e,"text/html")}))})})}));b.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if(EditorUi.isElectronApp||!b.isOffline()&&!b.printPdfExport){var a=null==b.pages||1>=b.pages.length,c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatPdf"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(d);var e=function(){f!=this&&this.checked?(l.removeAttribute("disabled"),
-l.checked=!g.pageVisible):(l.setAttribute("disabled","disabled"),l.checked=!1)},d=180;if(b.pdfPageExport&&!a){var f=b.addRadiobox(c,"pages",mxResources.get("allPages"),!0),k=b.addRadiobox(c,"pages",mxResources.get("currentPage"),!1),m=b.addRadiobox(c,"pages",mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),l=b.addCheckbox(c,mxResources.get("crop"),!1,!0),n=b.addCheckbox(c,mxResources.get("grid"),!1,!1);mxEvent.addListener(f,"change",e);mxEvent.addListener(k,"change",e);mxEvent.addListener(m,
-"change",e);d+=60}else m=b.addCheckbox(c,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),l=b.addCheckbox(c,mxResources.get("crop"),!g.pageVisible||!b.pdfPageExport,!b.pdfPageExport),n=b.addCheckbox(c,mxResources.get("grid"),!1,!1),b.pdfPageExport||mxEvent.addListener(m,"change",e);var e=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&"draw.io"==b.getServiceName(),p=null,q=null;if(EditorUi.isElectronApp||e)q=b.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),d+=30;e&&(p=b.addCheckbox(c,
-mxResources.get("transparentBackground"),!1),d+=30);c=new CustomDialog(b,c,mxUtils.bind(this,function(){b.downloadFile("pdf",null,null,!m.checked,a?!0:!f.checked,!l.checked,null!=p&&p.checked,null,null,n.checked,null!=q&&q.checked)}),null,mxResources.get("export"));b.showDialog(c.container,300,d,!0,!0)}else b.showDialog((new PrintDialog(b,mxResources.get("formatPdf"))).container,360,null!=b.pages&&1<b.pages.length&&(b.editor.editable||"1"!=urlParams["hide-pages"])?450:370,!0,!0)}));b.actions.addAction("open...",
-function(){b.pickFile()});b.actions.addAction("close",function(){function a(){null!=c&&c.removeDraft();b.fileLoaded(null)}var c=b.getCurrentFile();null!=c&&c.isModified()?b.confirm(mxResources.get("allChangesLost"),null,a,mxResources.get("cancel"),mxResources.get("discardChanges")):a()});b.actions.addAction("editShape...",mxUtils.bind(this,function(){g.getSelectionCells();if(1==g.getSelectionCount()){var a=g.getSelectionCell(),c=g.view.getState(a);null!=c&&null!=c.shape&&null!=c.shape.stencil&&(a=
-new EditShapeDialog(b,a,mxResources.get("editShape")+":",630,400),b.showDialog(a.container,640,480,!0,!1),a.init())}}));b.actions.addAction("revisionHistory...",function(){b.isRevisionHistorySupported()?b.spinner.spin(document.body,mxResources.get("loading"))&&b.getRevisions(mxUtils.bind(this,function(a,c){b.spinner.stop();var d=new RevisionDialog(b,a,c);b.showDialog(d.container,640,480,!0,!0);d.init()}),mxUtils.bind(this,function(a){b.handleError(a)})):b.showError(mxResources.get("error"),mxResources.get("notAvailable"),
-mxResources.get("ok"))});b.actions.addAction("createRevision",function(){b.actions.get("save").funct()},null,null,Editor.ctrlKey+"+S");l=b.actions.addAction("synchronize",function(){b.synchronizeCurrentFile("none"==DrawioFile.SYNC)},null,null,"Alt+Shift+S");"none"==DrawioFile.SYNC&&(l.label=mxResources.get("refresh"));b.actions.addAction("upload...",function(){var a=b.getCurrentFile();null!=a&&(window.drawdata=b.getFileData(),a=null!=a.getTitle()?a.getTitle():b.defaultFilename,b.openLink(window.location.protocol+
-"//"+window.location.host+"/?create=drawdata&"+(b.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(a),null,!0))});"undefined"!==typeof MathJax&&(l=b.actions.addAction("mathematicalTypesetting",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.mathEnabled=!b.isMathEnabled();g.model.execute(a)}),l.setToggleAction(!0),l.setSelectedCallback(function(){return b.isMathEnabled()}),l.isEnabled=f);isLocalStorage&&(l=b.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());
-mxSettings.save()}),l.setToggleAction(!0),l.setSelectedCallback(function(){return mxSettings.getShowStartScreen()}));var p=b.actions.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});p.setToggleAction(!0);p.setSelectedCallback(function(){return p.isEnabled()&&b.editor.autosave});b.actions.addAction("editGeometry...",function(){for(var a=g.getSelectionCells(),c=[],d=0;d<a.length;d++)g.getModel().isVertex(a[d])&&c.push(a[d]);0<c.length&&(a=new EditGeometryDialog(b,c),b.showDialog(a.container,
-200,270,!0,!0),a.init())},null,null,Editor.ctrlKey+"+Shift+M");var q=null;b.actions.addAction("copyStyle",function(){g.isEnabled()&&!g.isSelectionEmpty()&&(q=g.copyStyle(g.getSelectionCell()))},null,null,Editor.ctrlKey+"+Shift+C");b.actions.addAction("pasteStyle",function(){g.isEnabled()&&!g.isSelectionEmpty()&&null!=q&&g.pasteStyle(q,g.getSelectionCells())},null,null,Editor.ctrlKey+"+Shift+V");b.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!b.isOffline()){var a=
-new BackgroundImageDialog(b,function(a){b.setBackgroundImage(a)});b.showDialog(a.container,320,170,!0,!0);a.init()}}));b.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){b.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://www.diagrams.net/doc/faq/export-diagram",mxUtils.bind(this,function(a,c,d,e,f,g,k,m,l,n,p,q,t){a=parseInt(a);!isNaN(a)&&0<a&&b.exportSvg(a/100,c,d,e,f,g,k,!m,!1,n,q,t)}),!0,null,"svg",!0)}));b.actions.put("exportPng",
-new Action(mxResources.get("formatPng")+"...",function(){b.isExportToCanvas()?b.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://www.diagrams.net/doc/faq/export-diagram",mxUtils.bind(this,function(a,c,d,e,f,g,k,m,l,n,p,q,t){a=parseInt(a);!isNaN(a)&&0<a&&b.exportImage(a/100,c,d,e,f,k,!m,!1,null,p,null,q,t)}),!0,!0,"png",!0):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||b.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(a,c,d,e,
-f){b.downloadFile(c?"xmlpng":"png",null,null,a,null,null,d,e,f)}),!1,!0)}));b.actions.put("exportJpg",new Action(mxResources.get("formatJpg")+"...",function(){b.isExportToCanvas()?b.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://www.diagrams.net/doc/faq/export-diagram",mxUtils.bind(this,function(a,c,d,e,f,g,k,m,l,n,p,q,t){a=parseInt(a);!isNaN(a)&&0<a&&b.exportImage(a/100,!1,d,e,!1,k,!m,!1,"jpeg",p,null,q,t)}),!0,!1,"jpeg",!0):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||
-b.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(a,c,d,e,f){b.downloadFile("jpeg",null,null,a,null,null,null,e,f)}),!0,!0)}));l=b.actions.addAction("copyAsImage",mxUtils.bind(this,function(){var a=mxUtils.sortCells(g.model.getTopmostCells(g.getSelectionCells())),c=mxUtils.getXml(0==a.length?b.editor.getGraphXml():g.encodeCells(a));b.copyImage(a,c)}));l.visible=Editor.enableNativeCipboard&&b.isExportToCanvas()&&!mxClient.IS_SF;l=b.actions.put("shadowVisible",new Action(mxResources.get("shadow"),
-function(){g.setShadowVisible(!g.shadowVisible)}));l.setToggleAction(!0);l.setSelectedCallback(function(){return g.shadowVisible});b.actions.put("about",new Action(mxResources.get("about")+" "+EditorUi.VERSION+"...",function(){b.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.alert(b.editor.appName+" "+EditorUi.VERSION):b.openLink("https://www.diagrams.net/")}));b.actions.addAction("support...",function(){EditorUi.isElectronApp?b.openLink("https://github.com/jgraph/drawio-desktop/wiki/Getting-Support"):
-b.openLink("https://github.com/jgraph/drawio/wiki/Getting-Support")});b.actions.addAction("exportOptionsDisabled...",function(){b.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});b.actions.addAction("keyboardShortcuts...",function(){!mxClient.IS_SVG||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.openLink("https://viewer.diagrams.net/#Uhttps%3A%2F%2Fviewer.diagrams.net%2Fshortcuts.svg"):b.openLink("shortcuts.svg")});b.actions.addAction("feedback...",
-function(){var a=new FeedbackDialog(b);b.showDialog(a.container,610,360,!0,!1);a.init()});b.actions.addAction("quickStart...",function(){b.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});b.actions.addAction("forkme",function(){EditorUi.isElectronApp?b.openLink("https://github.com/jgraph/drawio-desktop"):b.openLink("https://github.com/jgraph/drawio")}).label="Fork me on GitHub...";b.actions.addAction("downloadDesktop...",function(){b.openLink("https://get.diagrams.net/")});l=b.actions.addAction("tags...",
-mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=new TagsWindow(b,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,
-function(){return null!=this.tagsWindow&&this.tagsWindow.window.isVisible()}));l=b.actions.addAction("findReplace...",mxUtils.bind(this,function(a,c){var d=g.isEnabled()&&(null==c||!mxEvent.isShiftDown(c)),e=d?"findReplace":"find",f=e+"Window";if(null==this[f]){var k=d?"min"==uiTheme?330:300:240;this[f]=new FindWindow(b,document.body.offsetWidth-(k+20),100,k,d?"min"==uiTheme?304:288:170,d);this[f].window.addListener("show",function(){b.fireEvent(new mxEventObject(e))});this[f].window.addListener("hide",
-function(){b.fireEvent(new mxEventObject(e))});this[f].window.setVisible(!0)}else this[f].window.setVisible(!this[f].window.isVisible())}),null,null,Editor.ctrlKey+"+F");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){var a=g.isEnabled()?"findReplaceWindow":"findWindow";return null!=this[a]&&this[a].window.isVisible()}));b.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){var a=null==b.pages||1>=b.pages.length;if(a)b.exportVisio();else{var c=
-document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatVsdx"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(d);var e=b.addCheckbox(c,mxResources.get("allPages"),!a,a);e.style.marginBottom="16px";a=new CustomDialog(b,c,mxUtils.bind(this,function(){b.exportVisio(!e.checked)}),null,mxResources.get("export"));b.showDialog(a.container,300,110,!0,!0)}}));isLocalStorage&&null!=localStorage&&
-"1"!=urlParams.embed&&b.actions.addAction("configuration...",function(){var a=localStorage.getItem(Editor.configurationKey),c=[[mxResources.get("reset"),function(a,c){b.confirm(mxResources.get("areYouSure"),function(){try{localStorage.removeItem(Editor.configurationKey),mxEvent.isShiftDown(a)&&(localStorage.removeItem(".drawio-config"),localStorage.removeItem(".mode")),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))}catch(C){b.handleError(C)}})}]];EditorUi.isElectronApp||c.push([mxResources.get("link"),
-function(a,c){if(0<c.value.length)try{var d=JSON.parse(c.value),e=window.location.protocol+"//"+window.location.host+"/"+b.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(d)),f=new EmbedDialog(b,e);b.showDialog(f.container,440,240,!0);f.init()}catch(L){b.handleError(L)}else b.handleError({message:mxResources.get("invalidInput")})}]);a=new TextareaDialog(b,mxResources.get("configuration")+":",null!=a?JSON.stringify(JSON.parse(a),null,2):"",function(a){if(null!=a)try{if(0<a.length){var c=JSON.parse(a);
-localStorage.setItem(Editor.configurationKey,JSON.stringify(c))}else localStorage.removeItem(Editor.configurationKey);b.hideDialog();b.alert(mxResources.get("restartForChangeRequired"))}catch(C){b.handleError(C)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/configure-diagram-editor",c);a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!1);a.init()});if(mxClient.IS_CHROMEAPP||isLocalStorage){this.put("language",new Menu(mxUtils.bind(this,
-function(a,c){var d=mxUtils.bind(this,function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=a.addItem(e,null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);b.alert(mxResources.get("restartForChangeRequired"))}),c),(d==mxLanguage||""==d&&null==mxLanguage)&&a.addCheckmark(f,Editor.checkmarkImage));return f});d("");a.addSeparator(c);for(var e in mxLanguageMap)d(e)})));
-var t=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=t.apply(this,arguments);if(null!=b&&"1"!=urlParams.noLangIcon){var c=this.get("language");if(null!=c){c=b.addMenu("",c.funct);c.setAttribute("title",mxResources.get("language"));c.style.width="16px";c.style.paddingTop="2px";c.style.paddingLeft="4px";c.style.zIndex="1";c.style.position="absolute";c.style.display="block";c.style.cursor="pointer";c.style.right="17px";"atlas"==uiTheme?(c.style.top="6px",c.style.right=
-"15px"):c.style.top="min"==uiTheme?"2px":"0px";var d=document.createElement("div");d.style.backgroundImage="url("+Editor.globeImage+")";d.style.backgroundPosition="center center";d.style.backgroundRepeat="no-repeat";d.style.backgroundSize="19px 19px";d.style.position="absolute";d.style.height="19px";d.style.width="19px";d.style.marginTop="2px";d.style.zIndex="1";c.appendChild(d);mxUtils.setOpacity(c,40);if("atlas"==uiTheme||"dark"==uiTheme)c.style.opacity="0.85",c.style.filter="invert(100%)";document.body.appendChild(c)}}return b}}b.customLayoutConfig=
-[{layout:"mxHierarchicalLayout",config:{orientation:"west",intraCellSpacing:30,interRankCellSpacing:100,interHierarchySpacing:60,parallelEdgeSpacing:10}}];b.actions.addAction("runLayout",function(){var a=new TextareaDialog(b,"Run Layouts:",JSON.stringify(b.customLayoutConfig,null,2),function(a){if(0<a.length)try{var c=JSON.parse(a);b.executeLayoutList(c);b.customLayoutConfig=c}catch(D){b.handleError(D),null!=window.console&&console.error(D)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/apply-layouts");
-a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!0);a.init()});var l=this.get("layout"),u=l.funct;l.funct=function(a,c){u.apply(this,arguments);a.addItem(mxResources.get("orgChart"),null,function(){function a(){"undefined"!==typeof mxOrgChartLayout||b.loadingOrgChart||b.isOffline(!0)?g():b.spinner.spin(document.body,mxResources.get("loading"))&&(b.loadingOrgChart=!0,"1"==urlParams.dev?mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",
-function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",g)})})}):mxscript("js/extensions.min.js",g))}var c=null,d=20,e=20,f=!0,g=function(){b.loadingOrgChart=!1;b.spinner.stop();if("undefined"!==typeof mxOrgChartLayout&&null!=c&&f){var a=b.editor.graph,g=new mxOrgChartLayout(a,c,d,e),k=a.getDefaultParent();1<a.model.getChildCount(a.getSelectionCell())&&(k=a.getSelectionCell());g.execute(k);f=!1}},k=document.createElement("div"),m=document.createElement("div");
-m.style.marginTop="6px";m.style.display="inline-block";m.style.width="140px";mxUtils.write(m,mxResources.get("orgChartType")+": ");k.appendChild(m);var l=document.createElement("select");l.style.width="200px";l.style.boxSizing="border-box";for(var m=[mxResources.get("linear"),mxResources.get("hanger2"),mxResources.get("hanger4"),mxResources.get("fishbone1"),mxResources.get("fishbone2"),mxResources.get("1ColumnLeft"),mxResources.get("1ColumnRight"),mxResources.get("smart")],n=0;n<m.length;n++){var p=
-document.createElement("option");mxUtils.write(p,m[n]);p.value=n;2==n&&p.setAttribute("selected","selected");l.appendChild(p)}mxEvent.addListener(l,"change",function(){c=l.value});k.appendChild(l);m=document.createElement("div");m.style.marginTop="6px";m.style.display="inline-block";m.style.width="140px";mxUtils.write(m,mxResources.get("parentChildSpacing")+": ");k.appendChild(m);var z=document.createElement("input");z.type="number";z.value=d;z.style.width="200px";z.style.boxSizing="border-box";k.appendChild(z);
-mxEvent.addListener(z,"change",function(){d=z.value});m=document.createElement("div");m.style.marginTop="6px";m.style.display="inline-block";m.style.width="140px";mxUtils.write(m,mxResources.get("siblingSpacing")+": ");k.appendChild(m);var q=document.createElement("input");q.type="number";q.value=e;q.style.width="200px";q.style.boxSizing="border-box";k.appendChild(q);mxEvent.addListener(q,"change",function(){e=q.value});k=new CustomDialog(b,k,function(){null==c&&(c=2);a()});b.showDialog(k.container,
-355,125,!0,!0)},c,null,f());a.addSeparator(c);a.addItem(mxResources.get("parallels"),null,mxUtils.bind(this,function(){var a=new mxParallelEdgeLayout(g);a.checkOverlap=!0;a.spacing=20;b.executeLayout(function(){a.execute(g.getDefaultParent(),g.isSelectionEmpty()?null:g.getSelectionCells())},!1)}),c);a.addSeparator(c);b.menus.addMenuItem(a,"runLayout",c,null,null,mxResources.get("apply")+"...")};this.put("help",new Menu(mxUtils.bind(this,function(a,c){if(!mxClient.IS_CHROMEAPP&&b.isOffline())this.addMenuItems(a,
-["about"],c);else{var d=a.addItem("Search:",null,null,c,null,null,!1);d.style.backgroundColor=Editor.isDarkMode()?"#505759":"whiteSmoke";d.style.cursor="default";var e=document.createElement("input");e.setAttribute("type","text");e.setAttribute("size","25");e.style.marginLeft="8px";mxEvent.addListener(e,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(e.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://www.google.com/search?q=site%3Adiagrams.net+inurl%3A%2Fdoc%2Ffaq%2F+"+
-encodeURIComponent(b)),e.value="",EditorUi.logEvent({category:"SEARCH-HELP",action:"search",label:b}),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0)):27==a.keyCode&&(e.value="")}));d.firstChild.nextSibling.appendChild(e);mxEvent.addGestureListeners(e,function(a){document.activeElement!=e&&e.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){e.focus()},0);EditorUi.isElectronApp?(console.log("electron help menu"),
-this.addMenuItems(a,"- keyboardShortcuts quickStart support - forkme - about".split(" "),c)):this.addMenuItems(a,"- keyboardShortcuts quickStart support - forkme downloadDesktop - about".split(" "),c)}"1"==urlParams.test&&(a.addSeparator(c),this.addSubmenu("testDevelop",a,c))})));mxResources.parse("diagramLanguage=Diagram Language");b.actions.addAction("diagramLanguage...",function(){var a=prompt("Language Code",Graph.diagramLanguage||"");null!=a&&(Graph.diagramLanguage=0<a.length?a:null,g.refresh())});
-if("1"==urlParams.test){mxResources.parse("testDevelop=Develop");mxResources.parse("showBoundingBox=Show bounding box");mxResources.parse("createSidebarEntry=Create Sidebar Entry");mxResources.parse("testCheckFile=Check File");mxResources.parse("testDiff=Diff/Sync");mxResources.parse("testInspect=Inspect");mxResources.parse("testShowConsole=Show Console");mxResources.parse("testXmlImageExport=XML Image Export");mxResources.parse("testDownloadRtModel=Export RT model");mxResources.parse("testImportRtModel=Import RT model");
-b.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){if(!g.isSelectionEmpty()){var a=g.cloneCells(g.getSelectionCells()),c=g.getBoundingBoxFromGeometry(a),a=g.moveCells(a,-c.x,-c.y);b.showTextDialog("Create Sidebar Entry","this.addDataEntry('tag1 tag2', "+c.width+", "+c.height+", 'The Title', '"+Graph.compress(mxUtils.getXml(g.encodeCells(a)))+"'),")}}));b.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=g.getGraphBounds(),b=g.view.translate,c=g.view.scale;g.insertVertex(g.getDefaultParent(),
-null,"",a.x/c-b.x,a.y/c-b.y,a.width/c,a.height/c,"fillColor=none;strokeColor=red;")}));b.actions.addAction("testCheckFile",mxUtils.bind(this,function(){var a=null!=b.pages&&null!=b.getCurrentFile()?b.getCurrentFile().getAnonymizedXmlForPages(b.pages):"",a=new TextareaDialog(b,"Paste Data:",a,function(a){if(0<a.length)try{var c=function(a){function b(a){if(null==n[a]){if(n[a]=!0,null!=e[a]){for(;0<e[a].length;){var d=e[a].pop();b(d)}delete e[a]}}else mxLog.debug(c+": Visited: "+a)}var c=a.parentNode.id,
-d=a.childNodes;a={};for(var e={},f=null,g={},k=0;k<d.length;k++){var m=d[k];if(null!=m.id&&0<m.id.length)if(null==a[m.id]){a[m.id]=m.id;var l=m.getAttribute("parent");null==l?null!=f?mxLog.debug(c+": Multiple roots: "+m.id):f=m.id:(null==e[l]&&(e[l]=[]),e[l].push(m.id))}else g[m.id]=m.id}0<Object.keys(g).length?(d=c+": "+Object.keys(g).length+" Duplicates: "+Object.keys(g).join(", "),mxLog.debug(d+" (see console)")):mxLog.debug(c+": Checked");var n={};null==f?mxLog.debug(c+": No root"):(b(f),Object.keys(n).length!=
-Object.keys(a).length&&(mxLog.debug(c+": Invalid tree: (see console)"),console.log(c+": Invalid tree",e)))};"<"!=a.charAt(0)&&(a=Graph.decompress(a),mxLog.debug("See console for uncompressed XML"),console.log("xml",a));var d=mxUtils.parseXml(a),e=b.getPagesForNode(d.documentElement,"mxGraphModel");if(null!=e&&0<e.length)try{var f=b.getHashValueForPages(e);mxLog.debug("Checksum: ",f)}catch(L){mxLog.debug("Error: ",L.message)}else mxLog.debug("No pages found for checksum");var g=d.getElementsByTagName("root");
-for(a=0;a<g.length;a++)c(g[a]);mxLog.show()}catch(L){b.handleError(L),null!=window.console&&console.error(L)}});a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!0);a.init()}));var v=null;b.actions.addAction("testDiff",mxUtils.bind(this,function(){if(null!=b.pages){var a=new TextareaDialog(b,"Diff/Sync:","",function(a){var c=b.getCurrentFile();if(0<a.length&&null!=c)try{var d=JSON.parse(a);c.patch([d],null,!0);b.hideDialog()}catch(C){b.handleError(C)}},
-null,"Close",null,null,null,!0,null,"Patch",null,[["Snapshot",function(c,d){v=b.getPagesForNode(mxUtils.parseXml(b.getFileData(!0)).documentElement);a.textarea.value="Snapshot updated "+(new Date).toLocaleString()}],["Diff",function(c,d){try{a.textarea.value=JSON.stringify(b.diffPages(v,b.pages),null,2)}catch(D){b.handleError(D)}}]]);a.textarea.style.width="600px";a.textarea.style.height="380px";null==v?(v=b.getPagesForNode(mxUtils.parseXml(b.getFileData(!0)).documentElement),a.textarea.value="Snapshot created "+
-(new Date).toLocaleString()):a.textarea.value=JSON.stringify(b.diffPages(v,b.pages),null,2);b.showDialog(a.container,620,460,!0,!0);a.init()}else b.alert("No pages")}));b.actions.addAction("testInspect",mxUtils.bind(this,function(){console.log(b,g.getModel())}));b.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=g.getGraphBounds(),c=g.view.scale,d=mxUtils.createXmlDocument(),e=d.createElement("output");d.appendChild(e);d=new mxXmlCanvas2D(e);d.translate(Math.floor((1-
-b.x)/c),Math.floor((1-b.y)/c));d.scale(1/c);var f=0,k=d.save;d.save=function(){f++;k.apply(this,arguments)};var m=d.restore;d.restore=function(){f--;m.apply(this,arguments)};var l=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,f);l.apply(this,arguments);mxLog.debug("leaving shape",a,f)};a.drawState(g.getView().getState(g.model.root),d);mxLog.show();mxLog.debug(mxUtils.getXml(e));mxLog.debug("stateCounter",f)}));b.actions.addAction("testShowConsole",function(){mxLog.isVisible()?
-mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1});this.put("testDevelop",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"createSidebarEntry showBoundingBox - testCheckFile testDiff - testInspect - testXmlImageExport - testShowConsole".split(" "),b)})))}b.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!b.isOffline()?b.showDialog((new MoreShapesDialog(b,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):b.showDialog((new MoreShapesDialog(b,
-!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});b.actions.put("createShape",new Action(mxResources.get("shape")+"...",function(a){g.isEnabled()&&(a=new mxCell("",new mxGeometry(0,0,120,120),b.defaultCustomShapeStyle),a.vertex=!0,a=new EditShapeDialog(b,a,mxResources.get("editShape")+":",630,400),b.showDialog(a.container,640,480,!0,!1),a.init())})).isEnabled=f;b.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&
-b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();b.showHtmlDialog(mxResources.get("create"),"https://www.diagrams.net/doc/faq/embed-html-options",a,function(a,c,d,e,f,g,k,m,l,n){b.createHtml(a,c,d,e,f,g,k,m,l,n,mxUtils.bind(this,function(a,c){var d=new EmbedDialog(b,a+"\n"+c,null,null,function(){var d=window.open(),e=d.document;if(null!=e){"CSS1Compat"===document.compatMode&&e.writeln("<!DOCTYPE html>");e.writeln("<html>");e.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+
-'</title><meta charset="utf-8"></head>');e.writeln("<body>");e.writeln(a);var f=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;f&&e.writeln(c);e.writeln("</body>");e.writeln("</html>");e.close();if(!f){var g=d.document.createElement("div");g.marginLeft="26px";g.marginTop="26px";mxUtils.write(g,mxResources.get("updatingDocument"));f=d.document.createElement("img");f.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");f.style.marginLeft=
-"6px";g.appendChild(f);d.document.body.insertBefore(g,d.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];e.body.appendChild(a);g.parentNode.removeChild(g)},20)}}else b.handleError({message:mxResources.get("errorUpdatingPreview")})});b.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));b.actions.put("liveImage",new Action("Live image...",function(){var a=b.getCurrentFile();null!=a&&
-b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(c){b.spinner.stop();null!=c?(c=new EmbedDialog(b,'<img src="'+(a.constructor!=DriveFile?c:"https://drive.google.com/uc?id="+a.getId())+'"/>'),b.showDialog(c.container,440,240,!0,!0),c.init()):b.handleError({message:mxResources.get("invalidPublicUrl")})})}));b.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){b.showEmbedImageDialog(function(a,c,d,e,f,g){b.spinner.spin(document.body,
-mxResources.get("loading"))&&b.createEmbedImage(a,c,d,e,f,g,function(a){b.spinner.stop();a=new EmbedDialog(b,a);b.showDialog(a.container,440,240,!0,!0);a.init()},function(a){b.spinner.stop();b.handleError(a)})},mxResources.get("image"),mxResources.get("retina"),b.isExportToCanvas())}));b.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){b.showEmbedImageDialog(function(a,c,d,e,f,g){b.spinner.spin(document.body,mxResources.get("loading"))&&b.createEmbedSvg(a,c,d,e,f,g,
-function(a){b.spinner.stop();a=new EmbedDialog(b,a);b.showDialog(a.container,440,240,!0,!0);a.init()},function(a){b.spinner.stop();b.handleError(a)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://www.diagrams.net/doc/faq/embed-svg.html")}));b.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var a=g.getGraphBounds();b.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil(a.height/g.view.scale)+2,function(a,c,d,e,f,g,k,m){b.spinner.spin(document.body,
-mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(l){b.spinner.stop();l=new EmbedDialog(b,'<iframe frameborder="0" style="width:'+k+";height:"+m+';" src="'+b.createLink(a,c,d,e,f,g,l)+'"></iframe>');b.showDialog(l.container,440,240,!0,!0);l.init()})},!0)}));b.actions.put("embedNotion",new Action(mxResources.get("notion")+"...",function(){b.showPublishLinkDialog(mxResources.get("notion"),null,null,null,function(a,c,d,e,f,g,k,m){b.spinner.spin(document.body,mxResources.get("loading"))&&
-b.getPublicUrl(b.getCurrentFile(),function(k){b.spinner.stop();k=new EmbedDialog(b,b.createLink(a,c,d,e,f,g,k,null,["border=0"],!0));b.showDialog(k.container,440,240,!0,!0);k.init()})},!0)}));b.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){b.showPublishLinkDialog(null,null,null,null,function(a,c,d,e,f,g){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(k){b.spinner.stop();k=new EmbedDialog(b,b.createLink(a,c,d,e,f,
-g,k));b.showDialog(k.container,440,240,!0,!0);k.init()})})}));b.actions.addAction("microsoftOffice...",function(){b.openLink("https://office.draw.io")});b.actions.addAction("googleDocs...",function(){b.openLink("http://docsaddon.draw.io")});b.actions.addAction("googleSlides...",function(){b.openLink("https://slidesaddon.draw.io")});b.actions.addAction("googleSheets...",function(){b.openLink("https://sheetsaddon.draw.io")});b.actions.addAction("googleSites...",function(){b.spinner.spin(document.body,
-mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();a=new GoogleSitesDialog(b,a);b.showDialog(a.container,420,256,!0,!0);a.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)l=b.actions.addAction("scratchpad",function(){b.toggleScratchpad()}),l.setToggleAction(!0),l.setSelectedCallback(function(){return null!=b.scratchpad}),b.actions.addAction("plugins...",function(){b.showDialog((new PluginsDialog(b)).container,360,170,!0,!1)});l=b.actions.addAction("search",
-function(){var a=b.sidebar.isEntryVisible("search");b.sidebar.showPalette("search",!a);isLocalStorage&&(mxSettings.settings.search=!a,mxSettings.save())});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(b.actions.get("save").funct=function(a){g.isEditing()&&g.stopEditing();var c="0"!=urlParams.pages||null!=b.pages&&1<b.pages.length?b.getFileData(!0):mxUtils.getXml(b.editor.getGraphXml());if("json"==urlParams.proto){var d=b.createLoadMessage("save");
-d.xml=c;a&&(d.exit=!0);c=JSON.stringify(d)}(window.opener||window.parent).postMessage(c,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(b.editor.modified=!1,b.editor.setStatus(""));a=b.getCurrentFile();null==a||a.constructor==EmbedFile||a.constructor==LocalFile&&null==a.mode||b.saveFile()},b.actions.addAction("saveAndExit",function(){b.actions.get("save").funct(!0)}).label="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit"),b.actions.addAction("exit",
-function(){var a=function(){b.editor.modified=!1;var a="json"==urlParams.proto?JSON.stringify({event:"exit",modified:b.editor.modified}):"";(window.opener||window.parent).postMessage(a,"*")};b.editor.modified?b.confirm(mxResources.get("allChangesLost"),null,a,mxResources.get("cancel"),mxResources.get("discardChanges")):a()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){b.isExportToCanvas()?(this.addMenuItems(a,["exportPng"],c),b.jpgSupported&&this.addMenuItems(a,["exportJpg"],c)):
-b.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(a,["exportPng","exportJpg"],c);this.addMenuItems(a,["exportSvg","-"],c);b.isOffline()||b.printPdfExport?this.addMenuItems(a,["exportPdf"],c):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(a,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&b.isOffline()||this.addMenuItems(a,["exportVsdx"],c);this.addMenuItems(a,["-","exportHtml","exportXml","exportUrl"],c);b.isOffline()||(a.addSeparator(c),
-this.addMenuItem(a,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.put("importFrom",new Menu(mxUtils.bind(this,function(a,c){function d(a){a.pickFile(function(c){b.spinner.spin(document.body,mxResources.get("loading"))&&a.getFile(c,function(a){var c="data:image/"==a.getData().substring(0,11)?l(a.getTitle()):"text/xml";/\.svg$/i.test(a.getTitle())&&!b.editor.isDataSvg(a.getData())&&(a.setData(Editor.createSvgDataUri(a.getData())),c="image/svg+xml");f(a.getData(),
-c,a.getTitle())},function(a){b.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)},a==b.drive)},!0)}var f=mxUtils.bind(this,function(a,c,d){var e=g.view,f=g.getGraphBounds(),k=g.snap(Math.ceil(Math.max(0,f.x/e.scale-e.translate.x)+4*g.gridSize)),m=g.snap(Math.ceil(Math.max(0,(f.y+f.height)/e.scale-e.translate.y)+4*g.gridSize));"data:image/"==a.substring(0,11)?b.loadImage(a,mxUtils.bind(this,function(e){var f=!0,l=mxUtils.bind(this,function(){b.resizeImage(e,a,mxUtils.bind(this,function(e,
-l,n){e=f?Math.min(1,Math.min(b.maxImageSize/l,b.maxImageSize/n)):1;b.importFile(a,c,k,m,Math.round(l*e),Math.round(n*e),d,function(a){b.spinner.stop();g.setSelectionCells(a);g.scrollCellToVisible(g.getSelectionCell())})}),f)});a.length>b.resampleThreshold?b.confirmImageResize(function(a){f=a;l()}):l()}),mxUtils.bind(this,function(){b.handleError({message:mxResources.get("cannotOpenFile")})})):b.importFile(a,c,k,m,0,0,d,function(a){b.spinner.stop();g.setSelectionCells(a);g.scrollCellToVisible(g.getSelectionCell())})}),
-l=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)?b="image/gif":/\.pdf$/i.test(a)&&(b="application/pdf");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=b.drive?a.addItem(mxResources.get("googleDrive")+"...",null,function(){d(b.drive)},c):m&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,
-!1));null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){d(b.oneDrive)},c):e&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?a.addItem(mxResources.get("dropbox")+"...",null,function(){d(b.dropbox)},c):n&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);
-null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){d(b.gitHub)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){d(b.gitLab)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){d(b.trello)},c):k&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+
-"...",null,function(){b.importLocalFile(!1)},c);a.addItem(mxResources.get("device")+"...",null,function(){b.importLocalFile(!0)},c);b.isOffline()||(a.addSeparator(c),a.addItem(mxResources.get("url")+"...",null,function(){var a=new FilenameDialog(b,"",mxResources.get("import"),function(a){if(null!=a&&0<a.length&&b.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(a)?"image/png":"text/xml";b.editor.loadUrl(PROXY_URL+"?url="+encodeURIComponent(a),function(b){f(b,c,a)},
-function(){b.spinner.stop();b.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));b.showDialog(a.container,300,80,!0,!0);a.init()},c))}))).isEnabled=f;this.put("theme",new Menu(mxUtils.bind(this,function(a,c){var d="1"==urlParams.sketch?"sketch":mxSettings.getUi(),e=a.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");b.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&"sketch"!=
-d&&a.addCheckmark(e,Editor.checkmarkImage);a.addSeparator(c);e=a.addItem(mxResources.get("default"),null,function(){mxSettings.setUi("kennedy");b.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&a.addCheckmark(e,Editor.checkmarkImage);e=a.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");b.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&a.addCheckmark(e,Editor.checkmarkImage);e=a.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");
-b.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&a.addCheckmark(e,Editor.checkmarkImage);e=a.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");b.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&a.addCheckmark(e,Editor.checkmarkImage);a.addSeparator(c);e=a.addItem(mxResources.get("sketch"),null,function(){mxSettings.setUi("sketch");b.alert(mxResources.get("restartForChangeRequired"))},c);"sketch"==d&&a.addCheckmark(e,Editor.checkmarkImage)})));
-l=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();if(null!=a)if(a.constructor==LocalFile&&null!=a.fileHandle)b.showSaveFilePicker(mxUtils.bind(b,function(c,d){a.invalidFileHandle=null;a.fileHandle=c;a.title=d.name;a.desc=d;b.save(d.name)}),null,b.createFileSystemOptions(a.getTitle()));else{var c=null!=a.getTitle()?a.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,
-function(b){null!=b&&0<b.length&&null!=a&&b!=a.getTitle()&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&a.rename(b,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),a.constructor==DriveFile||a.constructor==StorageFile?mxResources.get("diagramName"):null,function(a){if(null!=a&&0<a.length)return!0;b.showError(mxResources.get("error"),mxResources.get("invalidName"),
-mxResources.get("ok"));return!1},null,null,null,null,b.editor.fileExtensions);this.editorUi.showDialog(c.container,340,90,!0,!0);c.init()}}));l.isEnabled=function(){return this.enabled&&f.apply(this,arguments)};l.visible="1"!=urlParams.embed;b.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var a=b.getCurrentFile();if(null!=a){var c=b.getCopyFilename(a);a.constructor==DriveFile?(c=new CreateDialog(b,c,mxUtils.bind(this,function(c,d){"_blank"==d?b.editor.editAsNew(b.getFileData(),c):("download"==
-d&&(d=App.MODE_GOOGLE),null!=c&&0<c.length&&(d==App.MODE_GOOGLE?b.spinner.spin(document.body,mxResources.get("saving"))&&a.saveAs(c,mxUtils.bind(this,function(c){a.desc=c;a.save(!1,mxUtils.bind(this,function(){b.spinner.stop();a.setModified(!1);a.addAllSavedStatus()}),mxUtils.bind(this,function(a){b.handleError(a)}))}),mxUtils.bind(this,function(a){b.handleError(a)})):b.createFile(c,b.getFileData(!0),null,d)))}),mxUtils.bind(this,function(){b.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),
-null,null,!0,null,!0,null,null,null,null,b.editor.fileExtensions),b.showDialog(c.container,420,380,!0,!0),c.init()):b.editor.editAsNew(this.editorUi.getFileData(!0),c)}}));b.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var a=b.getCurrentFile();if(a.getMode()==App.MODE_GOOGLE||a.getMode()==App.MODE_ONEDRIVE){var c=!1;if(a.getMode()==App.MODE_GOOGLE&&null!=a.desc.parents)for(var d=0;d<a.desc.parents.length;d++)if(a.desc.parents[d].isRoot){c=!0;break}b.pickFolder(a.getMode(),mxUtils.bind(this,
-function(c){b.spinner.spin(document.body,mxResources.get("moving"))&&a.move(c,mxUtils.bind(this,function(a){b.spinner.stop()}),mxUtils.bind(this,function(a){b.handleError(a)}))}),null,!0,c)}}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["publishLink"],b)})));b.actions.put("useOffline",new Action(mxResources.get("useOffline")+"...",function(){b.openLink("https://app.draw.io/")}));b.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",
-function(){b.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){try{var a=b.getCurrentFile();null!=a&&a.share()}catch(B){b.handleError(B)}}));this.put("embed",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();null==d||d.getMode()!=App.MODE_GOOGLE&&d.getMode()!=App.MODE_GITHUB||!/(\.png)$/i.test(d.getTitle())||this.addMenuItems(a,["liveImage","-"],c);this.addMenuItems(a,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||
-b.isOffline()||this.addMenuItems(a,["embedIframe"],c);"1"==urlParams.embed||b.isOffline()||this.addMenuItems(a,"- googleDocs googleSlides googleSheets - microsoftOffice - embedNotion".split(" "),c)})));var y=function(a,c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!b.isOffline())&&a.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e||"mermaid"==e){var a=new ParseDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);b.dialog.container.style.overflow="auto"}else a=
-new CreateGraphDialog(b,d,e),b.showDialog(a.container,620,420,!0,!1);a.init()}),c,null,f())},x=function(a,c,d,e){var f=new mxCell(a,new mxGeometry(0,0,c,d),e);f.vertex=!0;a=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry([f],!0));f.geometry.x=a.x;f.geometry.y=a.y;g.getModel().beginUpdate();try{f=g.addCell(f),g.fireEvent(new mxEventObject("cellsInserted","cells",[f]))}finally{g.getModel().endUpdate()}g.scrollCellToVisible(f);g.setSelectionCell(f);g.container.focus();g.editAfterInsert&&g.startEditing(f);
-window.setTimeout(function(){null!=b.hoverIcons&&b.hoverIcons.update(g.view.getState(f))},0);return f};b.actions.put("insertText",new Action(mxResources.get("text"),function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&g.startEditingAtCell(x("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))}),null,null,Editor.ctrlKey+"+Shift+X").isEnabled=f;b.actions.put("insertRectangle",new Action(mxResources.get("rectangle"),
-function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&x("",120,60,"whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+K").isEnabled=f;b.actions.put("insertEllipse",new Action(mxResources.get("ellipse"),function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&x("",80,80,"ellipse;whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+Shift+K").isEnabled=f;b.actions.put("insertRhombus",new Action(mxResources.get("rhombus"),function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&
-x("",80,80,"rhombus;whiteSpace=wrap;html=1;")})).isEnabled=f;var A=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):y(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(a,c){this.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - createShape insertFreehand - insertImage".split(" "),c);b.insertTemplateEnabled&&!b.isOffline()&&this.addMenuItems(a,["insertTemplate"],c);a.addSeparator(c);
-this.addSubmenu("insertLayout",a,c,mxResources.get("layout"));this.addSubmenu("insertAdvanced",a,c,mxResources.get("advanced"))})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){A(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){A(a,c,["fromText","plantUml","mermaid","-","formatSql"]);a.addItem(mxResources.get("csv")+"...",null,function(){b.showImportCsvDialog()},
-c,null,f())})));this.put("openRecent",new Menu(function(a,c){var d=b.getRecent();if(null!=d){for(var e=0;e<d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");a.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){b.loadFile(d.id)},c)})(d[e]);a.addSeparator(c)}a.addItem(mxResources.get("reset"),null,function(){b.resetRecent()},c)}));this.put("openFrom",new Menu(function(a,c){null!=b.drive?a.addItem(mxResources.get("googleDrive")+"...",
-null,function(){b.pickFile(App.MODE_GOOGLE)},c):m&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){b.pickFile(App.MODE_ONEDRIVE)},c):e&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?a.addItem(mxResources.get("dropbox")+
-"...",null,function(){b.pickFile(App.MODE_DROPBOX)},c):n&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){b.pickFile(App.MODE_GITHUB)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){b.pickFile(App.MODE_GITLAB)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){b.pickFile(App.MODE_TRELLO)},
-c):k&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+"...",null,function(){b.pickFile(App.MODE_BROWSER)},c);a.addItem(mxResources.get("device")+"...",null,function(){b.pickFile(App.MODE_DEVICE)},c);b.isOffline()||(a.addSeparator(c),a.addItem(mxResources.get("url")+"...",null,function(){var a=new FilenameDialog(b,
-"",mxResources.get("open"),function(a){null!=a&&0<a.length&&(null==b.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(a):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(a)))},mxResources.get("url"));b.showDialog(a.container,300,80,!0,!0);a.init()},c))}));Editor.enableCustomLibraries&&(this.put("newLibrary",new Menu(function(a,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=
-b.drive?a.addItem(mxResources.get("googleDrive")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},c):m&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},c):e&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+
-" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?a.addItem(mxResources.get("dropbox")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},c):n&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},
-c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_GITLAB)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},c):k&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+
-"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},c);a.addItem(mxResources.get("device")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_DEVICE)},c)})),this.put("openLibraryFrom",new Menu(function(a,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=b.drive?a.addItem(mxResources.get("googleDrive")+"...",null,function(){b.pickLibrary(App.MODE_GOOGLE)},c):m&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+
-" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){b.pickLibrary(App.MODE_ONEDRIVE)},c):e&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?a.addItem(mxResources.get("dropbox")+"...",null,function(){b.pickLibrary(App.MODE_DROPBOX)},c):n&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+
-" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){b.pickLibrary(App.MODE_GITHUB)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){b.pickLibrary(App.MODE_GITLAB)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){b.pickLibrary(App.MODE_TRELLO)},c):k&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+
-"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+"...",null,function(){b.pickLibrary(App.MODE_BROWSER)},c);a.addItem(mxResources.get("device")+"...",null,function(){b.pickLibrary(App.MODE_DEVICE)},c);b.isOffline()||(a.addSeparator(c),a.addItem(mxResources.get("url")+"...",null,function(){var a=new FilenameDialog(b,"",mxResources.get("open"),function(a){if(null!=a&&0<a.length&&b.spinner.spin(document.body,mxResources.get("loading"))){var c=
-a;b.editor.isCorsEnabledForUrl(a)||(c=PROXY_URL+"?url="+encodeURIComponent(a));mxUtils.get(c,function(c){if(200<=c.getStatus()&&299>=c.getStatus()){b.spinner.stop();try{b.loadLibrary(new UrlLibrary(this,c.getText(),a))}catch(G){b.handleError(G,mxResources.get("errorLoadingFile"))}}else b.spinner.stop(),b.handleError(null,mxResources.get("errorLoadingFile"))},function(){b.spinner.stop();b.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));b.showDialog(a.container,300,
-80,!0,!0);a.init()},c));"1"==urlParams.confLib&&(a.addSeparator(c),a.addItem(mxResources.get("confluenceCloud")+"...",null,function(){b.showRemotelyStoredLibrary(mxResources.get("libraries"))},c))})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy copyAsImage paste delete - duplicate - findReplace - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));
+function(){var a=new NewDialog(b,null,!1,function(a){b.hideDialog();if(null!=a){var c=b.editor.graph.getFreeInsertPoint();g.setSelectionCells(b.importXml(a,Math.max(c.x,20),Math.max(c.y,20),!0,null,null,!0));g.scrollCellToVisible(g.getSelectionCell())}},null,null,null,null,null,null,null,null,null,null,!1,mxResources.get("insert"));b.showDialog(a.container,620,440,!0,!0)})).isEnabled=f;var l=b.actions.addAction("points",function(){b.editor.graph.view.setUnit(mxConstants.POINTS)});l.setToggleAction(!0);
+l.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.POINTS});l=b.actions.addAction("inches",function(){b.editor.graph.view.setUnit(mxConstants.INCHES)});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.INCHES});l=b.actions.addAction("millimeters",function(){b.editor.graph.view.setUnit(mxConstants.MILLIMETERS)});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.editor.graph.view.unit==mxConstants.MILLIMETERS});
+this.put("units",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["points","millimeters"],b)})));l=b.actions.addAction("ruler",function(){mxSettings.setRulerOn(!mxSettings.isRulerOn());mxSettings.save();null!=b.ruler?(b.ruler.destroy(),b.ruler=null):b.ruler=new mxDualRuler(b,b.editor.graph.view.unit);b.refresh()});l.setEnabled(b.canvasSupported&&9!=document.documentMode);l.setToggleAction(!0);l.setSelectedCallback(function(){return null!=b.ruler});l=b.actions.addAction("fullscreen",function(){null==
+document.fullscreenElement?document.body.requestFullscreen():document.exitFullscreen()});l.visible=document.fullscreenEnabled&&null!=document.body.requestFullscreen;l.setToggleAction(!0);l.setSelectedCallback(function(){return null!=document.fullscreenElement});b.actions.addAction("properties...",function(){var a=new FilePropertiesDialog(b);b.showDialog(a.container,320,120,!0,!0);a.init()}).isEnabled=f;window.mxFreehand&&(b.actions.put("insertFreehand",new Action(mxResources.get("freehand")+"...",
+function(a){g.isEnabled()&&(null==this.freehandWindow&&(this.freehandWindow=new FreehandWindow(b,document.body.offsetWidth-420,102,176,104)),g.freehand.isDrawing()?g.freehand.stopDrawing():g.freehand.startDrawing(),this.freehandWindow.window.setVisible(g.freehand.isDrawing()))})).isEnabled=function(){return f()&&mxClient.IS_SVG});b.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var a=document.createElement("div");a.style.whiteSpace="nowrap";var c=null==b.pages||1>=
+b.pages.length,d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatXml"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";a.appendChild(d);var e=b.addCheckbox(a,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),f=b.addCheckbox(a,mxResources.get("compressed"),!0),k=b.addCheckbox(a,mxResources.get("allPages"),!c,c);k.style.marginBottom="16px";mxEvent.addListener(e,"change",function(){e.checked?k.setAttribute("disabled","disabled"):k.removeAttribute("disabled")});
+a=new CustomDialog(b,a,mxUtils.bind(this,function(){b.downloadFile("xml",!f.checked,null,!e.checked,c||!k.checked)}),null,mxResources.get("export"));b.showDialog(a.container,300,180,!0,!0)}));b.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){b.showPublishLinkDialog(mxResources.get("url"),!0,null,null,function(a,c,d,e,f,g){a=new EmbedDialog(b,b.createLink(a,c,d,e,f,g,null,!0));b.showDialog(a.container,440,240,!0,!0);a.init()})}));b.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+
+"...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();b.showHtmlDialog(mxResources.get("export"),null,a,function(a,c,d,e,f,g,k,m,l,n){b.createHtml(a,c,d,e,f,g,k,m,l,n,mxUtils.bind(this,function(a,c){var d=b.getBaseFilename(k),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+
+a+"\n"+c+"\n</body>\n</html>";b.saveData(d+".html","html",e,"text/html")}))})})}));b.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if(EditorUi.isElectronApp||!b.isOffline()&&!b.printPdfExport){var a=null==b.pages||1>=b.pages.length,c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatPdf"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(d);
+var e=function(){f!=this&&this.checked?(l.removeAttribute("disabled"),l.checked=!g.pageVisible):(l.setAttribute("disabled","disabled"),l.checked=!1)},d=180;if(b.pdfPageExport&&!a){var f=b.addRadiobox(c,"pages",mxResources.get("allPages"),!0),k=b.addRadiobox(c,"pages",mxResources.get("currentPage"),!1),m=b.addRadiobox(c,"pages",mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),l=b.addCheckbox(c,mxResources.get("crop"),!1,!0),n=b.addCheckbox(c,mxResources.get("grid"),!1,!1);mxEvent.addListener(f,
+"change",e);mxEvent.addListener(k,"change",e);mxEvent.addListener(m,"change",e);d+=60}else m=b.addCheckbox(c,mxResources.get("selectionOnly"),!1,g.isSelectionEmpty()),l=b.addCheckbox(c,mxResources.get("crop"),!g.pageVisible||!b.pdfPageExport,!b.pdfPageExport),n=b.addCheckbox(c,mxResources.get("grid"),!1,!1),b.pdfPageExport||mxEvent.addListener(m,"change",e);var e=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&"draw.io"==b.getServiceName(),p=null,q=null;if(EditorUi.isElectronApp||e)q=b.addCheckbox(c,
+mxResources.get("includeCopyOfMyDiagram"),!0),d+=30;e&&(p=b.addCheckbox(c,mxResources.get("transparentBackground"),!1),d+=30);c=new CustomDialog(b,c,mxUtils.bind(this,function(){b.downloadFile("pdf",null,null,!m.checked,a?!0:!f.checked,!l.checked,null!=p&&p.checked,null,null,n.checked,null!=q&&q.checked)}),null,mxResources.get("export"));b.showDialog(c.container,300,d,!0,!0)}else b.showDialog((new PrintDialog(b,mxResources.get("formatPdf"))).container,360,null!=b.pages&&1<b.pages.length&&(b.editor.editable||
+"1"!=urlParams["hide-pages"])?450:370,!0,!0)}));b.actions.addAction("open...",function(){b.pickFile()});b.actions.addAction("close",function(){function a(){null!=c&&c.removeDraft();b.fileLoaded(null)}var c=b.getCurrentFile();null!=c&&c.isModified()?b.confirm(mxResources.get("allChangesLost"),null,a,mxResources.get("cancel"),mxResources.get("discardChanges")):a()});b.actions.addAction("editShape...",mxUtils.bind(this,function(){g.getSelectionCells();if(1==g.getSelectionCount()){var a=g.getSelectionCell(),
+c=g.view.getState(a);null!=c&&null!=c.shape&&null!=c.shape.stencil&&(a=new EditShapeDialog(b,a,mxResources.get("editShape")+":",630,400),b.showDialog(a.container,640,480,!0,!1),a.init())}}));b.actions.addAction("revisionHistory...",function(){b.isRevisionHistorySupported()?b.spinner.spin(document.body,mxResources.get("loading"))&&b.getRevisions(mxUtils.bind(this,function(a,c){b.spinner.stop();var d=new RevisionDialog(b,a,c);b.showDialog(d.container,640,480,!0,!0);d.init()}),mxUtils.bind(this,function(a){b.handleError(a)})):
+b.showError(mxResources.get("error"),mxResources.get("notAvailable"),mxResources.get("ok"))});b.actions.addAction("createRevision",function(){b.actions.get("save").funct()},null,null,Editor.ctrlKey+"+S");l=b.actions.addAction("synchronize",function(){b.synchronizeCurrentFile("none"==DrawioFile.SYNC)},null,null,"Alt+Shift+S");"none"==DrawioFile.SYNC&&(l.label=mxResources.get("refresh"));b.actions.addAction("upload...",function(){var a=b.getCurrentFile();null!=a&&(window.drawdata=b.getFileData(),a=
+null!=a.getTitle()?a.getTitle():b.defaultFilename,b.openLink(window.location.protocol+"//"+window.location.host+"/?create=drawdata&"+(b.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(a),null,!0))});"undefined"!==typeof MathJax&&(l=b.actions.addAction("mathematicalTypesetting",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.mathEnabled=!b.isMathEnabled();g.model.execute(a)}),l.setToggleAction(!0),l.setSelectedCallback(function(){return b.isMathEnabled()}),
+l.isEnabled=f);isLocalStorage&&(l=b.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),l.setToggleAction(!0),l.setSelectedCallback(function(){return mxSettings.getShowStartScreen()}));var p=b.actions.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});p.setToggleAction(!0);p.setSelectedCallback(function(){return p.isEnabled()&&b.editor.autosave});b.actions.addAction("editGeometry...",function(){for(var a=
+g.getSelectionCells(),c=[],d=0;d<a.length;d++)g.getModel().isVertex(a[d])&&c.push(a[d]);0<c.length&&(a=new EditGeometryDialog(b,c),b.showDialog(a.container,200,270,!0,!0),a.init())},null,null,Editor.ctrlKey+"+Shift+M");var q=null;b.actions.addAction("copyStyle",function(){g.isEnabled()&&!g.isSelectionEmpty()&&(q=g.copyStyle(g.getSelectionCell()))},null,null,Editor.ctrlKey+"+Shift+C");b.actions.addAction("pasteStyle",function(){g.isEnabled()&&!g.isSelectionEmpty()&&null!=q&&g.pasteStyle(q,g.getSelectionCells())},
+null,null,Editor.ctrlKey+"+Shift+V");b.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!b.isOffline()){var a=new BackgroundImageDialog(b,function(a){b.setBackgroundImage(a)});b.showDialog(a.container,320,170,!0,!0);a.init()}}));b.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){b.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://www.diagrams.net/doc/faq/export-diagram",mxUtils.bind(this,
+function(a,c,d,e,f,g,k,m,l,n,p,q,t){a=parseInt(a);!isNaN(a)&&0<a&&b.exportSvg(a/100,c,d,e,f,g,k,!m,!1,n,q,t)}),!0,null,"svg",!0)}));b.actions.put("exportPng",new Action(mxResources.get("formatPng")+"...",function(){b.isExportToCanvas()?b.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://www.diagrams.net/doc/faq/export-diagram",mxUtils.bind(this,function(a,c,d,e,f,g,k,m,l,n,p,q,t){a=parseInt(a);!isNaN(a)&&0<a&&b.exportImage(a/100,c,d,e,f,k,!m,!1,null,p,null,q,t)}),!0,
+!0,"png",!0):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||b.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(a,c,d,e,f){b.downloadFile(c?"xmlpng":"png",null,null,a,null,null,d,e,f)}),!1,!0)}));b.actions.put("exportJpg",new Action(mxResources.get("formatJpg")+"...",function(){b.isExportToCanvas()?b.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://www.diagrams.net/doc/faq/export-diagram",mxUtils.bind(this,function(a,c,d,e,f,g,k,
+m,l,n,p,q,t){a=parseInt(a);!isNaN(a)&&0<a&&b.exportImage(a/100,!1,d,e,!1,k,!m,!1,"jpeg",p,null,q,t)}),!0,!1,"jpeg",!0):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||b.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(a,c,d,e,f){b.downloadFile("jpeg",null,null,a,null,null,null,e,f)}),!0,!0)}));l=b.actions.addAction("copyAsImage",mxUtils.bind(this,function(){var a=mxUtils.sortCells(g.model.getTopmostCells(g.getSelectionCells())),c=mxUtils.getXml(0==a.length?b.editor.getGraphXml():
+g.encodeCells(a));b.copyImage(a,c)}));l.visible=Editor.enableNativeCipboard&&b.isExportToCanvas()&&!mxClient.IS_SF;l=b.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){g.setShadowVisible(!g.shadowVisible)}));l.setToggleAction(!0);l.setSelectedCallback(function(){return g.shadowVisible});b.actions.put("about",new Action(mxResources.get("about")+" "+EditorUi.VERSION+"...",function(){b.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.alert(b.editor.appName+" "+
+EditorUi.VERSION):b.openLink("https://www.diagrams.net/")}));b.actions.addAction("support...",function(){EditorUi.isElectronApp?b.openLink("https://github.com/jgraph/drawio-desktop/wiki/Getting-Support"):b.openLink("https://github.com/jgraph/drawio/wiki/Getting-Support")});b.actions.addAction("exportOptionsDisabled...",function(){b.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});b.actions.addAction("keyboardShortcuts...",function(){!mxClient.IS_SVG||
+mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.openLink("https://viewer.diagrams.net/#Uhttps%3A%2F%2Fviewer.diagrams.net%2Fshortcuts.svg"):b.openLink("shortcuts.svg")});b.actions.addAction("feedback...",function(){var a=new FeedbackDialog(b);b.showDialog(a.container,610,360,!0,!1);a.init()});b.actions.addAction("quickStart...",function(){b.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});b.actions.addAction("forkme",function(){EditorUi.isElectronApp?b.openLink("https://github.com/jgraph/drawio-desktop"):
+b.openLink("https://github.com/jgraph/drawio")}).label="Fork me on GitHub...";b.actions.addAction("downloadDesktop...",function(){b.openLink("https://get.diagrams.net/")});l=b.actions.addAction("tags...",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=new TagsWindow(b,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("tags"))}),
+this.tagsWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&&this.tagsWindow.window.isVisible()}));l=b.actions.addAction("findReplace...",mxUtils.bind(this,function(a,c){var d=g.isEnabled()&&(null==c||!mxEvent.isShiftDown(c)),e=d?"findReplace":"find",f=e+"Window";if(null==this[f]){var k=d?"min"==uiTheme?330:
+300:240;this[f]=new FindWindow(b,document.body.offsetWidth-(k+20),100,k,d?"min"==uiTheme?304:288:170,d);this[f].window.addListener("show",function(){b.fireEvent(new mxEventObject(e))});this[f].window.addListener("hide",function(){b.fireEvent(new mxEventObject(e))});this[f].window.setVisible(!0)}else this[f].window.setVisible(!this[f].window.isVisible())}),null,null,Editor.ctrlKey+"+F");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){var a=g.isEnabled()?"findReplaceWindow":
+"findWindow";return null!=this[a]&&this[a].window.isVisible()}));b.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){var a=null==b.pages||1>=b.pages.length;if(a)b.exportVisio();else{var c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatVsdx"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(d);var e=b.addCheckbox(c,mxResources.get("allPages"),
+!a,a);e.style.marginBottom="16px";a=new CustomDialog(b,c,mxUtils.bind(this,function(){b.exportVisio(!e.checked)}),null,mxResources.get("export"));b.showDialog(a.container,300,110,!0,!0)}}));isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&b.actions.addAction("configuration...",function(){var a=localStorage.getItem(Editor.configurationKey),c=[[mxResources.get("reset"),function(a,c){b.confirm(mxResources.get("areYouSure"),function(){try{localStorage.removeItem(Editor.configurationKey),mxEvent.isShiftDown(a)&&
+(localStorage.removeItem(".drawio-config"),localStorage.removeItem(".mode")),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))}catch(C){b.handleError(C)}})}]];EditorUi.isElectronApp||c.push([mxResources.get("link"),function(a,c){if(0<c.value.length)try{var d=JSON.parse(c.value),e=window.location.protocol+"//"+window.location.host+"/"+b.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(d)),f=new EmbedDialog(b,e);b.showDialog(f.container,440,240,!0);f.init()}catch(L){b.handleError(L)}else b.handleError({message:mxResources.get("invalidInput")})}]);
+a=new TextareaDialog(b,mxResources.get("configuration")+":",null!=a?JSON.stringify(JSON.parse(a),null,2):"",function(a){if(null!=a)try{if(0<a.length){var c=JSON.parse(a);localStorage.setItem(Editor.configurationKey,JSON.stringify(c))}else localStorage.removeItem(Editor.configurationKey);b.hideDialog();b.alert(mxResources.get("restartForChangeRequired"))}catch(C){b.handleError(C)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/configure-diagram-editor",c);a.textarea.style.width=
+"600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!1);a.init()});if(mxClient.IS_CHROMEAPP||isLocalStorage){this.put("language",new Menu(mxUtils.bind(this,function(a,c){var d=mxUtils.bind(this,function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=a.addItem(e,null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);b.alert(mxResources.get("restartForChangeRequired"))}),
+c),(d==mxLanguage||""==d&&null==mxLanguage)&&a.addCheckmark(f,Editor.checkmarkImage));return f});d("");a.addSeparator(c);for(var e in mxLanguageMap)d(e)})));var t=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=t.apply(this,arguments);if(null!=b&&"1"!=urlParams.noLangIcon){var c=this.get("language");if(null!=c){c=b.addMenu("",c.funct);c.setAttribute("title",mxResources.get("language"));c.style.width="16px";c.style.paddingTop="2px";c.style.paddingLeft="4px";c.style.zIndex=
+"1";c.style.position="absolute";c.style.display="block";c.style.cursor="pointer";c.style.right="17px";"atlas"==uiTheme?(c.style.top="6px",c.style.right="15px"):c.style.top="min"==uiTheme?"2px":"0px";var d=document.createElement("div");d.style.backgroundImage="url("+Editor.globeImage+")";d.style.backgroundPosition="center center";d.style.backgroundRepeat="no-repeat";d.style.backgroundSize="19px 19px";d.style.position="absolute";d.style.height="19px";d.style.width="19px";d.style.marginTop="2px";d.style.zIndex=
+"1";c.appendChild(d);mxUtils.setOpacity(c,40);if("atlas"==uiTheme||"dark"==uiTheme)c.style.opacity="0.85",c.style.filter="invert(100%)";document.body.appendChild(c)}}return b}}b.customLayoutConfig=[{layout:"mxHierarchicalLayout",config:{orientation:"west",intraCellSpacing:30,interRankCellSpacing:100,interHierarchySpacing:60,parallelEdgeSpacing:10}}];b.actions.addAction("runLayout",function(){var a=new TextareaDialog(b,"Run Layouts:",JSON.stringify(b.customLayoutConfig,null,2),function(a){if(0<a.length)try{var c=
+JSON.parse(a);b.executeLayoutList(c);b.customLayoutConfig=c}catch(D){b.handleError(D),null!=window.console&&console.error(D)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/apply-layouts");a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!0);a.init()});var l=this.get("layout"),u=l.funct;l.funct=function(a,c){u.apply(this,arguments);a.addItem(mxResources.get("orgChart"),null,function(){function a(){"undefined"!==typeof mxOrgChartLayout||
+b.loadingOrgChart||b.isOffline(!0)?g():b.spinner.spin(document.body,mxResources.get("loading"))&&(b.loadingOrgChart=!0,"1"==urlParams.dev?mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",g)})})}):mxscript("js/extensions.min.js",g))}var c=null,d=20,e=20,f=!0,g=function(){b.loadingOrgChart=!1;b.spinner.stop();if("undefined"!==typeof mxOrgChartLayout&&
+null!=c&&f){var a=b.editor.graph,g=new mxOrgChartLayout(a,c,d,e),k=a.getDefaultParent();1<a.model.getChildCount(a.getSelectionCell())&&(k=a.getSelectionCell());g.execute(k);f=!1}},k=document.createElement("div"),m=document.createElement("div");m.style.marginTop="6px";m.style.display="inline-block";m.style.width="140px";mxUtils.write(m,mxResources.get("orgChartType")+": ");k.appendChild(m);var l=document.createElement("select");l.style.width="200px";l.style.boxSizing="border-box";for(var m=[mxResources.get("linear"),
+mxResources.get("hanger2"),mxResources.get("hanger4"),mxResources.get("fishbone1"),mxResources.get("fishbone2"),mxResources.get("1ColumnLeft"),mxResources.get("1ColumnRight"),mxResources.get("smart")],n=0;n<m.length;n++){var p=document.createElement("option");mxUtils.write(p,m[n]);p.value=n;2==n&&p.setAttribute("selected","selected");l.appendChild(p)}mxEvent.addListener(l,"change",function(){c=l.value});k.appendChild(l);m=document.createElement("div");m.style.marginTop="6px";m.style.display="inline-block";
+m.style.width="140px";mxUtils.write(m,mxResources.get("parentChildSpacing")+": ");k.appendChild(m);var z=document.createElement("input");z.type="number";z.value=d;z.style.width="200px";z.style.boxSizing="border-box";k.appendChild(z);mxEvent.addListener(z,"change",function(){d=z.value});m=document.createElement("div");m.style.marginTop="6px";m.style.display="inline-block";m.style.width="140px";mxUtils.write(m,mxResources.get("siblingSpacing")+": ");k.appendChild(m);var q=document.createElement("input");
+q.type="number";q.value=e;q.style.width="200px";q.style.boxSizing="border-box";k.appendChild(q);mxEvent.addListener(q,"change",function(){e=q.value});k=new CustomDialog(b,k,function(){null==c&&(c=2);a()});b.showDialog(k.container,355,125,!0,!0)},c,null,f());a.addSeparator(c);a.addItem(mxResources.get("parallels"),null,mxUtils.bind(this,function(){var a=new mxParallelEdgeLayout(g);a.checkOverlap=!0;a.spacing=20;b.executeLayout(function(){a.execute(g.getDefaultParent(),g.isSelectionEmpty()?null:g.getSelectionCells())},
+!1)}),c);a.addSeparator(c);b.menus.addMenuItem(a,"runLayout",c,null,null,mxResources.get("apply")+"...")};this.put("help",new Menu(mxUtils.bind(this,function(a,c){if(!mxClient.IS_CHROMEAPP&&b.isOffline())this.addMenuItems(a,["about"],c);else{var d=a.addItem("Search:",null,null,c,null,null,!1);d.style.backgroundColor=Editor.isDarkMode()?"#505759":"whiteSmoke";d.style.cursor="default";var e=document.createElement("input");e.setAttribute("type","text");e.setAttribute("size","25");e.style.marginLeft=
+"8px";mxEvent.addListener(e,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(e.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://www.google.com/search?q=site%3Adiagrams.net+inurl%3A%2Fdoc%2Ffaq%2F+"+encodeURIComponent(b)),e.value="",EditorUi.logEvent({category:"SEARCH-HELP",action:"search",label:b}),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0)):27==a.keyCode&&(e.value="")}));d.firstChild.nextSibling.appendChild(e);mxEvent.addGestureListeners(e,
+function(a){document.activeElement!=e&&e.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){e.focus()},0);EditorUi.isElectronApp?(console.log("electron help menu"),this.addMenuItems(a,"- keyboardShortcuts quickStart support - forkme - about".split(" "),c)):this.addMenuItems(a,"- keyboardShortcuts quickStart support - forkme downloadDesktop - about".split(" "),c)}"1"==urlParams.test&&(a.addSeparator(c),this.addSubmenu("testDevelop",
+a,c))})));mxResources.parse("diagramLanguage=Diagram Language");b.actions.addAction("diagramLanguage...",function(){var a=prompt("Language Code",Graph.diagramLanguage||"");null!=a&&(Graph.diagramLanguage=0<a.length?a:null,g.refresh())});if("1"==urlParams.test){mxResources.parse("testDevelop=Develop");mxResources.parse("showBoundingBox=Show bounding box");mxResources.parse("createSidebarEntry=Create Sidebar Entry");mxResources.parse("testCheckFile=Check File");mxResources.parse("testDiff=Diff/Sync");
+mxResources.parse("testInspect=Inspect");mxResources.parse("testShowConsole=Show Console");mxResources.parse("testXmlImageExport=XML Image Export");mxResources.parse("testDownloadRtModel=Export RT model");mxResources.parse("testImportRtModel=Import RT model");b.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){if(!g.isSelectionEmpty()){var a=g.cloneCells(g.getSelectionCells()),c=g.getBoundingBoxFromGeometry(a),a=g.moveCells(a,-c.x,-c.y);b.showTextDialog("Create Sidebar Entry","this.addDataEntry('tag1 tag2', "+
+c.width+", "+c.height+", 'The Title', '"+Graph.compress(mxUtils.getXml(g.encodeCells(a)))+"'),")}}));b.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=g.getGraphBounds(),b=g.view.translate,c=g.view.scale;g.insertVertex(g.getDefaultParent(),null,"",a.x/c-b.x,a.y/c-b.y,a.width/c,a.height/c,"fillColor=none;strokeColor=red;")}));b.actions.addAction("testCheckFile",mxUtils.bind(this,function(){var a=null!=b.pages&&null!=b.getCurrentFile()?b.getCurrentFile().getAnonymizedXmlForPages(b.pages):
+"",a=new TextareaDialog(b,"Paste Data:",a,function(a){if(0<a.length)try{var c=function(a){function b(a){if(null==n[a]){if(n[a]=!0,null!=e[a]){for(;0<e[a].length;){var d=e[a].pop();b(d)}delete e[a]}}else mxLog.debug(c+": Visited: "+a)}var c=a.parentNode.id,d=a.childNodes;a={};for(var e={},f=null,g={},k=0;k<d.length;k++){var m=d[k];if(null!=m.id&&0<m.id.length)if(null==a[m.id]){a[m.id]=m.id;var l=m.getAttribute("parent");null==l?null!=f?mxLog.debug(c+": Multiple roots: "+m.id):f=m.id:(null==e[l]&&(e[l]=
+[]),e[l].push(m.id))}else g[m.id]=m.id}0<Object.keys(g).length?(d=c+": "+Object.keys(g).length+" Duplicates: "+Object.keys(g).join(", "),mxLog.debug(d+" (see console)")):mxLog.debug(c+": Checked");var n={};null==f?mxLog.debug(c+": No root"):(b(f),Object.keys(n).length!=Object.keys(a).length&&(mxLog.debug(c+": Invalid tree: (see console)"),console.log(c+": Invalid tree",e)))};"<"!=a.charAt(0)&&(a=Graph.decompress(a),mxLog.debug("See console for uncompressed XML"),console.log("xml",a));var d=mxUtils.parseXml(a),
+e=b.getPagesForNode(d.documentElement,"mxGraphModel");if(null!=e&&0<e.length)try{var f=b.getHashValueForPages(e);mxLog.debug("Checksum: ",f)}catch(L){mxLog.debug("Error: ",L.message)}else mxLog.debug("No pages found for checksum");var g=d.getElementsByTagName("root");for(a=0;a<g.length;a++)c(g[a]);mxLog.show()}catch(L){b.handleError(L),null!=window.console&&console.error(L)}});a.textarea.style.width="600px";a.textarea.style.height="380px";b.showDialog(a.container,620,460,!0,!0);a.init()}));var v=
+null;b.actions.addAction("testDiff",mxUtils.bind(this,function(){if(null!=b.pages){var a=new TextareaDialog(b,"Diff/Sync:","",function(a){var c=b.getCurrentFile();if(0<a.length&&null!=c)try{var d=JSON.parse(a);c.patch([d],null,!0);b.hideDialog()}catch(C){b.handleError(C)}},null,"Close",null,null,null,!0,null,"Patch",null,[["Snapshot",function(c,d){v=b.getPagesForNode(mxUtils.parseXml(b.getFileData(!0)).documentElement);a.textarea.value="Snapshot updated "+(new Date).toLocaleString()}],["Diff",function(c,
+d){try{a.textarea.value=JSON.stringify(b.diffPages(v,b.pages),null,2)}catch(D){b.handleError(D)}}]]);a.textarea.style.width="600px";a.textarea.style.height="380px";null==v?(v=b.getPagesForNode(mxUtils.parseXml(b.getFileData(!0)).documentElement),a.textarea.value="Snapshot created "+(new Date).toLocaleString()):a.textarea.value=JSON.stringify(b.diffPages(v,b.pages),null,2);b.showDialog(a.container,620,460,!0,!0);a.init()}else b.alert("No pages")}));b.actions.addAction("testInspect",mxUtils.bind(this,
+function(){console.log(b,g.getModel())}));b.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=g.getGraphBounds(),c=g.view.scale,d=mxUtils.createXmlDocument(),e=d.createElement("output");d.appendChild(e);d=new mxXmlCanvas2D(e);d.translate(Math.floor((1-b.x)/c),Math.floor((1-b.y)/c));d.scale(1/c);var f=0,k=d.save;d.save=function(){f++;k.apply(this,arguments)};var m=d.restore;d.restore=function(){f--;m.apply(this,arguments)};var l=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",
+a,f);l.apply(this,arguments);mxLog.debug("leaving shape",a,f)};a.drawState(g.getView().getState(g.model.root),d);mxLog.show();mxLog.debug(mxUtils.getXml(e));mxLog.debug("stateCounter",f)}));b.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1});this.put("testDevelop",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"createSidebarEntry showBoundingBox - testCheckFile testDiff - testInspect - testXmlImageExport - testShowConsole".split(" "),
+b)})))}b.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!b.isOffline()?b.showDialog((new MoreShapesDialog(b,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):b.showDialog((new MoreShapesDialog(b,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});b.actions.put("createShape",new Action(mxResources.get("shape")+"...",function(a){g.isEnabled()&&(a=new mxCell("",new mxGeometry(0,0,120,120),b.defaultCustomShapeStyle),a.vertex=!0,a=new EditShapeDialog(b,
+a,mxResources.get("editShape")+":",630,400),b.showDialog(a.container,640,480,!0,!1),a.init())})).isEnabled=f;b.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();b.showHtmlDialog(mxResources.get("create"),"https://www.diagrams.net/doc/faq/embed-html-options",a,function(a,c,d,e,f,g,k,m,l,n){b.createHtml(a,c,d,e,f,g,k,m,l,n,mxUtils.bind(this,function(a,c){var d=
+new EmbedDialog(b,a+"\n"+c,null,null,function(){var d=window.open(),e=d.document;if(null!=e){"CSS1Compat"===document.compatMode&&e.writeln("<!DOCTYPE html>");e.writeln("<html>");e.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');e.writeln("<body>");e.writeln(a);var f=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;f&&e.writeln(c);e.writeln("</body>");e.writeln("</html>");e.close();if(!f){var g=d.document.createElement("div");
+g.marginLeft="26px";g.marginTop="26px";mxUtils.write(g,mxResources.get("updatingDocument"));f=d.document.createElement("img");f.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");f.style.marginLeft="6px";g.appendChild(f);d.document.body.insertBefore(g,d.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];e.body.appendChild(a);g.parentNode.removeChild(g)},
+20)}}else b.handleError({message:mxResources.get("errorUpdatingPreview")})});b.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));b.actions.put("liveImage",new Action("Live image...",function(){var a=b.getCurrentFile();null!=a&&b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(c){b.spinner.stop();null!=c?(c=new EmbedDialog(b,'<img src="'+(a.constructor!=DriveFile?c:"https://drive.google.com/uc?id="+a.getId())+'"/>'),b.showDialog(c.container,
+440,240,!0,!0),c.init()):b.handleError({message:mxResources.get("invalidPublicUrl")})})}));b.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){b.showEmbedImageDialog(function(a,c,d,e,f,g){b.spinner.spin(document.body,mxResources.get("loading"))&&b.createEmbedImage(a,c,d,e,f,g,function(a){b.spinner.stop();a=new EmbedDialog(b,a);b.showDialog(a.container,440,240,!0,!0);a.init()},function(a){b.spinner.stop();b.handleError(a)})},mxResources.get("image"),mxResources.get("retina"),
+b.isExportToCanvas())}));b.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){b.showEmbedImageDialog(function(a,c,d,e,f,g){b.spinner.spin(document.body,mxResources.get("loading"))&&b.createEmbedSvg(a,c,d,e,f,g,function(a){b.spinner.stop();a=new EmbedDialog(b,a);b.showDialog(a.container,440,240,!0,!0);a.init()},function(a){b.spinner.stop();b.handleError(a)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://www.diagrams.net/doc/faq/embed-svg.html")}));
+b.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var a=g.getGraphBounds();b.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil(a.height/g.view.scale)+2,function(a,c,d,e,f,g,k,m){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(l){b.spinner.stop();l=new EmbedDialog(b,'<iframe frameborder="0" style="width:'+k+";height:"+m+';" src="'+b.createLink(a,c,d,e,f,g,l)+'"></iframe>');b.showDialog(l.container,
+440,240,!0,!0);l.init()})},!0)}));b.actions.put("embedNotion",new Action(mxResources.get("notion")+"...",function(){b.showPublishLinkDialog(mxResources.get("notion"),null,null,null,function(a,c,d,e,f,g,k,m){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(k){b.spinner.stop();k=new EmbedDialog(b,b.createLink(a,c,d,e,f,g,k,null,["border=0"],!0));b.showDialog(k.container,440,240,!0,!0);k.init()})},!0)}));b.actions.put("publishLink",new Action(mxResources.get("link")+
+"...",function(){b.showPublishLinkDialog(null,null,null,null,function(a,c,d,e,f,g){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(k){b.spinner.stop();k=new EmbedDialog(b,b.createLink(a,c,d,e,f,g,k));b.showDialog(k.container,440,240,!0,!0);k.init()})})}));b.actions.addAction("microsoftOffice...",function(){b.openLink("https://office.draw.io")});b.actions.addAction("googleDocs...",function(){b.openLink("http://docsaddon.draw.io")});b.actions.addAction("googleSlides...",
+function(){b.openLink("https://slidesaddon.draw.io")});b.actions.addAction("googleSheets...",function(){b.openLink("https://sheetsaddon.draw.io")});b.actions.addAction("googleSites...",function(){b.spinner.spin(document.body,mxResources.get("loading"))&&b.getPublicUrl(b.getCurrentFile(),function(a){b.spinner.stop();a=new GoogleSitesDialog(b,a);b.showDialog(a.container,420,256,!0,!0);a.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)l=b.actions.addAction("scratchpad",function(){b.toggleScratchpad()}),
+l.setToggleAction(!0),l.setSelectedCallback(function(){return null!=b.scratchpad}),b.actions.addAction("plugins...",function(){b.showDialog((new PluginsDialog(b)).container,360,170,!0,!1)});l=b.actions.addAction("search",function(){var a=b.sidebar.isEntryVisible("search");b.sidebar.showPalette("search",!a);isLocalStorage&&(mxSettings.settings.search=!a,mxSettings.save())});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(b.actions.get("save").funct=
+function(a){g.isEditing()&&g.stopEditing();var c="0"!=urlParams.pages||null!=b.pages&&1<b.pages.length?b.getFileData(!0):mxUtils.getXml(b.editor.getGraphXml());if("json"==urlParams.proto){var d=b.createLoadMessage("save");d.xml=c;a&&(d.exit=!0);c=JSON.stringify(d)}(window.opener||window.parent).postMessage(c,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(b.editor.modified=!1,b.editor.setStatus(""));a=b.getCurrentFile();null==a||a.constructor==EmbedFile||a.constructor==LocalFile&&null==
+a.mode||b.saveFile()},b.actions.addAction("saveAndExit",function(){b.actions.get("save").funct(!0)}).label="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit"),b.actions.addAction("exit",function(){var a=function(){b.editor.modified=!1;var a="json"==urlParams.proto?JSON.stringify({event:"exit",modified:b.editor.modified}):"";(window.opener||window.parent).postMessage(a,"*")};b.editor.modified?b.confirm(mxResources.get("allChangesLost"),null,a,mxResources.get("cancel"),
+mxResources.get("discardChanges")):a()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){b.isExportToCanvas()?(this.addMenuItems(a,["exportPng"],c),b.jpgSupported&&this.addMenuItems(a,["exportJpg"],c)):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(a,["exportPng","exportJpg"],c);this.addMenuItems(a,["exportSvg","-"],c);b.isOffline()||b.printPdfExport?this.addMenuItems(a,["exportPdf"],c):b.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(a,
+["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&b.isOffline()||this.addMenuItems(a,["exportVsdx"],c);this.addMenuItems(a,["-","exportHtml","exportXml","exportUrl"],c);b.isOffline()||(a.addSeparator(c),this.addMenuItem(a,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.put("importFrom",new Menu(mxUtils.bind(this,function(a,c){function d(a){a.pickFile(function(c){b.spinner.spin(document.body,mxResources.get("loading"))&&a.getFile(c,function(a){var c=
+"data:image/"==a.getData().substring(0,11)?l(a.getTitle()):"text/xml";/\.svg$/i.test(a.getTitle())&&!b.editor.isDataSvg(a.getData())&&(a.setData(Editor.createSvgDataUri(a.getData())),c="image/svg+xml");f(a.getData(),c,a.getTitle())},function(a){b.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)},a==b.drive)},!0)}var f=mxUtils.bind(this,function(a,c,d){var e=g.view,f=g.getGraphBounds(),k=g.snap(Math.ceil(Math.max(0,f.x/e.scale-e.translate.x)+4*g.gridSize)),m=g.snap(Math.ceil(Math.max(0,
+(f.y+f.height)/e.scale-e.translate.y)+4*g.gridSize));"data:image/"==a.substring(0,11)?b.loadImage(a,mxUtils.bind(this,function(e){var f=!0,l=mxUtils.bind(this,function(){b.resizeImage(e,a,mxUtils.bind(this,function(e,l,n){e=f?Math.min(1,Math.min(b.maxImageSize/l,b.maxImageSize/n)):1;b.importFile(a,c,k,m,Math.round(l*e),Math.round(n*e),d,function(a){b.spinner.stop();g.setSelectionCells(a);g.scrollCellToVisible(g.getSelectionCell())})}),f)});a.length>b.resampleThreshold?b.confirmImageResize(function(a){f=
+a;l()}):l()}),mxUtils.bind(this,function(){b.handleError({message:mxResources.get("cannotOpenFile")})})):b.importFile(a,c,k,m,0,0,d,function(a){b.spinner.stop();g.setSelectionCells(a);g.scrollCellToVisible(g.getSelectionCell())})}),l=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)?b="image/gif":/\.pdf$/i.test(a)&&(b="application/pdf");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=
+b.drive?a.addItem(mxResources.get("googleDrive")+"...",null,function(){d(b.drive)},c):m&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){d(b.oneDrive)},c):e&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?
+a.addItem(mxResources.get("dropbox")+"...",null,function(){d(b.dropbox)},c):n&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){d(b.gitHub)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){d(b.gitLab)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){d(b.trello)},
+c):k&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+"...",null,function(){b.importLocalFile(!1)},c);a.addItem(mxResources.get("device")+"...",null,function(){b.importLocalFile(!0)},c);b.isOffline()||(a.addSeparator(c),a.addItem(mxResources.get("url")+"...",null,function(){var a=new FilenameDialog(b,"",mxResources.get("import"),
+function(a){if(null!=a&&0<a.length&&b.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(a)?"image/png":"text/xml";b.editor.loadUrl(PROXY_URL+"?url="+encodeURIComponent(a),function(b){f(b,c,a)},function(){b.spinner.stop();b.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));b.showDialog(a.container,300,80,!0,!0);a.init()},c))}))).isEnabled=f;this.put("theme",new Menu(mxUtils.bind(this,function(a,c){var d="1"==urlParams.sketch?
+"sketch":mxSettings.getUi(),e=a.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");b.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&"sketch"!=d&&a.addCheckmark(e,Editor.checkmarkImage);a.addSeparator(c);e=a.addItem(mxResources.get("default"),null,function(){mxSettings.setUi("kennedy");b.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&a.addCheckmark(e,Editor.checkmarkImage);e=a.addItem(mxResources.get("minimal"),
+null,function(){mxSettings.setUi("min");b.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&a.addCheckmark(e,Editor.checkmarkImage);e=a.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");b.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&a.addCheckmark(e,Editor.checkmarkImage);e=a.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");b.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&a.addCheckmark(e,Editor.checkmarkImage);
+a.addSeparator(c);e=a.addItem(mxResources.get("sketch"),null,function(){mxSettings.setUi("sketch");b.alert(mxResources.get("restartForChangeRequired"))},c);"sketch"==d&&a.addCheckmark(e,Editor.checkmarkImage)})));l=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();if(null!=a)if(a.constructor==LocalFile&&null!=a.fileHandle)b.showSaveFilePicker(mxUtils.bind(b,function(c,d){a.invalidFileHandle=null;a.fileHandle=c;a.title=d.name;a.desc=d;b.save(d.name)}),
+null,b.createFileSystemOptions(a.getTitle()));else{var c=null!=a.getTitle()?a.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&null!=a&&b!=a.getTitle()&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&a.rename(b,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):
+null)}))}),a.constructor==DriveFile||a.constructor==StorageFile?mxResources.get("diagramName"):null,function(a){if(null!=a&&0<a.length)return!0;b.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1},null,null,null,null,b.editor.fileExtensions);this.editorUi.showDialog(c.container,340,90,!0,!0);c.init()}}));l.isEnabled=function(){return this.enabled&&f.apply(this,arguments)};l.visible="1"!=urlParams.embed;b.actions.addAction("makeCopy...",mxUtils.bind(this,
+function(){var a=b.getCurrentFile();if(null!=a){var c=b.getCopyFilename(a);a.constructor==DriveFile?(c=new CreateDialog(b,c,mxUtils.bind(this,function(c,d){"_blank"==d?b.editor.editAsNew(b.getFileData(),c):("download"==d&&(d=App.MODE_GOOGLE),null!=c&&0<c.length&&(d==App.MODE_GOOGLE?b.spinner.spin(document.body,mxResources.get("saving"))&&a.saveAs(c,mxUtils.bind(this,function(c){a.desc=c;a.save(!1,mxUtils.bind(this,function(){b.spinner.stop();a.setModified(!1);a.addAllSavedStatus()}),mxUtils.bind(this,
+function(a){b.handleError(a)}))}),mxUtils.bind(this,function(a){b.handleError(a)})):b.createFile(c,b.getFileData(!0),null,d)))}),mxUtils.bind(this,function(){b.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,!0,null,!0,null,null,null,null,b.editor.fileExtensions),b.showDialog(c.container,420,380,!0,!0),c.init()):b.editor.editAsNew(this.editorUi.getFileData(!0),c)}}));b.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var a=b.getCurrentFile();if(a.getMode()==
+App.MODE_GOOGLE||a.getMode()==App.MODE_ONEDRIVE){var c=!1;if(a.getMode()==App.MODE_GOOGLE&&null!=a.desc.parents)for(var d=0;d<a.desc.parents.length;d++)if(a.desc.parents[d].isRoot){c=!0;break}b.pickFolder(a.getMode(),mxUtils.bind(this,function(c){b.spinner.spin(document.body,mxResources.get("moving"))&&a.move(c,mxUtils.bind(this,function(a){b.spinner.stop()}),mxUtils.bind(this,function(a){b.handleError(a)}))}),null,!0,c)}}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,
+["publishLink"],b)})));b.actions.put("useOffline",new Action(mxResources.get("useOffline")+"...",function(){b.openLink("https://app.draw.io/")}));b.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){b.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){try{var a=b.getCurrentFile();null!=a&&a.share()}catch(B){b.handleError(B)}}));this.put("embed",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();
+null==d||d.getMode()!=App.MODE_GOOGLE&&d.getMode()!=App.MODE_GITHUB||!/(\.png)$/i.test(d.getTitle())||this.addMenuItems(a,["liveImage","-"],c);this.addMenuItems(a,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||b.isOffline()||this.addMenuItems(a,["embedIframe"],c);"1"==urlParams.embed||b.isOffline()||this.addMenuItems(a,"- googleDocs googleSlides googleSheets - microsoftOffice - embedNotion".split(" "),c)})));var A=function(a,c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!b.isOffline())&&
+a.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e||"mermaid"==e){var a=new ParseDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);b.dialog.container.style.overflow="auto"}else a=new CreateGraphDialog(b,d,e),b.showDialog(a.container,620,420,!0,!1);a.init()}),c,null,f())},x=function(a,c,d,e){var f=new mxCell(a,new mxGeometry(0,0,c,d),e);f.vertex=!0;a=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry([f],!0));f.geometry.x=a.x;f.geometry.y=a.y;g.getModel().beginUpdate();
+try{f=g.addCell(f),g.fireEvent(new mxEventObject("cellsInserted","cells",[f]))}finally{g.getModel().endUpdate()}g.scrollCellToVisible(f);g.setSelectionCell(f);g.container.focus();g.editAfterInsert&&g.startEditing(f);window.setTimeout(function(){null!=b.hoverIcons&&b.hoverIcons.update(g.view.getState(f))},0);return f};b.actions.put("insertText",new Action(mxResources.get("text"),function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&g.startEditingAtCell(x("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))}),
+null,null,Editor.ctrlKey+"+Shift+X").isEnabled=f;b.actions.put("insertRectangle",new Action(mxResources.get("rectangle"),function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&x("",120,60,"whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+K").isEnabled=f;b.actions.put("insertEllipse",new Action(mxResources.get("ellipse"),function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&x("",80,80,"ellipse;whiteSpace=wrap;html=1;")}),null,null,Editor.ctrlKey+"+Shift+K").isEnabled=f;b.actions.put("insertRhombus",
+new Action(mxResources.get("rhombus"),function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&x("",80,80,"rhombus;whiteSpace=wrap;html=1;")})).isEnabled=f;var y=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):A(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(a,c){this.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - createShape insertFreehand - insertImage".split(" "),
+c);b.insertTemplateEnabled&&!b.isOffline()&&this.addMenuItems(a,["insertTemplate"],c);a.addSeparator(c);this.addSubmenu("insertLayout",a,c,mxResources.get("layout"));this.addSubmenu("insertAdvanced",a,c,mxResources.get("advanced"))})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){y(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){y(a,c,["fromText","plantUml",
+"mermaid","-","formatSql"]);a.addItem(mxResources.get("csv")+"...",null,function(){b.showImportCsvDialog()},c,null,f())})));this.put("openRecent",new Menu(function(a,c){var d=b.getRecent();if(null!=d){for(var e=0;e<d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");a.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){b.loadFile(d.id)},c)})(d[e]);a.addSeparator(c)}a.addItem(mxResources.get("reset"),null,function(){b.resetRecent()},
+c)}));this.put("openFrom",new Menu(function(a,c){null!=b.drive?a.addItem(mxResources.get("googleDrive")+"...",null,function(){b.pickFile(App.MODE_GOOGLE)},c):m&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){b.pickFile(App.MODE_ONEDRIVE)},c):e&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+
+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?a.addItem(mxResources.get("dropbox")+"...",null,function(){b.pickFile(App.MODE_DROPBOX)},c):n&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){b.pickFile(App.MODE_GITHUB)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+
+"...",null,function(){b.pickFile(App.MODE_GITLAB)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){b.pickFile(App.MODE_TRELLO)},c):k&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+"...",null,function(){b.pickFile(App.MODE_BROWSER)},c);a.addItem(mxResources.get("device")+"...",null,
+function(){b.pickFile(App.MODE_DEVICE)},c);b.isOffline()||(a.addSeparator(c),a.addItem(mxResources.get("url")+"...",null,function(){var a=new FilenameDialog(b,"",mxResources.get("open"),function(a){null!=a&&0<a.length&&(null==b.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(a):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(a)))},mxResources.get("url"));b.showDialog(a.container,300,80,!0,!0);
+a.init()},c))}));Editor.enableCustomLibraries&&(this.put("newLibrary",new Menu(function(a,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=b.drive?a.addItem(mxResources.get("googleDrive")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},c):m&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+
+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},c):e&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?a.addItem(mxResources.get("dropbox")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},c):n&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},
+c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_GITLAB)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},c):k&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+
+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},c);a.addItem(mxResources.get("device")+"...",null,function(){b.showLibraryDialog(null,null,null,null,App.MODE_DEVICE)},c)})),this.put("openLibraryFrom",new Menu(function(a,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=b.drive?a.addItem(mxResources.get("googleDrive")+
+"...",null,function(){b.pickLibrary(App.MODE_GOOGLE)},c):m&&"function"===typeof window.DriveClient&&a.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=b.oneDrive?a.addItem(mxResources.get("oneDrive")+"...",null,function(){b.pickLibrary(App.MODE_ONEDRIVE)},c):e&&"function"===typeof window.OneDriveClient&&a.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=b.dropbox?a.addItem(mxResources.get("dropbox")+
+"...",null,function(){b.pickLibrary(App.MODE_DROPBOX)},c):n&&"function"===typeof window.DropboxClient&&a.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);null!=b.gitHub&&a.addItem(mxResources.get("github")+"...",null,function(){b.pickLibrary(App.MODE_GITHUB)},c);null!=b.gitLab&&a.addItem(mxResources.get("gitlab")+"...",null,function(){b.pickLibrary(App.MODE_GITLAB)},c);null!=b.trello?a.addItem(mxResources.get("trello")+"...",
+null,function(){b.pickLibrary(App.MODE_TRELLO)},c):k&&"function"===typeof window.TrelloClient&&a.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);a.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&a.addItem(mxResources.get("browser")+"...",null,function(){b.pickLibrary(App.MODE_BROWSER)},c);a.addItem(mxResources.get("device")+"...",null,function(){b.pickLibrary(App.MODE_DEVICE)},c);b.isOffline()||(a.addSeparator(c),a.addItem(mxResources.get("url")+
+"...",null,function(){var a=new FilenameDialog(b,"",mxResources.get("open"),function(a){if(null!=a&&0<a.length&&b.spinner.spin(document.body,mxResources.get("loading"))){var c=a;b.editor.isCorsEnabledForUrl(a)||(c=PROXY_URL+"?url="+encodeURIComponent(a));mxUtils.get(c,function(c){if(200<=c.getStatus()&&299>=c.getStatus()){b.spinner.stop();try{b.loadLibrary(new UrlLibrary(this,c.getText(),a))}catch(H){b.handleError(H,mxResources.get("errorLoadingFile"))}}else b.spinner.stop(),b.handleError(null,mxResources.get("errorLoadingFile"))},
+function(){b.spinner.stop();b.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));b.showDialog(a.container,300,80,!0,!0);a.init()},c));"1"==urlParams.confLib&&(a.addSeparator(c),a.addItem(mxResources.get("confluenceCloud")+"...",null,function(){b.showRemotelyStoredLibrary(mxResources.get("libraries"))},c))})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy copyAsImage paste delete - duplicate - findReplace - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));
l=b.actions.addAction("comments",mxUtils.bind(this,function(){if(null==this.commentsWindow)this.commentsWindow=new CommentsWindow(b,document.body.offsetWidth-380,120,300,350),this.commentsWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("comments"));else{var a=!this.commentsWindow.window.isVisible();
this.commentsWindow.window.setVisible(a);this.commentsWindow.refreshCommentsTime();a&&this.commentsWindow.hasError&&this.commentsWindow.refreshComments()}}));l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.commentsWindow&&this.commentsWindow.window.isVisible()}));b.editor.addListener("fileLoaded",mxUtils.bind(this,function(){null!=this.commentsWindow&&(this.commentsWindow.destroy(),this.commentsWindow=null)}));var l=this.get("viewPanels"),E=l.funct;l.funct=
function(a,c){E.apply(this,arguments);b.commentsSupported()&&b.menus.addMenuItems(a,["comments"],c)};this.put("view",new Menu(mxUtils.bind(this,function(a,c){this.addMenuItems(a,(null!=this.editorUi.format?["formatPanel"]:[]).concat(["outline","layers"]).concat(b.commentsSupported()?["comments","-"]:["-"]));this.addMenuItems(a,["-","search"],c);if(isLocalStorage||mxClient.IS_CHROMEAPP){var d=this.addMenuItem(a,"scratchpad",c);(!b.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&this.addLinkToItem(d,
@@ -11597,30 +11598,30 @@ c,d,m,n,e),mxUtils.bind(this,function(a){return this.isTreeEdge(a)}))};Graph.pro
!1;null!=a&&(b="1"==u.getCurrentCellStyle(a).treeMoving);return b}function d(a){var b=!1;null!=a&&(a=v.getParent(a),b=u.view.getState(a),b="tree"==(null!=b?b.style:u.getCellStyle(a)).containerType);return b}function m(a){var b=!1;null!=a&&(a=v.getParent(a),b=u.view.getState(a),u.view.getState(a),b=null!=(null!=b?b.style:u.getCellStyle(a)).childLayout);return b}function n(a){a=u.view.getState(a);if(null!=a){var b=u.getIncomingTreeEdges(a.cell);if(0<b.length&&(b=u.view.getState(b[0]),null!=b&&(b=b.absolutePoints,
null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function e(a,b){b=null!=b?b:!0;u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingTreeEdges(a),e=u.cloneCells([d[0],a]);u.model.setTerminal(e[0],u.model.getTerminal(d[0],
!0),!0);var f=n(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;u.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=u.view.getState(a),m=u.view.scale;if(null!=k){var l=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*m:l.y+=(b?
-a.geometry.height+10:-e[1].geometry.height-10)*m;var p=u.getOutgoingTreeEdges(u.model.getTerminal(d[0],!0));if(null!=p){for(var q=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<p.length;t++){var A=u.model.getTerminal(p[t],!1);if(f==n(A)){var C=u.view.getState(A);A!=a&&null!=C&&(q&&b!=C.getCenterX()<k.getCenterX()||!q&&b!=C.getCenterY()<k.getCenterY())&&mxUtils.intersects(l,C)&&(d=10+Math.max(d,(Math.min(l.x+l.width,C.x+C.width)-Math.max(l.x,C.x))/m),g=10+Math.max(g,(Math.min(l.y+
-l.height,C.y+C.height)-Math.max(l.y,C.y))/m))}}q?g=0:d=0;for(t=0;t<p.length;t++)if(A=u.model.getTerminal(p[t],!1),f==n(A)&&(C=u.view.getState(A),A!=a&&null!=C&&(q&&b!=C.getCenterX()<k.getCenterX()||!q&&b!=C.getCenterY()<k.getCenterY()))){var v=[];u.traverse(C.cell,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&v.push(b);(null==b||c)&&v.push(a);return null==b||c});u.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return u.addCells(e,c)}finally{u.model.endUpdate()}}function k(a){u.model.beginUpdate();try{var b=
+a.geometry.height+10:-e[1].geometry.height-10)*m;var p=u.getOutgoingTreeEdges(u.model.getTerminal(d[0],!0));if(null!=p){for(var q=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<p.length;t++){var y=u.model.getTerminal(p[t],!1);if(f==n(y)){var C=u.view.getState(y);y!=a&&null!=C&&(q&&b!=C.getCenterX()<k.getCenterX()||!q&&b!=C.getCenterY()<k.getCenterY())&&mxUtils.intersects(l,C)&&(d=10+Math.max(d,(Math.min(l.x+l.width,C.x+C.width)-Math.max(l.x,C.x))/m),g=10+Math.max(g,(Math.min(l.y+
+l.height,C.y+C.height)-Math.max(l.y,C.y))/m))}}q?g=0:d=0;for(t=0;t<p.length;t++)if(y=u.model.getTerminal(p[t],!1),f==n(y)&&(C=u.view.getState(y),y!=a&&null!=C&&(q&&b!=C.getCenterX()<k.getCenterX()||!q&&b!=C.getCenterY()<k.getCenterY()))){var v=[];u.traverse(C.cell,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&v.push(b);(null==b||c)&&v.push(a);return null==b||c});u.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return u.addCells(e,c)}finally{u.model.endUpdate()}}function k(a){u.model.beginUpdate();try{var b=
n(a),c=u.getIncomingTreeEdges(a),d=u.cloneCells([c[0],a]);u.model.setTerminal(c[0],d[1],!1);u.model.setTerminal(d[0],d[1],!0);u.model.setTerminal(d[0],a,!1);var e=u.model.getParent(a),f=e.geometry,g=[];u.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);u.traverse(a,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&g.push(b);(null==b||c)&&g.push(a);return null==b||c});var k=a.geometry.width+40,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?
(k=0,m=-m):b==mxConstants.DIRECTION_WEST?(k=-k,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);u.moveCells(g,k,m);return u.addCells(d,e)}finally{u.model.endUpdate()}}function l(a,b){u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingTreeEdges(a),e=n(a);0==d.length&&(d=[u.createEdge(c,null,"",null,null,u.createCurrentEdgeStyle())],e=b);var f=u.cloneCells([d[0],a]);u.model.setTerminal(f[0],a,!0);if(null==u.model.getTerminal(f[0],!1)){u.model.setTerminal(f[0],f[1],!1);var g=u.getCellStyle(f[1]).newEdgeStyle;
-if(null!=g)try{var k=JSON.parse(g),m;for(m in k)u.setCellStyles(m,k[m],[f[0]]),"edgeStyle"==m&&"elbowEdgeStyle"==k[m]&&u.setCellStyles("elbow",e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[f[0]])}catch(da){}}var d=u.getOutgoingTreeEdges(a),l=c.geometry,g=[];u.view.currentRoot==c&&(l=new mxRectangle);for(k=0;k<d.length;k++){var p=u.model.getTerminal(d[k],!1);null!=p&&g.push(p)}var q=u.view.getBounds(g),t=u.view.translate,A=u.view.scale;e==mxConstants.DIRECTION_SOUTH?
-(f[1].geometry.x=null==q?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(q.x+q.width)/A-t.x-l.x+10,f[1].geometry.y+=f[1].geometry.height-l.y+40):e==mxConstants.DIRECTION_NORTH?(f[1].geometry.x=null==q?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(q.x+q.width)/A-t.x+-l.x+10,f[1].geometry.y-=f[1].geometry.height+l.y+40):(f[1].geometry.x=e==mxConstants.DIRECTION_WEST?f[1].geometry.x-(f[1].geometry.width+l.x+40):f[1].geometry.x+(f[1].geometry.width-l.x+40),f[1].geometry.y=null==q?a.geometry.y+
-(a.geometry.height-f[1].geometry.height)/2:(q.y+q.height)/A-t.y+-l.y+10);return u.addCells(f,c)}finally{u.model.endUpdate()}}function p(a,b,c){a=u.getOutgoingTreeEdges(a);c=u.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=u.view.getState(u.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-
+if(null!=g)try{var k=JSON.parse(g),m;for(m in k)u.setCellStyles(m,k[m],[f[0]]),"edgeStyle"==m&&"elbowEdgeStyle"==k[m]&&u.setCellStyles("elbow",e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[f[0]])}catch(da){}}var d=u.getOutgoingTreeEdges(a),l=c.geometry,g=[];u.view.currentRoot==c&&(l=new mxRectangle);for(k=0;k<d.length;k++){var p=u.model.getTerminal(d[k],!1);null!=p&&g.push(p)}var q=u.view.getBounds(g),t=u.view.translate,y=u.view.scale;e==mxConstants.DIRECTION_SOUTH?
+(f[1].geometry.x=null==q?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(q.x+q.width)/y-t.x-l.x+10,f[1].geometry.y+=f[1].geometry.height-l.y+40):e==mxConstants.DIRECTION_NORTH?(f[1].geometry.x=null==q?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(q.x+q.width)/y-t.x+-l.x+10,f[1].geometry.y-=f[1].geometry.height+l.y+40):(f[1].geometry.x=e==mxConstants.DIRECTION_WEST?f[1].geometry.x-(f[1].geometry.width+l.x+40):f[1].geometry.x+(f[1].geometry.width-l.x+40),f[1].geometry.y=null==q?a.geometry.y+
+(a.geometry.height-f[1].geometry.height)/2:(q.y+q.height)/y-t.y+-l.y+10);return u.addCells(f,c)}finally{u.model.endUpdate()}}function p(a,b,c){a=u.getOutgoingTreeEdges(a);c=u.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=u.view.getState(u.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-
c.y-c.height})}return d}function q(a,b){var c=n(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?t.actions.get("selectParent").funct():c==b?(d=u.getOutgoingTreeEdges(a),null!=d&&0<d.length&&u.setSelectionCell(u.model.getTerminal(d[0],!1))):(c=u.getIncomingTreeEdges(a),null!=c&&0<c.length&&(d=p(u.model.getTerminal(c[0],!0),d,a),c=u.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||
-b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&u.setSelectionCell(d[c].cell)))))}var t=this,u=t.editor.graph,v=u.getModel(),y=t.menus.createPopupMenu;t.menus.createPopupMenu=function(b,c,d){y.apply(this,arguments);if(1==u.getSelectionCount()){c=u.getSelectionCell();var e=u.getOutgoingTreeEdges(c);b.addSeparator();0<e.length&&(a(u.getSelectionCell())&&this.addMenuItems(b,["selectChildren"],null,d),this.addMenuItems(b,["selectDescendants"],null,d));a(u.getSelectionCell())&&(b.addSeparator(),
+b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&u.setSelectionCell(d[c].cell)))))}var t=this,u=t.editor.graph,v=u.getModel(),A=t.menus.createPopupMenu;t.menus.createPopupMenu=function(b,c,d){A.apply(this,arguments);if(1==u.getSelectionCount()){c=u.getSelectionCell();var e=u.getOutgoingTreeEdges(c);b.addSeparator();0<e.length&&(a(u.getSelectionCell())&&this.addMenuItems(b,["selectChildren"],null,d),this.addMenuItems(b,["selectDescendants"],null,d));a(u.getSelectionCell())&&(b.addSeparator(),
0<u.getIncomingTreeEdges(c).length&&this.addMenuItems(b,["selectSiblings","selectParent"],null,d))}};t.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getOutgoingTreeEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+X");t.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=
u.getIncomingTreeEdges(a);if(null!=a&&0<a.length&&(a=u.getOutgoingTreeEdges(u.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+S");t.actions.addAction("selectParent",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getIncomingTreeEdges(a);null!=a&&0<a.length&&u.setSelectionCell(u.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");t.actions.addAction("selectDescendants",
function(a,b){var c=u.getSelectionCell();if(u.isEnabled()&&u.model.isVertex(c)){if(null!=b&&mxEvent.isAltDown(b))u.setSelectionCells(u.model.getTreeEdges(c,null==b||!mxEvent.isShiftDown(b),null==b||!mxEvent.isControlDown(b)));else{var d=[];u.traverse(c,!0,function(a,c){var e=null!=c&&u.isTreeEdge(c);e&&d.push(c);null!=c&&!e||null!=b&&mxEvent.isShiftDown(b)||d.push(a);return null==c||e})}u.setSelectionCells(d)}},null,null,"Alt+Shift+D");var x=u.removeCells;u.removeCells=function(b,c){c=null!=c?c:!0;
null==b&&(b=this.getDeletableCells(this.getSelectionCells()));c&&(b=this.getDeletableCells(this.addAllEdges(b)));for(var e=[],f=0;f<b.length;f++){var g=b[f];v.isEdge(g)&&d(g)&&(e.push(g),g=v.getTerminal(g,!1));if(a(g)){var k=[];u.traverse(g,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&k.push(b);(null==b||c)&&k.push(a);return null==b||c});0<k.length&&(e=e.concat(k),g=u.getIncomingTreeEdges(b[f]),b=b.concat(g))}else null!=g&&e.push(b[f])}b=e;return x.apply(this,arguments)};t.hoverIcons.getStateAt=
-function(b,c,d){return a(b.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var A=u.duplicateCells;u.duplicateCells=function(b,c){b=null!=b?b:this.getSelectionCells();for(var d=b.slice(0),e=0;e<d.length;e++){var f=u.view.getState(d[e]);if(null!=f&&a(f.cell))for(var g=u.getIncomingTreeEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],b)}this.model.beginUpdate();try{var k=A.call(this,b,c);if(k.length==b.length)for(e=0;e<b.length;e++)if(a(b[e])){var m=u.getIncomingTreeEdges(k[e]),g=
+function(b,c,d){return a(b.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var y=u.duplicateCells;u.duplicateCells=function(b,c){b=null!=b?b:this.getSelectionCells();for(var d=b.slice(0),e=0;e<d.length;e++){var f=u.view.getState(d[e]);if(null!=f&&a(f.cell))for(var g=u.getIncomingTreeEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],b)}this.model.beginUpdate();try{var k=y.call(this,b,c);if(k.length==b.length)for(e=0;e<b.length;e++)if(a(b[e])){var m=u.getIncomingTreeEdges(k[e]),g=
u.getIncomingTreeEdges(b[e]);if(0==m.length&&0<g.length){var l=this.cloneCell(g[0]);this.addEdge(l,u.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var E=u.moveCells;u.moveCells=function(b,c,d,e,f,g,k){var m=null;this.model.beginUpdate();try{var l=f,n=this.getCurrentCellStyle(f);if(null!=b&&a(f)&&"1"==mxUtils.getValue(n,"treeFolding","0")){for(var p=0;p<b.length;p++)if(a(b[p])||u.model.isEdge(b[p])&&null==u.model.getTerminal(b[p],!0)){f=u.model.getParent(b[p]);
-break}if(null!=l&&f!=l&&null!=this.view.getState(b[0])){var q=u.getIncomingTreeEdges(b[0]);if(0<q.length){var t=u.view.getState(u.model.getTerminal(q[0],!0));if(null!=t){var A=u.view.getState(l);null!=A&&(c=(A.getCenterX()-t.getCenterX())/u.view.scale,d=(A.getCenterY()-t.getCenterY())/u.view.scale)}}}}m=E.apply(this,arguments);if(null!=m&&null!=b&&m.length==b.length)for(p=0;p<m.length;p++)if(this.model.isEdge(m[p]))a(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[p],!0))&&this.model.setTerminal(m[p],
+break}if(null!=l&&f!=l&&null!=this.view.getState(b[0])){var q=u.getIncomingTreeEdges(b[0]);if(0<q.length){var t=u.view.getState(u.model.getTerminal(q[0],!0));if(null!=t){var y=u.view.getState(l);null!=y&&(c=(y.getCenterX()-t.getCenterX())/u.view.scale,d=(y.getCenterY()-t.getCenterY())/u.view.scale)}}}}m=E.apply(this,arguments);if(null!=m&&null!=b&&m.length==b.length)for(p=0;p<m.length;p++)if(this.model.isEdge(m[p]))a(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[p],!0))&&this.model.setTerminal(m[p],
l,!0);else if(a(b[p])&&(q=u.getIncomingTreeEdges(b[p]),0<q.length))if(!e)a(l)&&0>mxUtils.indexOf(b,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==u.getIncomingTreeEdges(m[p]).length){n=l;if(null==n||n==u.model.getParent(b[p]))n=u.model.getTerminal(q[0],!0);e=this.cloneCell(q[0]);this.addEdge(e,u.getDefaultParent(),n,m[p])}}finally{this.model.endUpdate()}return m};if(null!=t.sidebar){var z=t.sidebar.dropAndConnect;t.sidebar.dropAndConnect=function(b,c,d,e){var f=u.model,
-g=null;f.beginUpdate();try{if(g=z.apply(this,arguments),a(b))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],b,!0);var m=u.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var B={88:t.actions.get("selectChildren"),84:t.actions.get("selectSubtree"),80:t.actions.get("selectParent"),83:t.actions.get("selectSiblings")},H=t.onKeyDown;t.onKeyDown=function(b){try{if(u.isEnabled()&&
+g=null;f.beginUpdate();try{if(g=z.apply(this,arguments),a(b))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],b,!0);var m=u.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var B={88:t.actions.get("selectChildren"),84:t.actions.get("selectSubtree"),80:t.actions.get("selectParent"),83:t.actions.get("selectSiblings")},G=t.onKeyDown;t.onKeyDown=function(b){try{if(u.isEnabled()&&
!u.isEditing()&&a(u.getSelectionCell())&&1==u.getSelectionCount()){var c=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==b.which?c=mxEvent.isShiftDown(b)?k(u.getSelectionCell()):l(u.getSelectionCell()):13==b.which&&(c=e(u.getSelectionCell(),!mxEvent.isShiftDown(b))));if(null!=c&&0<c.length)1==c.length&&u.model.isEdge(c[0])?u.setSelectionCell(u.model.getTerminal(c[0],!1)):u.setSelectionCell(c[c.length-1]),null!=t.hoverIcons&&t.hoverIcons.update(u.view.getState(u.getSelectionCell())),
u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var d=B[b.keyCode];null!=d&&(d.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(q(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(q(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(b))}}catch(K){t.handleError(K)}mxEvent.isConsumed(b)||H.apply(this,arguments)};var D=u.connectVertex;u.connectVertex=function(b,c,d,f,g,m,p){var q=u.getIncomingTreeEdges(b);if(a(b)){var t=n(b),A=t==mxConstants.DIRECTION_EAST||t==mxConstants.DIRECTION_WEST,C=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;return t==c||0==q.length?l(b,c):A==C?k(b):e(b,c!=mxConstants.DIRECTION_NORTH&&c!=mxConstants.DIRECTION_WEST)}return D.apply(this,arguments)};u.getSubtree=function(b){var d=
+mxEvent.consume(b))}}catch(K){t.handleError(K)}mxEvent.isConsumed(b)||G.apply(this,arguments)};var D=u.connectVertex;u.connectVertex=function(b,c,d,f,g,m,p){var q=u.getIncomingTreeEdges(b);if(a(b)){var t=n(b),y=t==mxConstants.DIRECTION_EAST||t==mxConstants.DIRECTION_WEST,C=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;return t==c||0==q.length?l(b,c):y==C?k(b):e(b,c!=mxConstants.DIRECTION_NORTH&&c!=mxConstants.DIRECTION_WEST)}return D.apply(this,arguments)};u.getSubtree=function(b){var d=
[b];!c(b)&&!a(b)||m(b)||u.traverse(b,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.apply(this,arguments);(c(this.state.cell)||a(this.state.cell))&&!m(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);
-this.graph.isMouseDown=!0;t.hoverIcons.reset();mxEvent.consume(a)})))};var F=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){F.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var G=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){G.apply(this,
+this.graph.isMouseDown=!0;t.hoverIcons.reset();mxEvent.consume(a)})))};var F=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){F.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){H.apply(this,
arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var L=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),d=this.graph;return a.concat([this.addEntry("tree container",
function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.vertex=!0;var c=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);a.insert(d);a.insert(b);a.insert(c);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");
@@ -11658,7 +11659,7 @@ mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;document.bo
"html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+"html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: "+
(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: "+(Editor.isDarkMode()?"#cccccc":"#353535")+" !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geTabContainer { border-bottom:1px solid lightgray; border-top:1px solid lightgray; }.geToolbarContainer, .geTabContainer { background: "+
(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; }div.geSidebarContainer { background-color: "+(Editor.isDarkMode()?"#2a2a2a":"#fff")+"; }div.geSidebarContainer .geTitle { background-color: "+(Editor.isDarkMode()?"#2a2a2a":"#fdfdfd")+"; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:"+
-(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: "+
+(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow *:not(svg *) { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: "+
(Editor.isDarkMode()?"#2a2a2a":"rgb(249, 249, 249)")+" !important; color: #A0A0A0 !important; } html div.geActivePage { background: "+(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; "+(Editor.isDarkMode()?"":"color: #353535 !important; } ")+"html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: "+
(Editor.isDarkMode()?"#cccccc":"#353535")+"; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: "+(Editor.isDarkMode()?"#000000":"#29b6f2")+"; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: "+(Editor.isDarkMode()?"#cccccc":"#ffffff")+" !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }html body td.mxWindowTitle { padding-right: 14px; }html td.mxWindowTitle div img { padding: 8px 4px; }html td.mxWindowTitle div { top: 0px !important; }"+
(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"html .geStatusAlertOrange, html .geStatusAlert { margin-top: -2px; }a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var f=document.createElement("style");f.type="text/css";f.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(f);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
@@ -11675,7 +11676,7 @@ function(a,b){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.
["copyAsImage"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=b?b:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var u=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),
this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=
null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),this.menus.findReplaceWindow=null);u.apply(this,arguments)};var v=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){v.apply(this,arguments);if(a){var b=window.innerWidth||document.documentElement.clientWidth||
-document.body.clientWidth;1E3<=b&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=b||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1)};EditorUi.prototype.chromelessWindowResize=function(){};var y=Menus.prototype.init;Menus.prototype.init=function(){y.apply(this,arguments);var b=
+document.body.clientWidth;1E3<=b&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=b||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1)};EditorUi.prototype.chromelessWindowResize=function(){};var A=Menus.prototype.init;Menus.prototype.init=function(){A.apply(this,arguments);var b=
this.editorUi,c=b.editor.graph;b.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";b.actions.get("createShape").label=mxResources.get("shape")+"...";b.actions.get("outline").label=mxResources.get("outline")+"...";b.actions.get("layers").label=mxResources.get("layers")+"...";b.actions.get("forkme").visible="1"!=urlParams.sketch;b.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var e=b.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(){b.setDarkMode(!Editor.darkMode)}));
e.setToggleAction(!0);e.setSelectedCallback(function(){return Editor.isDarkMode()});b.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){c.popupMenuHandler.hideMenu();b.showImportCsvDialog()}));b.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(b,"Insert from Text");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(b,"Insert from Text",
"formatSql");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("toggleShapes",new Action(mxResources.get("1"==urlParams.sketch?"moreShapes":"shapes")+"...",function(){d(b)},null,null,Editor.ctrlKey+"+Shift+K"));b.actions.put("toggleFormat",new Action(mxResources.get("format")+"...",function(){a(b)})).shortcut=b.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(b,
@@ -11685,18 +11686,18 @@ EditorUi.isElectronApp||null==d||d.constructor==LocalFile||b.menus.addMenuItems(
b.menus.addMenuItems(a,["tags"],c);"1"!=urlParams.sketch&&null!=d&&null!=b.fileNode&&(d=null!=d.getTitle()?d.getTitle():b.defaultFilename,/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||this.addMenuItems(a,["-","properties"]));mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);"1"==urlParams.sketch&&(b.menus.addSubmenu("extras",a,c,mxResources.get("preferences")),a.addSeparator(c));b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):
b.menus.addMenuItems(a,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["save","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
null==d||d.constructor==LocalFile||b.menus.addMenuItems(a,["-","synchronize"],c);b.menus.addMenuItems(a,["-","autosave"],c);null!=d&&d.isRevisionHistorySupported()&&b.menus.addMenuItems(a,["-","revisionHistory"],c)})));var f=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){f.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var g=this.get("language");this.put("table",
-new Menu(mxUtils.bind(this,function(a,c){b.menus.addInsertTableCellItem(a,c)})));this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=g&&b.menus.addSubmenu("language",a,c);b.menus.addSubmenu("units",a,c);"1"==urlParams.sketch?b.menus.addMenuItems(a,["-","configuration","-","showStartScreen"],c):(a.addSeparator(c),b.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],c),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&
-b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c),!b.isOfflineApp()&&isLocalStorage&&b.menus.addMenuItem(a,"plugins",c),a.addSeparator(c),b.menus.addMenuItem(a,"configuration",c));a.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var a=this.get("insert"),c=a.funct;a.funct=function(a,d){"1"==
-urlParams.sketch?(b.menus.addMenuItems(a,["insertFreehand"],d),b.insertTemplateEnabled&&!b.isOffline()&&b.menus.addMenuItems(a,["insertTemplate"],d)):(c.apply(this,arguments),b.menus.addSubmenu("table",a,d),a.addSeparator(d));b.menus.addMenuItems(a,["-","toggleShapes"],d)}})();var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),m=function(a,c,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,
-620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):m(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d=b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://www.diagrams.net/doc/faq/math-typesetting")}b.menus.addMenuItems(a,
-["copyConnect","collapseExpand","-","pageScale"],c);"1"!=urlParams.sketch&&b.menus.addMenuItems(a,["-","fullscreen","toggleDarkMode"],c)})))};EditorUi.prototype.installFormatToolbar=function(a){var b=this.editor.graph,c=document.createElement("div");c.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";b.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,
-function(d,e){0<b.getSelectionCount()?(a.appendChild(c),c.innerHTML="Selected: "+b.getSelectionCount()):null!=c.parentNode&&c.parentNode.removeChild(c)}))};var x=EditorUi.prototype.init;EditorUi.prototype.init=function(){function b(a,b,c){var d=l.menus.get(a),e=t.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),q);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";e.style.top="6px";e.style.marginRight="6px";e.style.height=
-"30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));l.menus.menuCreated(d,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition="right 6px center",e.style.backgroundRepeat=
-"no-repeat",e.style.paddingRight="22px");return e}function e(a,b,c,d,e,f){var g=document.createElement("a");g.className="geMenuItem";g.style.display="inline-block";g.style.boxSizing="border-box";g.style.height="30px";g.style.padding="6px";g.style.position="relative";g.style.verticalAlign="top";g.style.top="0px";"1"==urlParams.sketch&&(g.style.borderStyle="none",g.style.boxShadow="none",g.style.padding="6px",g.style.margin="0px");null!=l.statusContainer?p.insertBefore(g,l.statusContainer):p.appendChild(g);
-null!=f?(g.style.backgroundImage="url("+f+")",g.style.backgroundPosition="center center",g.style.backgroundRepeat="no-repeat",g.style.backgroundSize="24px 24px",g.style.width="34px"):mxUtils.write(g,a);mxEvent.addListener(g,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(g,"click",function(a){"disabled"!=g.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(g.style.marginRight="4px");null!=d&&g.setAttribute("title",d);
-null!=e&&(a=function(){e.isEnabled()?(g.removeAttribute("disabled"),g.style.cursor="pointer"):(g.setAttribute("disabled","disabled"),g.style.cursor="default")},e.addListener("stateChanged",a),a());return g}function f(a,b,c){c=document.createElement("div");c.className="geMenuItem";c.style.display="inline-block";c.style.verticalAlign="top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position="relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow=
-"none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(c,l.statusContainer):p.appendChild(c);return c}function g(){for(var a=p.firstChild;null!=a;){var d=a.nextSibling;"geMenuItem"!=a.className&&"geItem"!=a.className||a.parentNode.removeChild(a);a=d}q=p.firstChild;
-c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>c||"1"==urlParams.sketch)||b("diagram");if("1"!=urlParams.sketch&&(f([a?b("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,e(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
+new Menu(mxUtils.bind(this,function(a,c){b.menus.addInsertTableCellItem(a,c)})));var k=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(a,b){k.funct(a,b);this.addMenuItems(a,["editDiagram"],b)})));this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=g&&b.menus.addSubmenu("language",a,c);b.menus.addSubmenu("units",a,c);"1"==urlParams.sketch?b.menus.addMenuItems(a,["-","configuration","-","showStartScreen"],
+c):(a.addSeparator(c),b.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],c),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c),!b.isOfflineApp()&&isLocalStorage&&b.menus.addMenuItem(a,"plugins",c),a.addSeparator(c),b.menus.addMenuItem(a,"configuration",c));a.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),
+c)})));mxUtils.bind(this,function(){var a=this.get("insert"),c=a.funct;a.funct=function(a,d){"1"==urlParams.sketch?(b.menus.addMenuItems(a,["insertFreehand"],d),b.insertTemplateEnabled&&!b.isOffline()&&b.menus.addMenuItems(a,["insertTemplate"],d)):(c.apply(this,arguments),b.menus.addSubmenu("table",a,d),a.addSeparator(d));b.menus.addMenuItems(a,["-","toggleShapes"],d)}})();var m="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),l=function(a,c,d,e){a.addItem(d,
+null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<m.length;c++)"-"==m[c]?a.addSeparator(b):l(a,b,mxResources.get(m[c])+"...",m[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d=b.menus.addMenuItem(a,
+"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://www.diagrams.net/doc/faq/math-typesetting")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c);"1"!=urlParams.sketch&&b.menus.addMenuItems(a,["-","fullscreen","toggleDarkMode"],c)})))};EditorUi.prototype.installFormatToolbar=function(a){var b=this.editor.graph,c=document.createElement("div");c.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";
+b.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(d,e){0<b.getSelectionCount()?(a.appendChild(c),c.innerHTML="Selected: "+b.getSelectionCount()):null!=c.parentNode&&c.parentNode.removeChild(c)}))};var x=EditorUi.prototype.init;EditorUi.prototype.init=function(){function b(a,b,c){var d=l.menus.get(a),e=t.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),q);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";
+e.style.top="6px";e.style.marginRight="6px";e.style.height="30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));l.menus.menuCreated(d,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition=
+"right 6px center",e.style.backgroundRepeat="no-repeat",e.style.paddingRight="22px");return e}function e(a,b,c,d,e,f){var g=document.createElement("a");g.className="geMenuItem";g.style.display="inline-block";g.style.boxSizing="border-box";g.style.height="30px";g.style.padding="6px";g.style.position="relative";g.style.verticalAlign="top";g.style.top="0px";"1"==urlParams.sketch&&(g.style.borderStyle="none",g.style.boxShadow="none",g.style.padding="6px",g.style.margin="0px");null!=l.statusContainer?
+p.insertBefore(g,l.statusContainer):p.appendChild(g);null!=f?(g.style.backgroundImage="url("+f+")",g.style.backgroundPosition="center center",g.style.backgroundRepeat="no-repeat",g.style.backgroundSize="24px 24px",g.style.width="34px"):mxUtils.write(g,a);mxEvent.addListener(g,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(g,"click",function(a){"disabled"!=g.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(g.style.marginRight=
+"4px");null!=d&&g.setAttribute("title",d);null!=e&&(a=function(){e.isEnabled()?(g.removeAttribute("disabled"),g.style.cursor="pointer"):(g.setAttribute("disabled","disabled"),g.style.cursor="default")},e.addListener("stateChanged",a),n.addListener("enabledChanged",a),a());return g}function f(a,b,c){c=document.createElement("div");c.className="geMenuItem";c.style.display="inline-block";c.style.verticalAlign="top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position=
+"relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow="none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(c,l.statusContainer):p.appendChild(c);return c}function g(){for(var a=p.firstChild;null!=a;){var d=a.nextSibling;"geMenuItem"!=a.className&&
+"geItem"!=a.className||a.parentNode.removeChild(a);a=d}q=p.firstChild;c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>c||"1"==urlParams.sketch)||b("diagram");if("1"!=urlParams.sketch&&(f([a?b("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,e(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),e(mxResources.get("format"),l.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+l.actions.get("formatPanel").shortcut+")",l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
null)],a?60:null),d=b("insert",!0,a?J:null),f([d,e(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":null)],a?60:null),411<=c&&(f([ba,ka],60),520<=c&&(f([ta,640<=c?e("",
O.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",O,aa):null,640<=c?e("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,Q):null],60),720<=c)))){var g=e("",fa.funct,null,mxResources.get("dark"),fa,Editor.isDarkMode()?ia:la);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ia:la)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,l.statusContainer):p.appendChild(g)}a=
@@ -11707,12 +11708,12 @@ this.keyHandler.bindAction(75,!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E
parseInt(this.div.style.left)-150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,n=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(l,p);l.statusContainer=l.createStatusContainer();
l.statusContainer.style.position="relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var u=l.hideCurrentMenu;l.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.apply(this,arguments);var a=l.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=
a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);p.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else p.removeAttribute("title")};l.setStatusText(l.editor.getStatus());p.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";
-p.appendChild(l.buttonContainer);l.menubarContainer=l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,y=document.createElement("div");y.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?
+p.appendChild(l.buttonContainer);l.menubarContainer=l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?
"0px":"47px";var Z=l.menus.get("viewZoom"),J="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
R="1"==urlParams.sketch?document.createElement("div"):null,S="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){if(null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch)){this.scratchpad=null;this.toggleScratchpad();var a=l.actions.outlineWindow;
null!=a&&(a.outline.outline.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),l.actions.outlineWindow.update())}n.refresh();n.view.validateBackground()}));if("1"==urlParams.sketch){if(null!=n.freehand){n.freehand.setAutoInsert(!0);n.freehand.setAutoScroll(!0);n.freehand.setOpenFill(!0);var ca=n.freehand.createStyle;n.freehand.createStyle=function(a){return ca.apply(this,arguments)+"sketch=0;"};Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&
!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=l.hoverIcons){var ga=l.hoverIcons.update;l.hoverIcons.update=function(){n.freehand.isDrawing()||ga.apply(this,arguments)}}}S.className="geToolbarContainer";R.className="geToolbarContainer";Y.className="geToolbarContainer";p.className="geToolbarContainer";l.picker=S;var X=!1;mxEvent.addListener(p,"mouseenter",function(){l.statusContainer.style.display=
-"inline-block"});mxEvent.addListener(p,"mouseleave",function(){X||(l.statusContainer.style.display="none")});var W=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):l.notificationBtn.removeAttribute("title"))});l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=
+"inline-block"});mxEvent.addListener(p,"mouseleave",function(){X||(l.statusContainer.style.display="none")});var W=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):l.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed&&l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=
l.statusContainer.firstChild?W(l.statusContainer.firstChild.getAttribute("title")):W(l.editor.getStatus());var a=l.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=l.notificationBtn&&l.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',l.statusContainer.style.display="inline-block",X=!0):(l.statusContainer.style.display="none",
X=!1)}else l.statusContainer.style.display="inline-block",W(null),X=!0}));T=b("diagram",null,IMAGE_PATH+"/drawlogo.svg");T.style.boxShadow="none";T.style.opacity="0.4";T.style.padding="6px";T.style.margin="0px";Y.appendChild(T);l.statusContainer.style.position="";l.statusContainer.style.display="none";l.statusContainer.style.margin="0px";l.statusContainer.style.padding="6px 0px";l.statusContainer.style.maxWidth=Math.min(c-240,280)+"px";l.statusContainer.style.display="inline-block";l.statusContainer.style.textOverflow=
"ellipsis";l.buttonContainer.style.position="";l.buttonContainer.style.paddingRight="0px";l.buttonContainer.style.display="inline-block";var ja=mxUtils.bind(this,function(){function a(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=null!=c?c:"default";a.style.margin="2px 0px";S.appendChild(a);mxUtils.br(S);return a}function b(b,c,d){b=e("",b.funct,null,c,b,d);b.style.width="40px";return a(b,null,"pointer")}S.innerHTML="";a(l.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",
@@ -11720,9 +11721,9 @@ X=!1)}else l.statusContainer.style.display="inline-block",W(null),X=!0}));T=b("d
160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");a(l.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;curved=1;rounded=0;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;");b.geometry.setTerminalPoint(new mxPoint(0,
0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;a(l.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));b=b.clone();b.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=a(l.sidebar.createEdgeTemplateFromCells([b],
b.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid lightgray";b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(l.actions.get("insertFreehand"),mxResources.get("freehand"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTQuNSw4YzEuMDQsMCwyLjM0LTEuNSw0LjI1LTEuNWMxLjUyLDAsMi43NSwxLjIzLDIuNzUsMi43NWMwLDIuMDQtMS45OSwzLjE1LTMuOTEsNC4yMkM1LjQyLDE0LjY3LDQsMTUuNTcsNCwxNyBjMCwxLjEsMC45LDIsMiwydjJjLTIuMjEsMC00LTEuNzktNC00YzAtMi43MSwyLjU2LTQuMTQsNC42Mi01LjI4YzEuNDItMC43OSwyLjg4LTEuNiwyLjg4LTIuNDdjMC0wLjQxLTAuMzQtMC43NS0wLjc1LTAuNzUgQzcuNSw4LjUsNi4yNSwxMCw0LjUsMTBDMy4xMiwxMCwyLDguODgsMiw3LjVDMiw1LjQ1LDQuMTcsMi44Myw1LDJsMS40MSwxLjQxQzUuNDEsNC40Miw0LDYuNDMsNCw3LjVDNCw3Ljc4LDQuMjIsOCw0LjUsOHogTTgsMjEgbDMuNzUsMGw4LjA2LTguMDZsLTMuNzUtMy43NUw4LDE3LjI1TDgsMjF6IE0xMCwxOC4wOGw2LjA2LTYuMDZsMC45MiwwLjkyTDEwLjkyLDE5TDEwLDE5TDEwLDE4LjA4eiBNMjAuMzcsNi4yOSBjLTAuMzktMC4zOS0xLjAyLTAuMzktMS40MSwwbC0xLjgzLDEuODNsMy43NSwzLjc1bDEuODMtMS44M2MwLjM5LTAuMzksMC4zOS0xLjAyLDAtMS40MUwyMC4zNyw2LjI5eiIvPjwvc3ZnPg==");
-b(l.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==");var c=l.actions.get("toggleShapes");
-b(c,mxResources.get("shapes")+" ("+c.shortcut+")",J)});ja();l.addListener("darkModeChanged",mxUtils.bind(this,function(){ja()}))}else l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus())}));if(null!=Z){var da=function(){n.popupMenuHandler.hideMenu();var a=n.view.scale,b=n.view.translate.x,c=n.view.translate.y;l.actions.get("resetView").funct();1E-5>Math.abs(a-n.view.scale)&&b==n.view.translate.x&&c==n.view.translate.y&&l.actions.get(n.pageVisible?
-"fitPage":"fitWindow").funct()},O=l.actions.get("zoomIn"),aa="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
+var c=l.actions.get("toggleShapes");b(c,mxResources.get("shapes")+" ("+c.shortcut+")",J);b(l.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==")});
+ja();l.addListener("darkModeChanged",mxUtils.bind(this,function(){ja()}))}else l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus())}));if(null!=Z){var da=function(){n.popupMenuHandler.hideMenu();var a=n.view.scale,b=n.view.translate.x,c=n.view.translate.y;l.actions.get("resetView").funct();1E-5>Math.abs(a-n.view.scale)&&b==n.view.translate.x&&c==n.view.translate.y&&l.actions.get(n.pageVisible?"fitPage":"fitWindow").funct()},O=l.actions.get("zoomIn"),
+aa="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
V=l.actions.get("zoomOut"),Q="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
ea=l.actions.get("resetView"),U=l.actions.get("fullscreen"),fa=l.actions.get("toggleDarkMode"),la="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
ia="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+",
@@ -11733,28 +11734,28 @@ n.isEditing()?"inline-block":"none";ka.style.display=ba.style.display;ba.style.o
"/"+mxResources.get("resetView"));T.style.display="inline-block";T.style.cursor="pointer";T.style.textAlign="center";T.style.whiteSpace="nowrap";T.style.paddingRight="10px";T.style.textDecoration="none";T.style.verticalAlign="top";T.style.padding="6px 0";T.style.fontSize="14px";T.style.width="40px";T.style.opacity="0.4";R.appendChild(T);mxEvent.addListener(T,"click",da);da=e("",O.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",O,aa);da.style.opacity="0.4";R.appendChild(da);
var ha=this.createPageMenuTab(!1);ha.style.display="none";ha.style.position="";ha.style.marginLeft="";ha.style.top="";ha.style.left="";ha.style.height="100%";ha.style.lineHeight="";ha.style.borderStyle="none";ha.style.padding="3px 0";ha.style.margin="0px";ha.style.background="";ha.style.border="";ha.style.boxShadow="none";ha.style.verticalAlign="top";ha.firstChild.style.height="100%";ha.firstChild.style.opacity="0.6";ha.firstChild.style.margin="0px";R.appendChild(ha);var oa=e("",fa.funct,null,mxResources.get("dark"),
fa,Editor.isDarkMode()?ia:la);oa.style.opacity="0.4";R.appendChild(oa);l.addListener("darkModeChanged",mxUtils.bind(this,function(){oa.style.backgroundImage="url("+(Editor.isDarkMode()?ia:la)+")"}));l.addListener("fileDescriptorChanged",function(){ha.style.display="1"==urlParams.pages||null!=l.pages&&1<l.pages.length?"inline-block":"none"});l.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:20px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";
-Y.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";R.style.cssText="position:absolute;right:20px;bottom:20px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;background-color:#fff;";y.appendChild(Y);y.appendChild(R);S.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 10px 6px;white-space:nowrap;background-color:#fff;transform:translate(0, -50%);top:50%;";
-y.appendChild(S);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(y)}else p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;",this.tabContainer.style.right="70px",T=t.addMenu("100%",Z.funct),T.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)"),T.style.whiteSpace="nowrap",T.style.paddingRight="10px",T.style.textDecoration="none",T.style.textDecoration="none",T.style.overflow="hidden",T.style.visibility=
-"hidden",T.style.textAlign="center",T.style.cursor="pointer",T.style.height=parseInt(l.tabContainerHeight)-1+"px",T.style.lineHeight=parseInt(l.tabContainerHeight)+1+"px",T.style.position="absolute",T.style.display="block",T.style.fontSize="12px",T.style.width="59px",T.style.right="0px",T.style.bottom="0px",T.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",T.style.backgroundPosition="right 6px center",T.style.backgroundRepeat="no-repeat",y.appendChild(T);Y=mxUtils.bind(this,function(){T.innerHTML=
-Math.round(100*l.editor.graph.view.scale)+"%"});l.editor.graph.view.addListener(mxEvent.EVENT_SCALE,Y);l.editor.addListener("resetGraphView",Y);l.editor.addListener("pageSelected",Y);var na=l.setGraphEnabled;l.setGraphEnabled=function(){na.apply(this,arguments);null!=this.tabContainer&&(T.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==R?this.tabContainerHeight+"px":"0px")}}y.appendChild(p);y.appendChild(l.diagramContainer);
-k.appendChild(y);l.updateTabContainer();null==R&&y.appendChild(l.tabContainer);var pa=null;g();mxEvent.addListener(window,"resize",function(){g();null!=l.sidebarWindow&&l.sidebarWindow.window.fit();null!=l.formatWindow&&l.formatWindow.window.fit();null!=l.actions.outlineWindow&&l.actions.outlineWindow.window.fit();null!=l.actions.layersWindow&&l.actions.layersWindow.window.fit();null!=l.menus.tagsWindow&&l.menus.tagsWindow.window.fit();null!=l.menus.findWindow&&l.menus.findWindow.window.fit();null!=
-l.menus.findReplaceWindow&&l.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var d=EditorUi.initTheme;EditorUi.initTheme=function(){d.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();(function(){var a=mxGuide.prototype.move;mxGuide.prototype.move=function(b,c,d,m){var f=c.y,e=c.x,g=!1,l=!1;if(null!=this.states&&null!=b&&null!=c){var p=this,q=new mxCellState,t=this.graph.getView().scale,u=Math.max(2,this.getGuideTolerance()/2);q.x=b.x+e;q.y=b.y+f;q.width=b.width;q.height=b.height;for(var v=[],y=[],x=0;x<this.states.length;x++){var A=this.states[x];A instanceof mxCellState&&(m||!this.graph.isCellSelected(A.cell))&&((q.x>=A.x&&q.x<=A.x+A.width||A.x>=q.x&&A.x<=q.x+q.width)&&(q.y>
-A.y+A.height+4||q.y+q.height+4<A.y)?v.push(A):(q.y>=A.y&&q.y<=A.y+A.height||A.y>=q.y&&A.y<=q.y+q.height)&&(q.x>A.x+A.width+4||q.x+q.width+4<A.x)&&y.push(A))}var E=0,z=0,B=A=0,H=0,D=0,C=0,F=0,G=5*t;if(1<v.length){v.push(q);v.sort(function(a,b){return a.y-b.y});var L=!1,x=q==v[0],t=q==v[v.length-1];if(!x&&!t)for(x=1;x<v.length-1;x++)if(q==v[x]){t=v[x-1];x=v[x+1];A=z=B=(x.y-t.y-t.height-q.height)/2;break}for(x=0;x<v.length-1;x++){var t=v[x],I=v[x+1],M=q==t||q==I,I=I.y-t.y-t.height,L=L|q==t;if(0==z&&
-0==E)z=I,E=1;else if(Math.abs(z-I)<=(M||1==x&&L?u:0))E+=1;else if(1<E&&L){v=v.slice(0,x+1);break}else if(3<=v.length-x&&!L)E=0,A=z=0!=B?B:0,v.splice(0,0==x?1:x),x=-1;else break;0!=A||M||(z=A=I)}3==v.length&&v[1]==q&&(A=0)}if(1<y.length){y.push(q);y.sort(function(a,b){return a.x-b.x});L=!1;x=q==y[0];t=q==y[y.length-1];if(!x&&!t)for(x=1;x<y.length-1;x++)if(q==y[x]){t=y[x-1];x=y[x+1];C=D=F=(x.x-t.x-t.width-q.width)/2;break}for(x=0;x<y.length-1;x++){t=y[x];I=y[x+1];M=q==t||q==I;I=I.x-t.x-t.width;L|=q==
-t;if(0==D&&0==H)D=I,H=1;else if(Math.abs(D-I)<=(M||1==x&&L?u:0))H+=1;else if(1<H&&L){y=y.slice(0,x+1);break}else if(3<=y.length-x&&!L)H=0,C=D=0!=F?F:0,y.splice(0,0==x?1:x),x=-1;else break;0!=C||M||(D=C=I)}3==y.length&&y[1]==q&&(C=0)}u=function(a,b,c,d){var e=[],f;d?(d=G,f=0):(d=0,f=G);e.push(new mxPoint(a.x-d,a.y-f));e.push(new mxPoint(a.x+d,a.y+f));e.push(a);e.push(b);e.push(new mxPoint(b.x-d,b.y-f));e.push(new mxPoint(b.x+d,b.y+f));if(null!=c)return c.points=e,c;a=new mxPolyline(e,mxConstants.GUIDE_COLOR,
-mxConstants.GUIDE_STROKEWIDTH);a.dialect=mxConstants.DIALECT_SVG;a.pointerEvents=!1;a.init(p.graph.getView().getOverlayPane());return a};D=function(a,b){if(a&&null!=p.guidesArrHor)for(var c=0;c<p.guidesArrHor.length;c++)p.guidesArrHor[c].node.style.visibility="hidden";if(b&&null!=p.guidesArrVer)for(c=0;c<p.guidesArrVer.length;c++)p.guidesArrVer[c].node.style.visibility="hidden"};if(1<H&&H==y.length-1){H=[];F=p.guidesArrHor;g=[];e=0;x=y[0]==q?1:0;L=y[x].y+y[x].height;if(0<C)for(x=0;x<y.length-1;x++)t=
-y[x],I=y[x+1],q==t?(e=I.x-t.width-C,g.push(new mxPoint(e+t.width+G,L)),g.push(new mxPoint(I.x-G,L))):q==I?(g.push(new mxPoint(t.x+t.width+G,L)),e=t.x+t.width+C,g.push(new mxPoint(e-G,L))):(g.push(new mxPoint(t.x+t.width+G,L)),g.push(new mxPoint(I.x-G,L)));else t=y[0],x=y[2],e=t.x+t.width+(x.x-t.x-t.width-q.width)/2,g.push(new mxPoint(t.x+t.width+G,L)),g.push(new mxPoint(e-G,L)),g.push(new mxPoint(e+q.width+G,L)),g.push(new mxPoint(x.x-G,L));for(x=0;x<g.length;x+=2)y=g[x],C=g[x+1],y=u(y,C,null!=F?
-F[x/2]:null),y.node.style.visibility="visible",y.redraw(),H.push(y);for(x=g.length/2;null!=F&&x<F.length;x++)F[x].destroy();p.guidesArrHor=H;e-=b.x;g=!0}else D(!0);if(1<E&&E==v.length-1){H=[];F=p.guidesArrVer;l=[];f=0;x=v[0]==q?1:0;E=v[x].x+v[x].width;if(0<A)for(x=0;x<v.length-1;x++)t=v[x],I=v[x+1],q==t?(f=I.y-t.height-A,l.push(new mxPoint(E,f+t.height+G)),l.push(new mxPoint(E,I.y-G))):q==I?(l.push(new mxPoint(E,t.y+t.height+G)),f=t.y+t.height+A,l.push(new mxPoint(E,f-G))):(l.push(new mxPoint(E,t.y+
-t.height+G)),l.push(new mxPoint(E,I.y-G)));else t=v[0],x=v[2],f=t.y+t.height+(x.y-t.y-t.height-q.height)/2,l.push(new mxPoint(E,t.y+t.height+G)),l.push(new mxPoint(E,f-G)),l.push(new mxPoint(E,f+q.height+G)),l.push(new mxPoint(E,x.y-G));for(x=0;x<l.length;x+=2)y=l[x],C=l[x+1],y=u(y,C,null!=F?F[x/2]:null,!0),y.node.style.visibility="visible",y.redraw(),H.push(y);for(x=l.length/2;null!=F&&x<F.length;x++)F[x].destroy();p.guidesArrVer=H;f-=b.y;l=!0}else D(!1,!0)}if(g||l)return q=new mxPoint(e,f),v=a.call(this,
+Y.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";R.style.cssText="position:absolute;right:20px;bottom:20px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;background-color:#fff;";A.appendChild(Y);A.appendChild(R);S.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 10px 6px;white-space:nowrap;background-color:#fff;transform:translate(0, -50%);top:50%;";
+A.appendChild(S);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(A)}else p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;",this.tabContainer.style.right="70px",T=t.addMenu("100%",Z.funct),T.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)"),T.style.whiteSpace="nowrap",T.style.paddingRight="10px",T.style.textDecoration="none",T.style.textDecoration="none",T.style.overflow="hidden",T.style.visibility=
+"hidden",T.style.textAlign="center",T.style.cursor="pointer",T.style.height=parseInt(l.tabContainerHeight)-1+"px",T.style.lineHeight=parseInt(l.tabContainerHeight)+1+"px",T.style.position="absolute",T.style.display="block",T.style.fontSize="12px",T.style.width="59px",T.style.right="0px",T.style.bottom="0px",T.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",T.style.backgroundPosition="right 6px center",T.style.backgroundRepeat="no-repeat",A.appendChild(T);Y=mxUtils.bind(this,function(){T.innerHTML=
+Math.round(100*l.editor.graph.view.scale)+"%"});l.editor.graph.view.addListener(mxEvent.EVENT_SCALE,Y);l.editor.addListener("resetGraphView",Y);l.editor.addListener("pageSelected",Y);var na=l.setGraphEnabled;l.setGraphEnabled=function(){na.apply(this,arguments);null!=this.tabContainer&&(T.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==R?this.tabContainerHeight+"px":"0px")}}A.appendChild(p);A.appendChild(l.diagramContainer);
+k.appendChild(A);l.updateTabContainer();null==R&&A.appendChild(l.tabContainer);var pa=null;g();mxEvent.addListener(window,"resize",function(){g();null!=l.sidebarWindow&&l.sidebarWindow.window.fit();null!=l.formatWindow&&l.formatWindow.window.fit();null!=l.actions.outlineWindow&&l.actions.outlineWindow.window.fit();null!=l.actions.layersWindow&&l.actions.layersWindow.window.fit();null!=l.menus.tagsWindow&&l.menus.tagsWindow.window.fit();null!=l.menus.findWindow&&l.menus.findWindow.window.fit();null!=
+l.menus.findReplaceWindow&&l.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var d=EditorUi.initTheme;EditorUi.initTheme=function(){d.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();(function(){var a=mxGuide.prototype.move;mxGuide.prototype.move=function(b,c,d,m){var f=c.y,e=c.x,g=!1,l=!1;if(null!=this.states&&null!=b&&null!=c){var p=this,q=new mxCellState,t=this.graph.getView().scale,u=Math.max(2,this.getGuideTolerance()/2);q.x=b.x+e;q.y=b.y+f;q.width=b.width;q.height=b.height;for(var v=[],A=[],x=0;x<this.states.length;x++){var y=this.states[x];y instanceof mxCellState&&(m||!this.graph.isCellSelected(y.cell))&&((q.x>=y.x&&q.x<=y.x+y.width||y.x>=q.x&&y.x<=q.x+q.width)&&(q.y>
+y.y+y.height+4||q.y+q.height+4<y.y)?v.push(y):(q.y>=y.y&&q.y<=y.y+y.height||y.y>=q.y&&y.y<=q.y+q.height)&&(q.x>y.x+y.width+4||q.x+q.width+4<y.x)&&A.push(y))}var E=0,z=0,B=y=0,G=0,D=0,C=0,F=0,H=5*t;if(1<v.length){v.push(q);v.sort(function(a,b){return a.y-b.y});var L=!1,x=q==v[0],t=q==v[v.length-1];if(!x&&!t)for(x=1;x<v.length-1;x++)if(q==v[x]){t=v[x-1];x=v[x+1];y=z=B=(x.y-t.y-t.height-q.height)/2;break}for(x=0;x<v.length-1;x++){var t=v[x],I=v[x+1],M=q==t||q==I,I=I.y-t.y-t.height,L=L|q==t;if(0==z&&
+0==E)z=I,E=1;else if(Math.abs(z-I)<=(M||1==x&&L?u:0))E+=1;else if(1<E&&L){v=v.slice(0,x+1);break}else if(3<=v.length-x&&!L)E=0,y=z=0!=B?B:0,v.splice(0,0==x?1:x),x=-1;else break;0!=y||M||(z=y=I)}3==v.length&&v[1]==q&&(y=0)}if(1<A.length){A.push(q);A.sort(function(a,b){return a.x-b.x});L=!1;x=q==A[0];t=q==A[A.length-1];if(!x&&!t)for(x=1;x<A.length-1;x++)if(q==A[x]){t=A[x-1];x=A[x+1];C=D=F=(x.x-t.x-t.width-q.width)/2;break}for(x=0;x<A.length-1;x++){t=A[x];I=A[x+1];M=q==t||q==I;I=I.x-t.x-t.width;L|=q==
+t;if(0==D&&0==G)D=I,G=1;else if(Math.abs(D-I)<=(M||1==x&&L?u:0))G+=1;else if(1<G&&L){A=A.slice(0,x+1);break}else if(3<=A.length-x&&!L)G=0,C=D=0!=F?F:0,A.splice(0,0==x?1:x),x=-1;else break;0!=C||M||(D=C=I)}3==A.length&&A[1]==q&&(C=0)}u=function(a,b,c,d){var e=[],f;d?(d=H,f=0):(d=0,f=H);e.push(new mxPoint(a.x-d,a.y-f));e.push(new mxPoint(a.x+d,a.y+f));e.push(a);e.push(b);e.push(new mxPoint(b.x-d,b.y-f));e.push(new mxPoint(b.x+d,b.y+f));if(null!=c)return c.points=e,c;a=new mxPolyline(e,mxConstants.GUIDE_COLOR,
+mxConstants.GUIDE_STROKEWIDTH);a.dialect=mxConstants.DIALECT_SVG;a.pointerEvents=!1;a.init(p.graph.getView().getOverlayPane());return a};D=function(a,b){if(a&&null!=p.guidesArrHor)for(var c=0;c<p.guidesArrHor.length;c++)p.guidesArrHor[c].node.style.visibility="hidden";if(b&&null!=p.guidesArrVer)for(c=0;c<p.guidesArrVer.length;c++)p.guidesArrVer[c].node.style.visibility="hidden"};if(1<G&&G==A.length-1){G=[];F=p.guidesArrHor;g=[];e=0;x=A[0]==q?1:0;L=A[x].y+A[x].height;if(0<C)for(x=0;x<A.length-1;x++)t=
+A[x],I=A[x+1],q==t?(e=I.x-t.width-C,g.push(new mxPoint(e+t.width+H,L)),g.push(new mxPoint(I.x-H,L))):q==I?(g.push(new mxPoint(t.x+t.width+H,L)),e=t.x+t.width+C,g.push(new mxPoint(e-H,L))):(g.push(new mxPoint(t.x+t.width+H,L)),g.push(new mxPoint(I.x-H,L)));else t=A[0],x=A[2],e=t.x+t.width+(x.x-t.x-t.width-q.width)/2,g.push(new mxPoint(t.x+t.width+H,L)),g.push(new mxPoint(e-H,L)),g.push(new mxPoint(e+q.width+H,L)),g.push(new mxPoint(x.x-H,L));for(x=0;x<g.length;x+=2)A=g[x],C=g[x+1],A=u(A,C,null!=F?
+F[x/2]:null),A.node.style.visibility="visible",A.redraw(),G.push(A);for(x=g.length/2;null!=F&&x<F.length;x++)F[x].destroy();p.guidesArrHor=G;e-=b.x;g=!0}else D(!0);if(1<E&&E==v.length-1){G=[];F=p.guidesArrVer;l=[];f=0;x=v[0]==q?1:0;E=v[x].x+v[x].width;if(0<y)for(x=0;x<v.length-1;x++)t=v[x],I=v[x+1],q==t?(f=I.y-t.height-y,l.push(new mxPoint(E,f+t.height+H)),l.push(new mxPoint(E,I.y-H))):q==I?(l.push(new mxPoint(E,t.y+t.height+H)),f=t.y+t.height+y,l.push(new mxPoint(E,f-H))):(l.push(new mxPoint(E,t.y+
+t.height+H)),l.push(new mxPoint(E,I.y-H)));else t=v[0],x=v[2],f=t.y+t.height+(x.y-t.y-t.height-q.height)/2,l.push(new mxPoint(E,t.y+t.height+H)),l.push(new mxPoint(E,f-H)),l.push(new mxPoint(E,f+q.height+H)),l.push(new mxPoint(E,x.y-H));for(x=0;x<l.length;x+=2)A=l[x],C=l[x+1],A=u(A,C,null!=F?F[x/2]:null,!0),A.node.style.visibility="visible",A.redraw(),G.push(A);for(x=l.length/2;null!=F&&x<F.length;x++)F[x].destroy();p.guidesArrVer=G;f-=b.y;l=!0}else D(!1,!0)}if(g||l)return q=new mxPoint(e,f),v=a.call(this,
b,q,d,m),g&&!l?q.y=v.y:l&&!g&&(q.x=v.x),v.y!=q.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),v.x!=q.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),q;D(!0,!0);return a.apply(this,arguments)};var d=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(a){d.call(this,a);var b=this.guidesArrVer,c=this.guidesArrHor;if(null!=b)for(var m=0;m<b.length;m++)b[m].node.style.visibility=a?"visible":"hidden";if(null!=
c)for(m=0;m<c.length;m++)c[m].node.style.visibility=a?"visible":"hidden"};var c=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){c.call(this);var a=this.guidesArrVer,d=this.guidesArrHor;if(null!=a){for(var f=0;f<a.length;f++)a[f].destroy();this.guidesArrVer=null}if(null!=d){for(f=0;f<d.length;f++)d[f].destroy();this.guidesArrHor=null}}})();function mxRuler(a,d,c,b){function g(){var b=a.diagramContainer;p.style.top=b.offsetTop-e+"px";p.style.left=b.offsetLeft-e+"px";p.style.width=(c?0:b.offsetWidth)+e+"px";p.style.height=(c?b.offsetHeight:0)+e+"px"}function f(a,b,c){if(null!=m)return a;var d;return function(){var e=this,f=arguments,g=c&&!d;clearTimeout(d);d=setTimeout(function(){d=null;c||a.apply(e,f)},b);g&&a.apply(e,f)}}var m=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,
n=window.cancelAnimationFrame||window.mozCancelAnimationFrame,e=this.RULER_THICKNESS,k=this;this.unit=d;var l="dark"!=window.uiTheme?{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"}:{bkgClr:"#202020",outBkgClr:"#2a2a2a",cornerClr:"#2a2a2a",strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"},p=document.createElement("div");p.style.position="absolute";p.style.background=l.bkgClr;p.style[c?"borderRight":"borderBottom"]="0.5px solid "+
l.strokeClr;p.style.borderLeft="0.5px solid "+l.strokeClr;document.body.appendChild(p);mxEvent.disableContextMenu(p);this.editorUiRefresh=a.refresh;a.refresh=function(b){k.editorUiRefresh.apply(a,arguments);g()};g();var q=document.createElement("canvas");q.width=p.offsetWidth;q.height=p.offsetHeight;p.style.overflow="hidden";q.style.position="relative";p.appendChild(q);var t=q.getContext("2d");this.ui=a;var u=a.editor.graph;this.graph=u;this.container=p;this.canvas=q;var v=function(a,b,d,e,f){a=Math.round(a);
-b=Math.round(b);d=Math.round(d);e=Math.round(e);t.beginPath();t.moveTo(a+.5,b+.5);t.lineTo(d+.5,e+.5);t.stroke();f&&(c?(t.save(),t.translate(a,b),t.rotate(-Math.PI/2),t.fillText(f,0,0),t.restore()):t.fillText(f,a,b))},y=function(){t.clearRect(0,0,q.width,q.height);t.beginPath();t.lineWidth=.7;t.strokeStyle=l.strokeClr;t.setLineDash([]);t.font="9px Arial";t.textAlign="center";var a=u.view.scale,b=u.view.getBackgroundPageBounds(),d=u.view.translate,f=u.pageVisible,d=f?e+(c?b.y-u.container.scrollTop:
+b=Math.round(b);d=Math.round(d);e=Math.round(e);t.beginPath();t.moveTo(a+.5,b+.5);t.lineTo(d+.5,e+.5);t.stroke();f&&(c?(t.save(),t.translate(a,b),t.rotate(-Math.PI/2),t.fillText(f,0,0),t.restore()):t.fillText(f,a,b))},A=function(){t.clearRect(0,0,q.width,q.height);t.beginPath();t.lineWidth=.7;t.strokeStyle=l.strokeClr;t.setLineDash([]);t.font="9px Arial";t.textAlign="center";var a=u.view.scale,b=u.view.getBackgroundPageBounds(),d=u.view.translate,f=u.pageVisible,d=f?e+(c?b.y-u.container.scrollTop:
b.x-u.container.scrollLeft):e+(c?d.y*a-u.container.scrollTop:d.x*a-u.container.scrollLeft),g=0;f&&(g=u.getPageLayout(),g=c?g.y*u.pageFormat.height:g.x*u.pageFormat.width);var m,n,p;switch(k.unit){case mxConstants.POINTS:m=p=10;n=[3,5,5,5,5,10,5,5,5,5];break;case mxConstants.MILLIMETERS:p=10;m=mxConstants.PIXELS_PER_MM;n=[5,3,3,3,3,6,3,3,3,3];break;case mxConstants.INCHES:p=.5>=a||4<=a?8:16,m=mxConstants.PIXELS_PER_INCH/p,n=[5,3,5,3,7,3,5,3,7,3,5,3,7,3,5,3]}var x=m;2<=a?x=m/(2*Math.floor(a/2)):.5>=
a&&(x=m*Math.floor(1/a/2)*(k.unit==mxConstants.MILLIMETERS?2:1));m=null;b=f?Math.min(d+(c?b.height:b.width),c?q.height:q.width):c?q.height:q.width;if(f)if(t.fillStyle=l.outBkgClr,c){var y=d-e;0<y&&t.fillRect(0,e,e,y);b<q.height&&t.fillRect(0,b,e,q.height)}else y=d-e,0<y&&t.fillRect(e,0,y,e),b<q.width&&t.fillRect(b,0,q.width,e);t.fillStyle=l.fontClr;for(f=f?d:d%(x*a);f<=b;f+=x*a)if(y=Math.round((f-d)/a/x),!(f<e||y==m)){m=y;var A=null;0==y%p&&(A=k.formatText(g+y*x)+"");c?v(e-n[Math.abs(y)%p],f,e,f,
-A):v(f,e-n[Math.abs(y)%p],f,e,A)}t.lineWidth=1;v(c?0:e,c?e:0,e,e);t.fillStyle=l.cornerClr;t.fillRect(0,0,e,e)},x=-1,A=function(){null!=m?(null!=n&&n(x),x=m(y)):y()};this.drawRuler=A;this.sizeListener=d=f(function(){var a=u.container;c?(a=a.offsetHeight+e,q.height!=a&&(q.height=a,p.style.height=a+"px",A())):(a=a.offsetWidth+e,q.width!=a&&(q.width=a,p.style.width=a+"px",A()))},10);this.pageListener=function(){A()};this.scrollListener=b=f(function(){var a=c?u.container.scrollTop:u.container.scrollLeft;
-k.lastScroll!=a&&(k.lastScroll=a,A())},10);this.unitListener=function(a,b){k.setUnit(b.getProperty("unit"))};u.addListener(mxEvent.SIZE,d);u.container.addEventListener("scroll",b);u.view.addListener("unitChanged",this.unitListener);a.addListener("pageViewChanged",this.pageListener);a.addListener("pageScaleChanged",this.pageListener);a.addListener("pageFormatChanged",this.pageListener);this.setStyle=function(a){l=a;p.style.background=l.bkgClr;y()};this.origGuideMove=mxGuide.prototype.move;mxGuide.prototype.move=
+A):v(f,e-n[Math.abs(y)%p],f,e,A)}t.lineWidth=1;v(c?0:e,c?e:0,e,e);t.fillStyle=l.cornerClr;t.fillRect(0,0,e,e)},x=-1,y=function(){null!=m?(null!=n&&n(x),x=m(A)):A()};this.drawRuler=y;this.sizeListener=d=f(function(){var a=u.container;c?(a=a.offsetHeight+e,q.height!=a&&(q.height=a,p.style.height=a+"px",y())):(a=a.offsetWidth+e,q.width!=a&&(q.width=a,p.style.width=a+"px",y()))},10);this.pageListener=function(){y()};this.scrollListener=b=f(function(){var a=c?u.container.scrollTop:u.container.scrollLeft;
+k.lastScroll!=a&&(k.lastScroll=a,y())},10);this.unitListener=function(a,b){k.setUnit(b.getProperty("unit"))};u.addListener(mxEvent.SIZE,d);u.container.addEventListener("scroll",b);u.view.addListener("unitChanged",this.unitListener);a.addListener("pageViewChanged",this.pageListener);a.addListener("pageScaleChanged",this.pageListener);a.addListener("pageFormatChanged",this.pageListener);this.setStyle=function(a){l=a;p.style.background=l.bkgClr;A()};this.origGuideMove=mxGuide.prototype.move;mxGuide.prototype.move=
function(a,b,d,f){var g;if(c&&4<a.height||!c&&4<a.width){if(null!=k.guidePart)try{t.putImageData(k.guidePart.imgData1,k.guidePart.x1,k.guidePart.y1),t.putImageData(k.guidePart.imgData2,k.guidePart.x2,k.guidePart.y2),t.putImageData(k.guidePart.imgData3,k.guidePart.x3,k.guidePart.y3)}catch(J){}g=k.origGuideMove.apply(this,arguments);try{var m,n,p,q,u,x,y,z,A;t.lineWidth=.5;t.strokeStyle=l.guideClr;t.setLineDash([2]);c?(n=a.y+g.y+e-this.graph.container.scrollTop,m=0,u=n+a.height/2,q=e/2,z=n+a.height,
y=0,p=t.getImageData(m,n-1,e,3),v(m,n,e,n),n--,x=t.getImageData(q,u-1,e,3),v(q,u,e,u),u--,A=t.getImageData(y,z-1,e,3),v(y,z,e,z),z--):(n=0,m=a.x+g.x+e-this.graph.container.scrollLeft,u=e/2,q=m+a.width/2,z=0,y=m+a.width,p=t.getImageData(m-1,n,3,e),v(m,n,m,e),m--,x=t.getImageData(q-1,u,3,e),v(q,u,q,e),q--,A=t.getImageData(y-1,z,3,e),v(y,z,y,e),y--);if(null==k.guidePart||k.guidePart.x1!=m||k.guidePart.y1!=n)k.guidePart={imgData1:p,x1:m,y1:n,imgData2:x,x2:q,y2:u,imgData3:A,x3:y,y3:z}}catch(J){}}else g=
k.origGuideMove.apply(this,arguments);return g};this.origGuideDestroy=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){var a=k.origGuideDestroy.apply(this,arguments);if(null!=k.guidePart)try{t.putImageData(k.guidePart.imgData1,k.guidePart.x1,k.guidePart.y1),t.putImageData(k.guidePart.imgData2,k.guidePart.x2,k.guidePart.y2),t.putImageData(k.guidePart.imgData3,k.guidePart.x3,k.guidePart.y3),k.guidePart=null}catch(z){}return a}}mxRuler.prototype.RULER_THICKNESS=14;
@@ -11764,12 +11765,12 @@ this.pageListener);null!=this.container&&this.container.parentNode.removeChild(t
function mxDualRuler(a,d){var c=new mxPoint(mxRuler.prototype.RULER_THICKNESS,mxRuler.prototype.RULER_THICKNESS);this.editorUiGetDiagContOffset=a.getDiagramContainerOffset;a.getDiagramContainerOffset=function(){return c};this.editorUiRefresh=a.refresh;this.ui=a;this.origGuideMove=mxGuide.prototype.move;this.origGuideDestroy=mxGuide.prototype.destroy;this.vRuler=new mxRuler(a,d,!0);this.hRuler=new mxRuler(a,d,!1,!0);var b=mxUtils.bind(this,function(b){var c=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,
function(b){c=null!=a.currentMenu;mxEvent.consume(b)}),null,mxUtils.bind(this,function(d){if(a.editor.graph.isEnabled()&&!a.editor.graph.isMouseDown&&(mxEvent.isTouchEvent(d)||mxEvent.isPopupTrigger(d))){a.editor.graph.popupMenuHandler.hideMenu();a.hideCurrentMenu();if(!mxEvent.isTouchEvent(d)||!c){var f=new mxPopupMenu(mxUtils.bind(this,function(b,c){a.menus.addMenuItems(b,["points","millimeters"],c)}));f.div.className+=" geMenubarMenu";f.smartSeparators=!0;f.showDisabled=!0;f.autoExpand=!0;f.hideMenu=
mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(f,arguments);a.resetCurrentMenu();f.destroy()});var e=mxEvent.getClientX(d),g=mxEvent.getClientY(d);f.popup(e,g,null,d);a.setCurrentMenu(f,b)}mxEvent.consume(d)}}))});b(this.hRuler.container);b(this.vRuler.container);this.vRuler.drawRuler();this.hRuler.drawRuler()}mxDualRuler.prototype.setUnit=function(a){this.vRuler.setUnit(a);this.hRuler.setUnit(a)};mxDualRuler.prototype.setStyle=function(a){this.vRuler.setStyle(a);this.hRuler.setStyle(a)};
-mxDualRuler.prototype.destroy=function(){this.vRuler.destroy();this.hRuler.destroy();this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.ui.getDiagramContainerOffset=this.editorUiGetDiagContOffset};function mxFreehand(a){var d=null!=a.view&&null!=a.view.canvas?a.view.canvas.ownerSVGElement:null;if(null!=a.container&&null!=d){var c=mxFreehand.prototype.NORMAL_SMOOTHING,b=null,g=[],f,m=[],n,e=!1,k=!0,l=!1,p=!1,q=!1,t=[],u=!1,v=!0;this.setClosedPath=function(a){e=a};this.setAutoClose=function(a){k=a};this.setAutoInsert=function(a){l=a};this.setAutoScroll=function(a){p=a};this.setOpenFill=function(a){q=a};this.setStopClickEnabled=function(a){v=a};this.setSmoothing=function(a){c=a};var y=function(b){u=
-b;a.getRubberband().setEnabled(!b);a.graphHandler.setSelectEnabled(!b);a.graphHandler.setMoveEnabled(!b);a.container.style.cursor=b?"crosshair":"";a.fireEvent(new mxEventObject("freehandStateChanged"))};this.startDrawing=function(){y(!0)};this.isDrawing=function(){return u};var x=mxUtils.bind(this,function(a){if(b){var c=n.length,d=v&&0<m.length&&null!=n&&2>n.length;d||m.push.apply(m,n);n=[];m.push(null);g.push(b);b=null;(d||l)&&this.stopDrawing();l&&2<=c&&this.startDrawing();mxEvent.consume(a)}});
+mxDualRuler.prototype.destroy=function(){this.vRuler.destroy();this.hRuler.destroy();this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.ui.getDiagramContainerOffset=this.editorUiGetDiagContOffset};function mxFreehand(a){var d=null!=a.view&&null!=a.view.canvas?a.view.canvas.ownerSVGElement:null;if(null!=a.container&&null!=d){var c=mxFreehand.prototype.NORMAL_SMOOTHING,b=null,g=[],f,m=[],n,e=!1,k=!0,l=!1,p=!1,q=!1,t=[],u=!1,v=!0;this.setClosedPath=function(a){e=a};this.setAutoClose=function(a){k=a};this.setAutoInsert=function(a){l=a};this.setAutoScroll=function(a){p=a};this.setOpenFill=function(a){q=a};this.setStopClickEnabled=function(a){v=a};this.setSmoothing=function(a){c=a};var A=function(b){u=
+b;a.getRubberband().setEnabled(!b);a.graphHandler.setSelectEnabled(!b);a.graphHandler.setMoveEnabled(!b);a.container.style.cursor=b?"crosshair":"";a.fireEvent(new mxEventObject("freehandStateChanged"))};this.startDrawing=function(){A(!0)};this.isDrawing=function(){return u};var x=mxUtils.bind(this,function(a){if(b){var c=n.length,d=v&&0<m.length&&null!=n&&2>n.length;d||m.push.apply(m,n);n=[];m.push(null);g.push(b);b=null;(d||l)&&this.stopDrawing();l&&2<=c&&this.startDrawing();mxEvent.consume(a)}});
this.createStyle=function(a){return mxConstants.STYLE_SHAPE+"="+a+";fillColor=none;"};this.stopDrawing=function(){if(0<g.length){for(var c=m[0].x,d=m[0].x,f=m[0].y,l=m[0].y,n=1;n<m.length;n++)null!=m[n]&&(c=Math.max(c,m[n].x),d=Math.min(d,m[n].x),f=Math.max(f,m[n].y),l=Math.min(l,m[n].y));c-=d;f-=l;if(0<c&&0<f){var p=100/c,t=100/f;m.map(function(a){if(null==a)return a;a.x=(a.x-d)*p;a.y=(a.y-l)*t;return a});for(var u='<shape strokewidth="inherit"><foreground>',v=0,n=0;n<m.length;n++){var x=m[n];if(null==
-x){var x=!1,v=m[v],z=m[n-1];!e&&k&&(x=v.x-z.x,z=v.y-z.y,x=Math.sqrt(x*x+z*z)<=a.tolerance);if(e||x)u+='<line x="'+v.x.toFixed(2)+'" y="'+v.y.toFixed(2)+'"/>';u+="</path>"+(q||e||x?"<fillstroke/>":"<stroke/>");v=n+1}else u=n==v?u+('<path><move x="'+x.x.toFixed(2)+'" y="'+x.y.toFixed(2)+'"/>'):u+('<line x="'+x.x.toFixed(2)+'" y="'+x.y.toFixed(2)+'"/>')}var n=this.createStyle("stencil("+Graph.compress(u+"</foreground></shape>")+")"),u=a.view.scale,v=a.view.translate,A=new mxCell("",new mxGeometry(d/
-u-v.x,l/u-v.y,c/u,f/u),n);A.vertex=1;a.model.beginUpdate();try{A=a.addCell(A)}finally{a.model.endUpdate()}a.fireEvent(new mxEventObject("cellsInserted","cells",[A]));a.fireEvent(new mxEventObject("freehandInserted","cell",A));setTimeout(function(){a.setSelectionCells([A])},10)}for(n=0;n<g.length;n++)g[n].parentNode.removeChild(g[n]);b=null;g=[];m=[]}y(!1)};a.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){var c=b.getProperty("eventName"),d=b.getProperty("event");c==mxEvent.MOUSE_MOVE&&
-u&&(null!=d.sourceState&&d.sourceState.setCursor("crosshair"),d.consume())}));var A=new mxCell;A.edge=!0;a.addMouseListener({mouseDown:mxUtils.bind(this,function(c,e){var g=e.getEvent();if(u&&!mxEvent.isPopupTrigger(g)&&!mxEvent.isMultiTouchEvent(g)){var k=a.getCurrentCellStyle(A),l=parseFloat(a.currentVertexStyle[mxConstants.STYLE_STROKEWIDTH]||1),l=Math.max(1,l*a.view.scale);b=document.createElementNS("http://www.w3.org/2000/svg","path");b.setAttribute("fill","none");b.setAttribute("stroke",mxUtils.getValue(a.currentVertexStyle,
+x){var x=!1,v=m[v],y=m[n-1];!e&&k&&(x=v.x-y.x,y=v.y-y.y,x=Math.sqrt(x*x+y*y)<=a.tolerance);if(e||x)u+='<line x="'+v.x.toFixed(2)+'" y="'+v.y.toFixed(2)+'"/>';u+="</path>"+(q||e||x?"<fillstroke/>":"<stroke/>");v=n+1}else u=n==v?u+('<path><move x="'+x.x.toFixed(2)+'" y="'+x.y.toFixed(2)+'"/>'):u+('<line x="'+x.x.toFixed(2)+'" y="'+x.y.toFixed(2)+'"/>')}var n=this.createStyle("stencil("+Graph.compress(u+"</foreground></shape>")+")"),u=a.view.scale,v=a.view.translate,z=new mxCell("",new mxGeometry(d/
+u-v.x,l/u-v.y,c/u,f/u),n);z.vertex=1;a.model.beginUpdate();try{z=a.addCell(z)}finally{a.model.endUpdate()}a.fireEvent(new mxEventObject("cellsInserted","cells",[z]));a.fireEvent(new mxEventObject("freehandInserted","cell",z));setTimeout(function(){a.setSelectionCells([z])},10)}for(n=0;n<g.length;n++)g[n].parentNode.removeChild(g[n]);b=null;g=[];m=[]}A(!1)};a.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){var c=b.getProperty("eventName"),d=b.getProperty("event");c==mxEvent.MOUSE_MOVE&&
+u&&(null!=d.sourceState&&d.sourceState.setCursor("crosshair"),d.consume())}));var y=new mxCell;y.edge=!0;a.addMouseListener({mouseDown:mxUtils.bind(this,function(c,e){var g=e.getEvent();if(u&&!mxEvent.isPopupTrigger(g)&&!mxEvent.isMultiTouchEvent(g)){var k=a.getCurrentCellStyle(y),l=parseFloat(a.currentVertexStyle[mxConstants.STYLE_STROKEWIDTH]||1),l=Math.max(1,l*a.view.scale);b=document.createElementNS("http://www.w3.org/2000/svg","path");b.setAttribute("fill","none");b.setAttribute("stroke",mxUtils.getValue(a.currentVertexStyle,
mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,"#000")));b.setAttribute("stroke-width",l);"1"==a.currentVertexStyle[mxConstants.STYLE_DASHED]&&(k=a.currentVertexStyle[mxConstants.STYLE_DASH_PATTERN]||"3 3",k=k.split(" ").map(function(a){return parseFloat(a)*l}).join(" "),b.setAttribute("stroke-dasharray",k));t=[];g=E(g);z(g);f="M"+g.x+" "+g.y;m.push(g);n=[];b.setAttribute("d",f);d.appendChild(b);e.consume()}}),mouseMove:mxUtils.bind(this,function(c,d){if(b){var e=d.getEvent(),
e=E(e);z(e);var g=B(0);if(g){f+=" L"+g.x+" "+g.y;m.push(g);var k="";n=[];for(var l=2;l<t.length;l+=2)g=B(l),k+=" L"+g.x+" "+g.y,n.push(g);b.setAttribute("d",f+k)}p&&(g=a.view.translate,a.scrollRectToVisible((new mxRectangle(e.x-g.x,e.y-g.y)).grow(20)));d.consume()}}),mouseUp:mxUtils.bind(this,function(a,c){b&&(x(c.getEvent()),c.consume())})});var E=function(b){return mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b))},z=function(a){for(t.push(a);t.length>c;)t.shift()},B=
function(a){var b=t.length;if(1===b%2||b>=c){var d=0,e=0,f,g=0;for(f=a;f<b;f++)g++,a=t[f],d+=a.x,e+=a.y;return{x:d/g,y:e/g}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;mxFreehand.prototype.NORMAL_SMOOTHING=8;mxFreehand.prototype.VERY_SMOOTH_SMOOTHING=12;mxFreehand.prototype.SUPER_SMOOTH_SMOOTHING=16;mxFreehand.prototype.HYPER_SMOOTH_SMOOTHING=20;
diff --git a/src/main/webapp/js/diagramly/App.js b/src/main/webapp/js/diagramly/App.js
index fc3309a6..6ccddf0a 100644
--- a/src/main/webapp/js/diagramly/App.js
+++ b/src/main/webapp/js/diagramly/App.js
@@ -243,7 +243,7 @@ App.MODE_EMBED = 'embed';
/**
* Sets the delay for autosave in milliseconds. Default is 2000.
*/
-App.DROPBOX_APPKEY = 'libwls2fa9szdji';
+App.DROPBOX_APPKEY = window.DRAWIO_DROPBOX_ID;
/**
* Sets URL to load the Dropbox SDK from
@@ -3883,7 +3883,7 @@ App.prototype.pickFile = function(mode)
{
peer.pickFile();
}
- else if (mode == App.MODE_DEVICE && 'showOpenFilePicker' in window && !EditorUi.isElectronApp)
+ else if (mode == App.MODE_DEVICE && EditorUi.nativeFileSupport)
{
window.showOpenFilePicker().then(mxUtils.bind(this, function(fileHandles)
{
@@ -4426,7 +4426,7 @@ App.prototype.saveFile = function(forceDialog, success)
if (prev == null && mode == App.MODE_DEVICE)
{
- if (file != null && 'showSaveFilePicker' in window)
+ if (file != null && EditorUi.nativeFileSupport)
{
this.showSaveFilePicker(mxUtils.bind(this, function(fileHandle, desc)
{
@@ -4718,7 +4718,7 @@ App.prototype.createFile = function(title, data, libs, mode, done, replace, fold
this.fileCreated(file, libs, replace, done, clibs);
}), error);
}
- else if (!tempFile && mode == App.MODE_DEVICE && 'showSaveFilePicker' in window && !EditorUi.isElectronApp)
+ else if (!tempFile && mode == App.MODE_DEVICE && EditorUi.nativeFileSupport)
{
complete();
diff --git a/src/main/webapp/js/diagramly/DropboxClient.js b/src/main/webapp/js/diagramly/DropboxClient.js
index 53c287a6..2d24fe10 100644
--- a/src/main/webapp/js/diagramly/DropboxClient.js
+++ b/src/main/webapp/js/diagramly/DropboxClient.js
@@ -2,12 +2,17 @@
* Copyright (c) 2006-2017, JGraph Ltd
* Copyright (c) 2006-2017, Gaudenz Alder
*/
-DropboxClient = function(editorUi)
+//Add a closure to hide the class private variables without changing the code a lot
+(function()
+{
+
+var _token = null;
+
+window.DropboxClient = function(editorUi)
{
DrawioClient.call(this, editorUi, 'dbauth');
- this.client = new Dropbox({clientId: App.DROPBOX_APPKEY});
- this.client.setAccessToken(this.token);
+ this.client = new Dropbox({clientId: this.clientId});
};
// Extends DrawioClient
@@ -34,14 +39,20 @@ DropboxClient.prototype.writingFile = false;
*/
DropboxClient.prototype.maxRetries = 4;
+DropboxClient.prototype.clientId = window.DRAWIO_DROPBOX_ID;
+
+DropboxClient.prototype.redirectUri = window.location.protocol + '//' + window.location.host + '/dropbox';
+
/**
* Authorizes the client, gets the userId and calls <open>.
*/
DropboxClient.prototype.logout = function()
{
+ //Send to server to clear refresh token cookie
+ this.ui.editor.loadUrl(this.redirectUri + '?doLogout=1&state=' + encodeURIComponent('cId=' + this.clientId + '&domain=' + window.location.hostname));
this.clearPersistentToken();
this.setUser(null);
- this.token = null;
+ _token = null;
this.client.authTokenRevoke().then(mxUtils.bind(this, function()
{
@@ -85,6 +96,7 @@ DropboxClient.prototype.updateUser = function(success, error, failOnAuth)
{
this.setUser(null);
this.client.setAccessToken(null);
+ _token = null;
this.authenticate(mxUtils.bind(this, function()
{
@@ -104,81 +116,138 @@ DropboxClient.prototype.updateUser = function(success, error, failOnAuth)
*/
DropboxClient.prototype.authenticate = function(success, error)
{
+ var req = new mxXmlRequest(this.redirectUri + '?getState=1', null, 'GET');
+
+ req.send(mxUtils.bind(this, function(req)
+ {
+ if (req.getStatus() >= 200 && req.getStatus() <= 299)
+ {
+ this.authenticateStep2(req.getText(), success, error);
+ }
+ else if (error != null)
+ {
+ error(req);
+ }
+ }), error);
+};
+
+DropboxClient.prototype.authenticateStep2 = function(state, success, error)
+{
if (window.onDropboxCallback == null)
{
var auth = mxUtils.bind(this, function()
{
var acceptAuthResponse = true;
+
+ var authRemembered = this.getPersistentToken(true);
- this.ui.showAuthDialog(this, true, mxUtils.bind(this, function(remember, authSuccess)
+ if (authRemembered != null)
{
- var win = window.open(this.client.getAuthenticationUrl('https://' +
- window.location.host + '/dropbox.html'), 'dbauth');
+ var req = new mxXmlRequest(this.redirectUri + '?state=' + encodeURIComponent('cId=' + this.clientId + '&domain=' + window.location.hostname + '&token=' + state), null, 'GET'); //To identify which app/domain is used
- if (win != null)
+ req.send(mxUtils.bind(this, function(req)
{
- window.onDropboxCallback = mxUtils.bind(this, function(token, authWindow)
+ if (req.getStatus() >= 200 && req.getStatus() <= 299)
+ {
+ _token = JSON.parse(req.getText()).access_token;
+ this.client.setAccessToken(_token);
+ this.setUser(null);
+ success();
+ }
+ else
{
- if (acceptAuthResponse)
+ this.clearPersistentToken();
+ this.setUser(null);
+ _token = null;
+ this.client.setAccessToken(null);
+
+ if (req.getStatus() == 401) // (Unauthorized) [e.g, invalid refresh token]
{
- window.onDropboxCallback = null;
- acceptAuthResponse = false;
-
- try
+ auth();
+ }
+ else
+ {
+ error({message: mxResources.get('accessDenied'), retry: auth});
+ }
+ }
+ }), error);
+ }
+ else
+ {
+ this.ui.showAuthDialog(this, true, mxUtils.bind(this, function(remember, authSuccess)
+ {
+ var win = window.open('https://www.dropbox.com/oauth2/authorize?client_id=' +
+ this.clientId + (remember? '&token_access_type=offline' : '') +
+ '&redirect_uri=' + encodeURIComponent(this.redirectUri) +
+ '&response_type=code&state=' + encodeURIComponent('cId=' + this.clientId + //To identify which app/domain is used
+ '&domain=' + window.location.hostname + '&token=' + state), 'dbauth');
+
+ if (win != null)
+ {
+ window.onDropboxCallback = mxUtils.bind(this, function(newAuthInfo, authWindow)
+ {
+ if (acceptAuthResponse)
{
- if (token == null)
- {
- error({message: mxResources.get('accessDenied'), retry: auth});
- }
- else
+ window.onDropboxCallback = null;
+ acceptAuthResponse = false;
+
+ try
{
- if (authSuccess != null)
+ if (newAuthInfo == null)
+ {
+ error({message: mxResources.get('accessDenied'), retry: auth});
+ }
+ else
{
- authSuccess();
+ if (authSuccess != null)
+ {
+ authSuccess();
+ }
+
+ _token = newAuthInfo.access_token;
+ this.client.setAccessToken(_token);
+ this.setUser(null);
+
+ if (remember)
+ {
+ this.setPersistentToken('remembered');
+ }
+
+ success();
}
-
- this.client.setAccessToken(token);
- this.setUser(null);
-
- if (remember)
+ }
+ catch (e)
+ {
+ error(e);
+ }
+ finally
+ {
+ if (authWindow != null)
{
- this.setPersistentToken(token);
+ authWindow.close();
}
-
- success();
}
}
- catch (e)
- {
- error(e);
- }
- finally
+ else if (authWindow != null)
{
- if (authWindow != null)
- {
- authWindow.close();
- }
+ authWindow.close();
}
- }
- else if (authWindow != null)
- {
- authWindow.close();
- }
- });
- }
- else
- {
- error({message: mxResources.get('serviceUnavailableOrBlocked'), retry: auth});
- }
- }), mxUtils.bind(this, function()
- {
- if (acceptAuthResponse)
+ });
+ }
+ else
+ {
+ error({message: mxResources.get('serviceUnavailableOrBlocked'), retry: auth});
+ }
+ }), mxUtils.bind(this, function()
{
- window.onDropboxCallback = null;
- acceptAuthResponse = false;
- error({message: mxResources.get('accessDenied'), retry: auth});
- }
- }));
+ if (acceptAuthResponse)
+ {
+ window.onDropboxCallback = null;
+ acceptAuthResponse = false;
+ error({message: mxResources.get('accessDenied'), retry: auth});
+ }
+ }));
+ }
});
auth();
@@ -192,7 +261,7 @@ DropboxClient.prototype.authenticate = function(success, error)
/**
* Authorizes the client, gets the userId and calls <open>.
*/
-DropboxClient.prototype.executePromise = function(promise, success, error)
+DropboxClient.prototype.executePromise = function(promiseFn, success, error)
{
var doExecute = mxUtils.bind(this, function(failOnAuth)
{
@@ -204,6 +273,9 @@ DropboxClient.prototype.executePromise = function(promise, success, error)
error({code: App.ERROR_TIMEOUT, retry: fn});
}), this.ui.timeout);
+ //Dropbox client start executing the promise once created so auth fails, so we send a function instead to delay promise creation
+ var promise = promiseFn();
+
promise.then(mxUtils.bind(this, function(response)
{
window.clearTimeout(timeoutThread);
@@ -225,6 +297,7 @@ DropboxClient.prototype.executePromise = function(promise, success, error)
{
this.setUser(null);
this.client.setAccessToken(null);
+ _token = null;
if (!failOnAuth)
{
@@ -267,7 +340,7 @@ DropboxClient.prototype.executePromise = function(promise, success, error)
}
});
- if (this.client.getAccessToken() === null)
+ if (_token == null)
{
this.authenticate(function()
{
@@ -307,7 +380,7 @@ DropboxClient.prototype.getFile = function(path, success, error, asLibrary)
this.ui.convertFile(path, name, null, this.extension, success, error);
});
- if (this.token != null)
+ if (_token != null)
{
fn();
}
@@ -441,6 +514,7 @@ DropboxClient.prototype.readFile = function(arg, success, error, binary)
{
this.client.setAccessToken(null);
this.setUser(null);
+ _token = null;
if (!failOnAuth)
{
@@ -483,7 +557,7 @@ DropboxClient.prototype.readFile = function(arg, success, error, binary)
}
});
- if (this.client.getAccessToken() === null)
+ if (_token == null)
{
this.authenticate(function()
{
@@ -504,9 +578,12 @@ DropboxClient.prototype.readFile = function(arg, success, error, binary)
*/
DropboxClient.prototype.checkExists = function(filename, fn, noConfirm)
{
- var promise = this.client.filesGetMetadata({path: '/' + filename.toLowerCase(), include_deleted: false});
+ var promiseFn = mxUtils.bind(this, function()
+ {
+ return this.client.filesGetMetadata({path: '/' + filename.toLowerCase(), include_deleted: false});
+ });
- this.executePromise(promise, mxUtils.bind(this, function(response)
+ this.executePromise(promiseFn, mxUtils.bind(this, function(response)
{
if (noConfirm)
{
@@ -563,8 +640,12 @@ DropboxClient.prototype.renameFile = function(file, filename, success, error)
{
var thenHandler = mxUtils.bind(this, function(deleteResponse)
{
- var move = this.client.filesMove({from_path: file.stat.path_display, to_path: '/' +
- filename, autorename: false});
+ var move = mxUtils.bind(this, function()
+ {
+ return this.client.filesMove({from_path: file.stat.path_display, to_path: '/' +
+ filename, autorename: false});
+ });
+
this.executePromise(move, success, error);
});
@@ -576,8 +657,12 @@ DropboxClient.prototype.renameFile = function(file, filename, success, error)
else
{
// Deletes file first to avoid conflict in filesMove (non-atomic)
- var promise = this.client.filesDelete({path: '/' + filename.toLowerCase()});
- this.executePromise(promise, thenHandler, error);
+ var promiseFn = mxUtils.bind(this, function()
+ {
+ return this.client.filesDelete({path: '/' + filename.toLowerCase()});
+ });
+
+ this.executePromise(promiseFn, thenHandler, error);
}
}
else
@@ -660,10 +745,14 @@ DropboxClient.prototype.saveFile = function(filename, data, success, error, fold
folder = (folder != null) ? folder : '';
// Mute switch is ignored
- var promise = this.client.filesUpload({path: '/' + folder + filename,
- mode: {'.tag': 'overwrite'}, mute: true,
- contents: new Blob([data], {type: 'text/plain'})});
- this.executePromise(promise, success, error);
+ var promiseFn = mxUtils.bind(this, function()
+ {
+ return this.client.filesUpload({path: '/' + folder + filename,
+ mode: {'.tag': 'overwrite'}, mute: true,
+ contents: new Blob([data], {type: 'text/plain'})});
+ });
+
+ this.executePromise(promiseFn, success, error);
}
};
@@ -921,3 +1010,5 @@ DropboxClient.prototype.createFile = function(file, success, error)
}
}), error, binary);
};
+
+})(); \ No newline at end of file
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index 661f1391..12e6b5a3 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -1872,6 +1872,17 @@
Graph.prototype.defaultEdgeStyle = config.defaultEdgeStyle;
}
+ // Overrides zoom factor
+ if (config.zoomFactor != null)
+ {
+ var val = parseFloat(config.zoomFactor);
+
+ if (!isNaN(val) && val > 1)
+ {
+ Graph.prototype.zoomFactor = val;
+ }
+ }
+
// Overrides grid steps
if (config.gridSteps != null)
{
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index 98b40f56..c3177fc0 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -83,6 +83,12 @@
window.process.versions != null && window.process.versions['electron'] != null;
/**
+ * Shortcut for capability check.
+ */
+ EditorUi.nativeFileSupport = !mxClient.IS_OP && !EditorUi.isElectronApp &&
+ 'showSaveFilePicker' in window && 'showOpenFilePicker' in window;
+
+ /**
* Specifies if drafts should be saved in IndexedDB.
*/
EditorUi.enableDrafts = !mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp &&
@@ -6642,7 +6648,7 @@
/**
* Imports the given XML into the existing diagram.
*/
- EditorUi.prototype.importXml = function(xml, dx, dy, crop, noErrorHandling, addNewPage)
+ EditorUi.prototype.importXml = function(xml, dx, dy, crop, noErrorHandling, addNewPage, applyDefaultStyles)
{
dx = (dx != null) ? dx : 0;
dy = (dy != null) ? dy : 0;
@@ -6742,6 +6748,14 @@
}
}
}
+
+ if (applyDefaultStyles)
+ {
+ this.insertHandler(cells, null, null,
+ Graph.prototype.defaultVertexStyle,
+ Graph.prototype.defaultEdgeStyle,
+ true, true);
+ }
}
finally
{
diff --git a/src/main/webapp/js/diagramly/Extensions.js b/src/main/webapp/js/diagramly/Extensions.js
index 0a7fca1a..fcbb3bc4 100644
--- a/src/main/webapp/js/diagramly/Extensions.js
+++ b/src/main/webapp/js/diagramly/Extensions.js
@@ -13479,6 +13479,7 @@ LucidImporter = {};
}
handleTextRotation(v, p);
+ addCustomData(v, p, graph);
if (p.Hidden)
{
diff --git a/src/main/webapp/js/diagramly/Init.js b/src/main/webapp/js/diagramly/Init.js
index 7dbeeb89..5f70dd81 100644
--- a/src/main/webapp/js/diagramly/Init.js
+++ b/src/main/webapp/js/diagramly/Init.js
@@ -30,6 +30,7 @@ window.DRAWIO_GITLAB_ID = window.DRAWIO_GITLAB_ID || 'c9b9d3fcdce2dec7abe3ab21ad
window.DRAWIO_GITHUB_URL = window.DRAWIO_GITHUB_URL || 'https://github.com';
window.DRAWIO_GITHUB_API_URL = window.DRAWIO_GITHUB_API_URL || 'https://api.github.com';
window.DRAWIO_GITHUB_ID = window.DRAWIO_GITHUB_ID || '4f88e2ec436d76c2ee6e';
+window.DRAWIO_DROPBOX_ID = window.DRAWIO_DROPBOX_ID || 'libwls2fa9szdji';
window.SAVE_URL = window.SAVE_URL || 'save';
window.OPEN_URL = window.OPEN_URL || 'import';
window.PROXY_URL = window.PROXY_URL || 'proxy';
diff --git a/src/main/webapp/js/diagramly/Menus.js b/src/main/webapp/js/diagramly/Menus.js
index 79563a89..ebb14119 100644
--- a/src/main/webapp/js/diagramly/Menus.js
+++ b/src/main/webapp/js/diagramly/Menus.js
@@ -109,7 +109,8 @@
var insertPoint = editorUi.editor.graph.getFreeInsertPoint();
graph.setSelectionCells(editorUi.importXml(xml,
Math.max(insertPoint.x, 20),
- Math.max(insertPoint.y, 20), true));
+ Math.max(insertPoint.y, 20),
+ true, null, null, true));
graph.scrollCellToVisible(graph.getSelectionCell());
}
}, null, null, null, null, null, null, null, null, null, null,
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index 1f5e8e82..bcd9d6a4 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -419,7 +419,7 @@ EditorUi.initMinimalTheme = function()
'td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }' +
'div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:' + (Editor.isDarkMode() ? '#2a2a2a' : '#fff') + ' !important; }' +
'div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}' +
- 'div.mxWindow * { font-family: inherit !important; }' +
+ 'div.mxWindow *:not(svg *) { font-family: inherit !important; }' +
// Minimal Style UI
'html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }' +
'html div.geInactivePage { background: ' + (Editor.isDarkMode() ? '#2a2a2a' : 'rgb(249, 249, 249)') + ' !important; color: #A0A0A0 !important; } ' +
@@ -1102,7 +1102,17 @@ EditorUi.initMinimalTheme = function()
{
ui.menus.addInsertTableCellItem(menu, parent);
})));
-
+
+ // Adds XML option to import menu
+ var importMenu = this.get('importFrom');
+
+ this.put('importFrom', new Menu(mxUtils.bind(this, function(menu, parent)
+ {
+ importMenu.funct(menu, parent);
+
+ this.addMenuItems(menu, ['editDiagram'], parent);
+ })));
+
// Extras menu is labelled preferences but keeps ID for extensions
this.put('extras', new Menu(mxUtils.bind(this, function(menu, parent)
{
@@ -1467,6 +1477,7 @@ EditorUi.initMinimalTheme = function()
};
action.addListener('stateChanged', updateState);
+ graph.addListener('enabledChanged', updateState);
updateState();
}
@@ -1729,48 +1740,51 @@ EditorUi.initMinimalTheme = function()
// Connects the status bar to the editor status and
// moves status to bell icon tooltip for trivial messages
- ui.editor.addListener('statusChanged', mxUtils.bind(this, function()
+ if (urlParams['embed'] != '1')
{
- ui.setStatusText(ui.editor.getStatus());
-
- if (ui.statusContainer.children.length == 0 ||
- (ui.statusContainer.children.length == 1 &&
- ui.statusContainer.firstChild.getAttribute('class') == null))
+ ui.editor.addListener('statusChanged', mxUtils.bind(this, function()
{
- if (ui.statusContainer.firstChild != null)
+ ui.setStatusText(ui.editor.getStatus());
+
+ if (ui.statusContainer.children.length == 0 ||
+ (ui.statusContainer.children.length == 1 &&
+ ui.statusContainer.firstChild.getAttribute('class') == null))
{
- setNotificationTitle(ui.statusContainer.firstChild.getAttribute('title'));
+ if (ui.statusContainer.firstChild != null)
+ {
+ setNotificationTitle(ui.statusContainer.firstChild.getAttribute('title'));
+ }
+ else
+ {
+ setNotificationTitle(ui.editor.getStatus());
+ }
+
+ var file = ui.getCurrentFile();
+ var key = (file != null) ? file.savingStatusKey : DrawioFile.prototype.savingStatusKey;
+
+ if (ui.notificationBtn != null &&
+ ui.notificationBtn.getAttribute('title') == mxResources.get(key) + '...')
+ {
+ ui.statusContainer.innerHTML = '<img title="' + mxUtils.htmlEntities(
+ mxResources.get(key)) + '...' + '"src="' + IMAGE_PATH + '/spin.gif">';
+ ui.statusContainer.style.display = 'inline-block';
+ statusVisible = true;
+ }
+ else
+ {
+ ui.statusContainer.style.display = 'none';
+ statusVisible = false;
+ }
}
else
{
- setNotificationTitle(ui.editor.getStatus());
- }
-
- var file = ui.getCurrentFile();
- var key = (file != null) ? file.savingStatusKey : DrawioFile.prototype.savingStatusKey;
-
- if (ui.notificationBtn != null &&
- ui.notificationBtn.getAttribute('title') == mxResources.get(key) + '...')
- {
- ui.statusContainer.innerHTML = '<img title="' + mxUtils.htmlEntities(
- mxResources.get(key)) + '...' + '"src="' + IMAGE_PATH + '/spin.gif">';
ui.statusContainer.style.display = 'inline-block';
+ setNotificationTitle(null);
+
statusVisible = true;
}
- else
- {
- ui.statusContainer.style.display = 'none';
- statusVisible = false;
- }
- }
- else
- {
- ui.statusContainer.style.display = 'inline-block';
- setNotificationTitle(null);
-
- statusVisible = true;
- }
- }));
+ }));
+ }
elt = addMenu('diagram', null, IMAGE_PATH + '/drawlogo.svg');
elt.style.boxShadow = 'none';
@@ -1863,10 +1877,10 @@ EditorUi.initMinimalTheme = function()
addAction(ui.actions.get('insertFreehand'), mxResources.get('freehand'),
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTQuNSw4YzEuMDQsMCwyLjM0LTEuNSw0LjI1LTEuNWMxLjUyLDAsMi43NSwxLjIzLDIuNzUsMi43NWMwLDIuMDQtMS45OSwzLjE1LTMuOTEsNC4yMkM1LjQyLDE0LjY3LDQsMTUuNTcsNCwxNyBjMCwxLjEsMC45LDIsMiwydjJjLTIuMjEsMC00LTEuNzktNC00YzAtMi43MSwyLjU2LTQuMTQsNC42Mi01LjI4YzEuNDItMC43OSwyLjg4LTEuNiwyLjg4LTIuNDdjMC0wLjQxLTAuMzQtMC43NS0wLjc1LTAuNzUgQzcuNSw4LjUsNi4yNSwxMCw0LjUsMTBDMy4xMiwxMCwyLDguODgsMiw3LjVDMiw1LjQ1LDQuMTcsMi44Myw1LDJsMS40MSwxLjQxQzUuNDEsNC40Miw0LDYuNDMsNCw3LjVDNCw3Ljc4LDQuMjIsOCw0LjUsOHogTTgsMjEgbDMuNzUsMGw4LjA2LTguMDZsLTMuNzUtMy43NUw4LDE3LjI1TDgsMjF6IE0xMCwxOC4wOGw2LjA2LTYuMDZsMC45MiwwLjkyTDEwLjkyLDE5TDEwLDE5TDEwLDE4LjA4eiBNMjAuMzcsNi4yOSBjLTAuMzktMC4zOS0xLjAyLTAuMzktMS40MSwwbC0xLjgzLDEuODNsMy43NSwzLjc1bDEuODMtMS44M2MwLjM5LTAuMzksMC4zOS0xLjAyLDAtMS40MUwyMC4zNyw2LjI5eiIvPjwvc3ZnPg==');
- addAction(ui.actions.get('insertTemplate'), mxResources.get('template'),
- 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==');
var toggleShapesAction = ui.actions.get('toggleShapes');
addAction(toggleShapesAction, mxResources.get('shapes') + ' (' + toggleShapesAction.shortcut + ')', insertImage);
+ addAction(ui.actions.get('insertTemplate'), mxResources.get('template'),
+ 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==');
});
initPicker();
diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar-BPMN.js b/src/main/webapp/js/diagramly/sidebar/Sidebar-BPMN.js
index 25c4113c..a053c1d6 100644
--- a/src/main/webapp/js/diagramly/sidebar/Sidebar-BPMN.js
+++ b/src/main/webapp/js/diagramly/sidebar/Sidebar-BPMN.js
@@ -215,19 +215,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'points=[];html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;');
+ 'shape=mxgraph.bpmn.task;part=1;taskMarker=abstract;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -243,19 +243,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopStandard=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopStandard=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -271,19 +271,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiSeq=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiSeq=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -299,19 +299,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiParallel=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopMultiParallel=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -327,19 +327,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -355,19 +355,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopStandard=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopStandard=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -383,19 +383,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiSeq=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiSeq=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -411,19 +411,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiParallel=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;taskMarker=abstract;part=1;isLoopSub=1;isLoopMultiParallel=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -439,19 +439,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 400, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 400, 160),
- 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;verticalAlign=top;align=left;spacingLeft=5;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;verticalAlign=top;align=left;spacingLeft=5;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 400, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -467,19 +467,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -495,19 +495,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopStandard=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopStandard=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -523,19 +523,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiSeq=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiSeq=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -551,19 +551,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiParallel=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopMultiParallel=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -579,19 +579,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -607,19 +607,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopStandard=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopStandard=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -635,19 +635,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiSeq=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiSeq=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
@@ -663,19 +663,19 @@
var cell1 = new mxCell('',
new mxGeometry(0, 0, 120, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;bottomRightStyle=square;bottomLeftStyle=square;part=1;');
cell1.vertex = true;
bg.insert(cell1);
var cell2 = new mxCell('',
new mxGeometry(0, 0, 120, 60),
- 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiParallel=1;');
+ 'shape=mxgraph.bpmn.task;arcSize=0;part=1;taskMarker=abstract;isLoopSub=1;isLoopMultiParallel=1;connectable=0;');
cell2.vertex = true;
bg.insert(cell2);
var cell3 = new mxCell('',
new mxGeometry(0, 1, 20, 20),
- 'html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
+ 'connectable=0;html=1;shape=mxgraph.basic.rect;size=10;rectStyle=rounded;topRightStyle=square;topLeftStyle=square;fillColor=#C0C0C0;part=1;');
cell3.vertex = true;
cell3.geometry.relative = false;
bg.insert(cell3);
diff --git a/src/main/webapp/js/extensions.min.js b/src/main/webapp/js/extensions.min.js
index b38cb230..c3f9108c 100644
--- a/src/main/webapp/js/extensions.min.js
+++ b/src/main/webapp/js/extensions.min.js
@@ -1,325 +1,325 @@
LucidImporter={};
-(function(){function e(a){Ca="";try{if(a){var b=null;LucidImporter.advImpConfig&&LucidImporter.advImpConfig.fontMapping&&(b=LucidImporter.advImpConfig.fontMapping[a]);if(b){for(var c in b)Ca+=c+"="+b[c]+";";return b.fontFamily?"font-family: "+b.fontFamily:""}if("Liberation Sans"!=a)return Ca="fontFamily="+a+";","font-family: "+a+";"}}catch(La){}return""}function k(a){return Math.round(10*a)/10}function r(a,b,c){function h(a,b){var h="",g=a.t,d=a.l||{v:g&&"ul"==g.v?"auto":"decimal"};if(null==g||0!=
-F&&F==g.v&&m==d.v)null==g&&(F&&(h+=n(!0),F=!1),h+='<div style="',ma.push("div"));else{F&&(h+=n(!0));F=g.v;m=d.v;"ul"==g.v?(h+="<ul ",ma.push("ul")):(h+="<ol ",ma.push("ol"));h+='style="margin: 0px; padding-left: 10px;list-style-position: inside; list-style-type:';if("hl"==g.v)h+="upper-roman";else switch(d.v){case "auto":h+="disc";break;case "inv":h+="circle";break;case "disc":h+="circle";break;case "trib":h+="square";break;case "square":h+="square";break;case "dash":h+="square";break;case "heart":h+=
-"disc";break;default:h+="decimal"}h+='">'}if(null!=g){var h=h+('<li style="text-align:'+(a.a?a.a.v:c.TextAlign||"center")+";"),e,l;null!=b&&(b.c&&(e=b.c.v),b.s&&(l=b.s.v));try{var x=p[r],w=E[B],g=r;if(x&&w&&x.s<w.e)for(var f=x.s;null!=x&&x.s==f;)"s"==x.n?l=x.v:"c"==x.n&&(e=x.v),x=p[++g]}catch(Lc){console.log(Lc)}e=ea(e);null!=e&&(e=e.substring(0,7),h+="color:"+e+";");null!=l&&(h+="font-size:"+k(.75*l)+"px;");h+='">';ma.push("li");h+='<span style="';ma.push("span")}F||(l=e=a.a?a.a.v:c.TextAlign||"center",
-"left"==e?l="flex-start":"right"==e&&(l="flex-end"),h+="display: flex; justify-content: "+l+"; text-align: "+e+"; align-items: baseline; font-size: 0; line-height: 1.25;");a.il&&(h+="margin-left: "+Math.max(0,k(.75*a.il.v-(F?28:0)))+"px;");a.ir&&(h+="margin-right: "+k(.75*a.ir.v)+"px;");a.mt&&(h+="margin-top: "+k(.75*a.mt.v)+"px;");a.mb&&(h+="margin-bottom: "+k(.75*a.mb.v)+"px;");h+='margin-top: -2px;">';F||(h+="<span>",ma.push("span"));return h}function g(a){if(0==Object.keys(a).length)return"";
-var b="",h=0;if(a.lk){var g=a.lk;null!=g.v&&0<g.v.length&&(b+='<a href="'+l(g.v[0])+'">',z.push("a"),h++)}b+='<span style="';z.push("span");h++;b+="font-size:"+(a.s?k(.75*a.s.v):"13")+"px;";a.c&&(g=ea(a.c.v),null!=g&&(g=g.substring(0,7),b+="color:"+g+";"));if(a.b&&a.b.v||a.fc&&a.fc.v&&0==a.fc.v.indexOf("Bold"))b+="font-weight: bold;";a.i&&a.i.v&&(b+="font-style: italic;");a.ac&&a.ac.v&&(b+="text-transform: uppercase;");g=null;a.f?g=a.f.v:c.Font&&(g=c.Font);b+=e(g);g=[];a.u&&a.u.v&&g.push("underline");
-a.k&&a.k.v&&g.push("line-through");0<g.length&&(b+="text-decoration: "+g.join(" ")+";");b+='">';H.push(h);return b}function n(a){var b="";do{var c=ma.pop();if(!a&&F&&("ul"==c||"ol"==c)){ma.push(c);break}b+="</"+c+">"}while(0<ma.length);return b}function d(a,b,c,h){a=a?a.substring(b,c):"";F&&(a=a.trim());0==z.length&&0<a.length&&(a=g({dummy:1})+a);a=a.replace(/</g,"&lt;").replace(/>/g,"&gt;");do for(b=H.pop(),c=0;c<b;c++){var n=z.pop();a+="</"+n+">"}while(h&&0<z.length);return a}var x={a:!0,il:!0,
-ir:!0,mt:!0,mb:!0,p:!0,t:!0,l:!0},w={lk:!0,s:!0,c:!0,b:!0,fc:!0,i:!0,u:!0,k:!0,f:!0,ac:!0};b.sort(function(a,b){return a.s-b.s});var p=b.filter(function(a){return w[a.n]});p[0]&&0!=p[0].s&&p.unshift({s:0,n:"dummy",v:"",e:p[0].s});b=b.filter(function(a){return x[a.n]});for(var f=[0],ha=0;0<(ha=a.indexOf("\n",ha));)ha++,f.push(ha);for(var r=ha=0;r<b.length;r++){if(b[r].s>f[ha])b.splice(r,0,{s:f[ha],n:"a",v:c.TextAlign||"center"});else{for(var A=0;r+A<b.length&&b[r+A].s==f[ha];)A++;1<A&&(r+=A-1)}ha++}null!=
-f[ha]&&b.push({s:f[ha],n:"a",v:c.TextAlign||"center"});var f="",E=p.slice();E.sort(function(a,b){return a.e-b.e});for(var B=r=0,ha=0,A={},C={},z=[],H=[],ma=[],ia=!1,F=!1,m,K=0,O=0,Y=a.length,S=!0;ha<b.length||S;){S=!1;if(ha<b.length){var D=b[ha],aa=b[ha].s;ia&&(C={},f+=d(a,K,Y,!0),O=K=Y,f+=n());for(;null!=D&&D.s==aa;)C[D.n]=D,D=b[++ha];Y=null!=D?D.s:a.length;f+=h(C,A);ia&&(f+=g(A));ia=!0}for(;r>=B&&(r<p.length||B<E.length);)if(D=p[r],aa=E[B],D&&aa&&D.s<aa.e){if(D.s>=Y)break;K=D.s;0<K-O&&(f+=g(A)+
-d(a,O,K),O=K);for(;null!=D&&D.s==K;)A[D.n]=D,D=p[++r];f+=g(A)}else if(aa){if(aa.e>Y)break;O=aa.e;do delete A[aa.n],aa=E[++B];while(null!=aa&&aa.e==O);f+=d(a,K,O);K=O;0!=H.length||null!=D&&D.s==O||(p.splice(r,0,{s:O,n:"dummy",v:""}),E.splice(B,0,{e:D?D.s:Y,n:"dummy",v:""}))}else break}f+=d(null,null,null,!0);ia&&(O!=Y&&(f+=g({dummy:1})+d(a,O,Y)),f+=n(!0));return f}function f(a,b){z=!1;var c=null!=a.Text&&a.Text.t?a.Text:null!=a.Value&&a.Value.t?a.Value:null!=a.Lane_0&&a.Lane_0.t?a.Lane_0:null;null==
+(function(){function e(a){Ca="";try{if(a){var b=null;LucidImporter.advImpConfig&&LucidImporter.advImpConfig.fontMapping&&(b=LucidImporter.advImpConfig.fontMapping[a]);if(b){for(var c in b)Ca+=c+"="+b[c]+";";return b.fontFamily?"font-family: "+b.fontFamily:""}if("Liberation Sans"!=a)return Ca="fontFamily="+a+";","font-family: "+a+";"}}catch(bb){}return""}function l(a){return Math.round(10*a)/10}function r(a,b,c){function h(a,b){var h="",g=a.t,d=a.l||{v:g&&"ul"==g.v?"auto":"decimal"};if(null==g||0!=
+F&&F==g.v&&m==d.v)null==g&&(F&&(h+=n(!0),F=!1),h+='<div style="',la.push("div"));else{F&&(h+=n(!0));F=g.v;m=d.v;"ul"==g.v?(h+="<ul ",la.push("ul")):(h+="<ol ",la.push("ol"));h+='style="margin: 0px; padding-left: 10px;list-style-position: inside; list-style-type:';if("hl"==g.v)h+="upper-roman";else switch(d.v){case "auto":h+="disc";break;case "inv":h+="circle";break;case "disc":h+="circle";break;case "trib":h+="square";break;case "square":h+="square";break;case "dash":h+="square";break;case "heart":h+=
+"disc";break;default:h+="decimal"}h+='">'}if(null!=g){var h=h+('<li style="text-align:'+(a.a?a.a.v:c.TextAlign||"center")+";"),e,k;null!=b&&(b.c&&(e=b.c.v),b.s&&(k=b.s.v));try{var w=p[r],y=E[C],g=r;if(w&&y&&w.s<y.e)for(var f=w.s;null!=w&&w.s==f;)"s"==w.n?k=w.v:"c"==w.n&&(e=w.v),w=p[++g]}catch(Nc){console.log(Nc)}e=ea(e);null!=e&&(e=e.substring(0,7),h+="color:"+e+";");null!=k&&(h+="font-size:"+l(.75*k)+"px;");h+='">';la.push("li");h+='<span style="';la.push("span")}F||(k=e=a.a?a.a.v:c.TextAlign||"center",
+"left"==e?k="flex-start":"right"==e&&(k="flex-end"),h+="display: flex; justify-content: "+k+"; text-align: "+e+"; align-items: baseline; font-size: 0; line-height: 1.25;");a.il&&(h+="margin-left: "+Math.max(0,l(.75*a.il.v-(F?28:0)))+"px;");a.ir&&(h+="margin-right: "+l(.75*a.ir.v)+"px;");a.mt&&(h+="margin-top: "+l(.75*a.mt.v)+"px;");a.mb&&(h+="margin-bottom: "+l(.75*a.mb.v)+"px;");h+='margin-top: -2px;">';F||(h+="<span>",la.push("span"));return h}function g(a){if(0==Object.keys(a).length)return"";
+var b="",h=0;if(a.lk){var g=a.lk;null!=g.v&&0<g.v.length&&(b+='<a href="'+k(g.v[0])+'">',z.push("a"),h++)}b+='<span style="';z.push("span");h++;b+="font-size:"+(a.s?l(.75*a.s.v):"13")+"px;";a.c&&(g=ea(a.c.v),null!=g&&(g=g.substring(0,7),b+="color:"+g+";"));if(a.b&&a.b.v||a.fc&&a.fc.v&&0==a.fc.v.indexOf("Bold"))b+="font-weight: bold;";a.i&&a.i.v&&(b+="font-style: italic;");a.ac&&a.ac.v&&(b+="text-transform: uppercase;");g=null;a.f?g=a.f.v:c.Font&&(g=c.Font);b+=e(g);g=[];a.u&&a.u.v&&g.push("underline");
+a.k&&a.k.v&&g.push("line-through");0<g.length&&(b+="text-decoration: "+g.join(" ")+";");b+='">';H.push(h);return b}function n(a){var b="";do{var c=la.pop();if(!a&&F&&("ul"==c||"ol"==c)){la.push(c);break}b+="</"+c+">"}while(0<la.length);return b}function d(a,b,c,h){a=a?a.substring(b,c):"";F&&(a=a.trim());0==z.length&&0<a.length&&(a=g({dummy:1})+a);a=a.replace(/</g,"&lt;").replace(/>/g,"&gt;");do for(b=H.pop(),c=0;c<b;c++){var n=z.pop();a+="</"+n+">"}while(h&&0<z.length);return a}var w={a:!0,il:!0,
+ir:!0,mt:!0,mb:!0,p:!0,t:!0,l:!0},y={lk:!0,s:!0,c:!0,b:!0,fc:!0,i:!0,u:!0,k:!0,f:!0,ac:!0};b.sort(function(a,b){return a.s-b.s});var p=b.filter(function(a){return y[a.n]});p[0]&&0!=p[0].s&&p.unshift({s:0,n:"dummy",v:"",e:p[0].s});b=b.filter(function(a){return w[a.n]});for(var f=[0],ga=0;0<(ga=a.indexOf("\n",ga));)ga++,f.push(ga);for(var r=ga=0;r<b.length;r++){if(b[r].s>f[ga])b.splice(r,0,{s:f[ga],n:"a",v:c.TextAlign||"center"});else{for(var A=0;r+A<b.length&&b[r+A].s==f[ga];)A++;1<A&&(r+=A-1)}ga++}null!=
+f[ga]&&b.push({s:f[ga],n:"a",v:c.TextAlign||"center"});var f="",E=p.slice();E.sort(function(a,b){return a.e-b.e});for(var C=r=0,ga=0,A={},B={},z=[],H=[],la=[],ja=!1,F=!1,m,K=0,O=0,Y=a.length,S=!0;ga<b.length||S;){S=!1;if(ga<b.length){var D=b[ga],aa=b[ga].s;ja&&(B={},f+=d(a,K,Y,!0),O=K=Y,f+=n());for(;null!=D&&D.s==aa;)B[D.n]=D,D=b[++ga];Y=null!=D?D.s:a.length;f+=h(B,A);ja&&(f+=g(A));ja=!0}for(;r>=C&&(r<p.length||C<E.length);)if(D=p[r],aa=E[C],D&&aa&&D.s<aa.e){if(D.s>=Y)break;K=D.s;0<K-O&&(f+=g(A)+
+d(a,O,K),O=K);for(;null!=D&&D.s==K;)A[D.n]=D,D=p[++r];f+=g(A)}else if(aa){if(aa.e>Y)break;O=aa.e;do delete A[aa.n],aa=E[++C];while(null!=aa&&aa.e==O);f+=d(a,K,O);K=O;0!=H.length||null!=D&&D.s==O||(p.splice(r,0,{s:O,n:"dummy",v:""}),E.splice(C,0,{e:D?D.s:Y,n:"dummy",v:""}))}else break}f+=d(null,null,null,!0);ja&&(O!=Y&&(f+=g({dummy:1})+d(a,O,Y)),f+=n(!0));return f}function f(a,b){z=!1;var c=null!=a.Text&&a.Text.t?a.Text:null!=a.Value&&a.Value.t?a.Value:null!=a.Lane_0&&a.Lane_0.t?a.Lane_0:null;null==
c&&null!=a.State?a.State.t&&(c=a.State):null==c&&null!=a.Note?a.Note.t&&(c=a.Note):null==c&&null!=a.Title?a.Title.t&&(c=a.Title):a.t&&(c=a);null==c&&null!=a.TextAreas?null!=a.TextAreas.Text&&null!=a.TextAreas.Text.Value&&a.TextAreas.Text.Value.t&&(c=a.TextAreas.Text.Value):null==c&&null!=a.t0&&a.t0.t&&(c=a.t0);if(null!=c){if(null!=c.t){var h=c.t,h=h.replace(/\u2028/g,"\n"),c=c.m;try{for(var g=0;g<c.length;g++)if(0<c[g].s||null!=c[g].e&&c[g].e<h.length||"t"==c[g].n||"ac"==c[g].n||"lk"==c[g].n){z=!0;
-break}if(z=z||b)return r(h,c,a)}catch(Ye){console.log(Ye)}h=h.replace(/</g,"&lt;");return h=h.replace(/>/g,"&gt;")}if(null!=c.Value&&null!=c.Value.t)return c.Value.t=c.Value.t.replace(/</g,"&lt;"),c.Value.t=c.Value.t.replace(/>/g,"&gt;"),c.Value.t}return""}function p(a){return null!=a.Action?a.Action:a}function d(a){if(null!=a.Text){if(null!=a.Text.m)return a.Text.m}else if(null!=a.TextAreas){if(null!=a.TextAreas.Text&&null!=a.TextAreas.Text.Value&&null!=a.TextAreas.Text.Value.m)return a.TextAreas.Text.Value.m}else{if(null!=
-a.m)return a.m;if(null!=a.Title){if(null!=a.Title.m)return a.Title.m}else if(null!=a.State){if(null!=a.State.m)return a.State.m}else if(null!=a.Note&&null!=a.Note.m)return a.Note.m}return null}function b(a,b){var c="whiteSpace=wrap;"+(b?"overflow=block;blockSpacing=1;html=1;fontSize=13;"+Ca:h(a)+n(a)+x(a)+w(a)+B(a)+E(a)+C(a)+F(a)+D(a))+K(a)+Z(a)+nb(mxConstants.STYLE_ALIGN,a.TextAlign,"center");Ca="";return c}function a(a,b,h,n,g){var d="";null!=a&&""!=a&&";"!=a.charAt(a.length-1)&&(d=";");d+="whiteSpace=wrap;"+
-(g?(Nc(a,"overflow")?"":"overflow=block;blockSpacing=1;")+(Nc(a,"html")?"":"html=1;")+"fontSize=13;"+Ca:c(mxConstants.STYLE_FONTSIZE,a,b,h,n)+c(mxConstants.STYLE_FONTFAMILY,a,b,h,n)+c(mxConstants.STYLE_FONTCOLOR,a,b,h,n)+c(mxConstants.STYLE_FONTSTYLE,a,b,h,n)+c(mxConstants.STYLE_ALIGN,a,b,h,n)+c(mxConstants.STYLE_SPACING_LEFT,a,b,h,n)+c(mxConstants.STYLE_SPACING_RIGHT,a,b,h,n)+c(mxConstants.STYLE_SPACING_TOP,a,b,h,n)+c(mxConstants.STYLE_SPACING_BOTTOM,a,b,h,n))+c(mxConstants.STYLE_ALIGN+"Global",
+break}if(z=z||b)return r(h,c,a)}catch($e){console.log($e)}h=h.replace(/</g,"&lt;");return h=h.replace(/>/g,"&gt;")}if(null!=c.Value&&null!=c.Value.t)return c.Value.t=c.Value.t.replace(/</g,"&lt;"),c.Value.t=c.Value.t.replace(/>/g,"&gt;"),c.Value.t}return""}function p(a){return null!=a.Action?a.Action:a}function d(a){if(null!=a.Text){if(null!=a.Text.m)return a.Text.m}else if(null!=a.TextAreas){if(null!=a.TextAreas.Text&&null!=a.TextAreas.Text.Value&&null!=a.TextAreas.Text.Value.m)return a.TextAreas.Text.Value.m}else{if(null!=
+a.m)return a.m;if(null!=a.Title){if(null!=a.Title.m)return a.Title.m}else if(null!=a.State){if(null!=a.State.m)return a.State.m}else if(null!=a.Note&&null!=a.Note.m)return a.Note.m}return null}function b(a,b){var c="whiteSpace=wrap;"+(b?"overflow=block;blockSpacing=1;html=1;fontSize=13;"+Ca:h(a)+n(a)+w(a)+y(a)+C(a)+E(a)+B(a)+F(a)+D(a))+K(a)+Z(a)+lb(mxConstants.STYLE_ALIGN,a.TextAlign,"center");Ca="";return c}function a(a,b,h,n,g){var d="";null!=a&&""!=a&&";"!=a.charAt(a.length-1)&&(d=";");d+="whiteSpace=wrap;"+
+(g?(Pc(a,"overflow")?"":"overflow=block;blockSpacing=1;")+(Pc(a,"html")?"":"html=1;")+"fontSize=13;"+Ca:c(mxConstants.STYLE_FONTSIZE,a,b,h,n)+c(mxConstants.STYLE_FONTFAMILY,a,b,h,n)+c(mxConstants.STYLE_FONTCOLOR,a,b,h,n)+c(mxConstants.STYLE_FONTSTYLE,a,b,h,n)+c(mxConstants.STYLE_ALIGN,a,b,h,n)+c(mxConstants.STYLE_SPACING_LEFT,a,b,h,n)+c(mxConstants.STYLE_SPACING_RIGHT,a,b,h,n)+c(mxConstants.STYLE_SPACING_TOP,a,b,h,n)+c(mxConstants.STYLE_SPACING_BOTTOM,a,b,h,n))+c(mxConstants.STYLE_ALIGN+"Global",
a,b,h,n)+c(mxConstants.STYLE_SPACING,a,b,h,n)+c(mxConstants.STYLE_VERTICAL_ALIGN,a,b,h,n)+c(mxConstants.STYLE_STROKECOLOR,a,b,h,n)+c(mxConstants.STYLE_OPACITY,a,b,h,n)+c(mxConstants.STYLE_ROUNDED,a,b,h,n)+c(mxConstants.STYLE_ROTATION,a,b,h,n)+c(mxConstants.STYLE_FLIPH,a,b,h,n)+c(mxConstants.STYLE_FLIPV,a,b,h,n)+c(mxConstants.STYLE_SHADOW,a,b,h,n)+c(mxConstants.STYLE_FILLCOLOR,a,b,h,n)+c(mxConstants.STYLE_DASHED,a,b,h,n)+c(mxConstants.STYLE_STROKEWIDTH,a,b,h,n)+c(mxConstants.STYLE_IMAGE,a,b,h,n);Ca=
-"";return d}function c(a,b,c,d,g){if(!Nc(b,a))switch(a){case mxConstants.STYLE_FONTSIZE:return h(c);case mxConstants.STYLE_FONTFAMILY:return n(c);case mxConstants.STYLE_FONTCOLOR:return x(c);case mxConstants.STYLE_FONTSTYLE:return w(c);case mxConstants.STYLE_ALIGN:return B(c);case mxConstants.STYLE_ALIGN+"Global":return nb(mxConstants.STYLE_ALIGN,c.TextAlign,"center");case mxConstants.STYLE_SPACING_LEFT:return E(c);case mxConstants.STYLE_SPACING_RIGHT:return C(c);case mxConstants.STYLE_SPACING_TOP:return F(c);
-case mxConstants.STYLE_SPACING_BOTTOM:return D(c);case mxConstants.STYLE_SPACING:return K(c);case mxConstants.STYLE_VERTICAL_ALIGN:return Z(c);case mxConstants.STYLE_STROKECOLOR:return H(c,d);case mxConstants.STYLE_OPACITY:return S(c,d,g);case mxConstants.STYLE_ROUNDED:return a=!g.edge&&!g.style.includes("rounded")&&null!=c.Rounding&&0<c.Rounding?"rounded=1;absoluteArcSize=1;arcSize="+k(.75*c.Rounding)+";":"",a;case mxConstants.STYLE_ROTATION:return aa(c,d,g);case mxConstants.STYLE_FLIPH:return a=
-c.FlipX?"flipH=1;":"",a;case mxConstants.STYLE_FLIPV:return a=c.FlipY?"flipV=1;":"",a;case mxConstants.STYLE_SHADOW:return ja(c);case mxConstants.STYLE_FILLCOLOR:return X(c,d);case mxConstants.STYLE_DASHED:return rc(c);case mxConstants.STYLE_STROKEWIDTH:return $a(c);case mxConstants.STYLE_IMAGE:return td(c,d)}return""}function h(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("s"==c.n&&null!=c.v)return"fontSize="+k(.75*c.v)+";";b++}return"fontSize=13;"}function n(a){var b=d(a),c;if(null!=
-b)for(var h=0;h<b.length;h++)if("f"==b[h].n&&b[h].v){c=b[h].v;break}!c&&a.Font&&(c=a.Font);e(c);return Ca}function l(a){return"ext"==a.tp?a.url:"ml"==a.tp?"mailto:"+a.eml:"pg"==a.tp?"data:page/id,"+(LucidImporter.pageIdsMap[a.id]||0):"c"==a.tp?"data:confluence/id,"+a.ccid:null}function x(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("c"==c.n&&null!=c.v)return a=ea(c.v).substring(0,7),mxConstants.STYLE_FONTCOLOR+"="+a+";";b++}return""}function w(a){return A(d(a))}function A(a){if(null!=
-a){var b=0,c=!1;if(null!=a)for(var h=0;!c&&h<a.length;){var g=a[h];"b"==g.n?null!=g.v&&g.v&&(c=!0,b+=1):"fc"==g.n&&"Bold"==g.v&&(c=!0,b+=1);h++}c=!1;if(null!=a)for(h=0;!c&&h<a.length;)g=a[h],"i"==g.n&&null!=g.v&&g.v&&(c=!0,b+=2),h++;c=!1;if(null!=a)for(h=0;!c&&h<a.length;)g=a[h],"u"==g.n&&null!=g.v&&g.v&&(c=!0,b+=4),h++;if(0<b)return"fontStyle="+b+";"}return""}function B(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("a"==c.n&&null!=c.v)return"align="+c.v+";";b++}return""}function E(a){a=
-d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if(null!=c.v&&"il"==c.n)return"spacingLeft="+k(.75*c.v)+";";b++}return""}function C(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("ir"==c.n&&null!=c.v)return"spacingRight="+k(.75*c.v)+";";b++}return""}function F(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("mt"==c.n&&null!=c.v)return"spacingTop="+k(.75*c.v)+";";b++}return""}function D(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("mb"==c.n&&null!=c.v)return"spacingBottom="+
-k(.75*c.v)+";";b++}return""}function K(a){return"number"===typeof a.InsetMargin?"spacing="+Math.max(0,k(.75*a.InsetMargin))+";":""}function Z(a){return null!=a.Text_VAlign&&"string"===typeof a.Text_VAlign?"verticalAlign="+a.Text_VAlign+";":null!=a.Title_VAlign&&"string"===typeof a.Title_VAlign?"verticalAlign="+a.Title_VAlign+";":nb(mxConstants.STYLE_VERTICAL_ALIGN,a.TextVAlign,"middle")}function H(a,b){return 0==a.LineWidth?mxConstants.STYLE_STROKECOLOR+"=none;":nb(mxConstants.STYLE_STROKECOLOR,la(a.LineColor),
-"#000000")}function Y(a){return null!=a?mxConstants.STYLE_FILLCOLOR+"="+la(a)+";":""}function O(a){return null!=a?"swimlaneFillColor="+la(a)+";":""}function S(a,b,c){b="";if("string"===typeof a.LineColor&&(a.LineColor=ea(a.LineColor),7<a.LineColor.length)){var h="0x"+a.LineColor.substring(a.LineColor.length-2,a.LineColor.length);c.style.includes("strokeOpacity")||(b+="strokeOpacity="+Math.round(parseInt(h)/2.55)+";")}"string"===typeof a.FillColor&&(a.FillColor=ea(a.FillColor),7<a.FillColor.length&&
-(a="0x"+a.FillColor.substring(a.FillColor.length-2,a.FillColor.length),c.style.includes("fillOpacity")||(b+="fillOpacity="+Math.round(parseInt(a)/2.55)+";")));return b}function aa(a,b,c){var h="";if(null!=a.Rotation){a=mxUtils.toDegree(parseFloat(a.Rotation));var g=!0;0!=a&&b.Class&&("UMLSwimLaneBlockV2"==b.Class||(0<=b.Class.indexOf("Rotated")||-90==a||270==a)&&(0<=b.Class.indexOf("Pool")||0<=b.Class.indexOf("SwimLane")))?(a+=90,c.geometry.rotate90(),c.geometry.isRotated=!0,g=!1):0<=mxUtils.indexOf(Nd,
-b.Class)?(a-=90,c.geometry.rotate90()):0<=mxUtils.indexOf(Od,b.Class)&&(a+=180);0!=a&&(h+="rotation="+a+";");g||(h+="horizontal=0;")}return h}function ja(a){return null!=a.Shadow?mxConstants.STYLE_SHADOW+"=1;":""}function ea(a){if(a){if("object"===typeof a)try{a=a.cs[0].c}catch(ia){console.log(ia),a="#ffffff"}"rgb"==a.substring(0,3)?a="#"+a.match(/\d+/g).map(function(a){a=parseInt(a).toString(16);return(1==a.length?"0":"")+a}).join(""):"#"!=a.charAt(0)&&(a="#"+a)}return a}function la(a){return(a=
-ea(a))?a.substring(0,7):null}function ta(a,b){return(a=ea(a))&&7<a.length?b+"="+Math.round(parseInt("0x"+a.substr(7))/2.55)+";":""}function X(a,b){if(null!=a.FillColor)if("object"===typeof a.FillColor){if(null!=a.FillColor.cs&&1<a.FillColor.cs.length)return nb(mxConstants.STYLE_FILLCOLOR,la(a.FillColor.cs[0].c))+nb(mxConstants.STYLE_GRADIENTCOLOR,la(a.FillColor.cs[1].c))}else return"string"===typeof a.FillColor?nb(mxConstants.STYLE_FILLCOLOR,la(a.FillColor),"#FFFFFF"):nb(mxConstants.STYLE_FILLCOLOR,
-"none");return""}function rc(a){return"dotted"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=1 4;":"dashdot"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=10 5 1 5;":"dashdotdot"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=10 5 1 5 1 5;":"dotdotdot"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=1 2;":"longdash"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=16 6;":"dashlongdash"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=10 6 16 6;":"dashed24"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=3 8;":
-"dashed32"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=6 5;":"dashed44"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=8 8;":null!=a.StrokeStyle&&"dashed"==a.StrokeStyle.substring(0,6)?"dashed=1;fixDash=1;":""}function $a(a){return null!=a.LineWidth?nb(mxConstants.STYLE_STROKEWIDTH,k(.75*parseFloat(a.LineWidth)),"1"):""}function td(a,b,c){var h="";a.FillColor&&a.FillColor.url?(c=a.FillColor.url,"fill"==a.FillColor.pos&&(h="imageAspect=0;")):"ImageSearchBlock2"==b.Class?c=a.URL:"UserImage2Block"==
-b.Class&&null!=a.ImageFillProps&&null!=a.ImageFillProps.url&&(c=a.ImageFillProps.url);if(null!=c){if(null!=LucidImporter.imgSrcRepl)for(a=0;a<LucidImporter.imgSrcRepl.length;a++)b=LucidImporter.imgSrcRepl[a],c=c.replace(b.searchVal,b.replVal);return"image="+c+";"+h}return""}function Ma(a,b,c,h){for(var g=b,n=0;null!=h.getAttributeForCell(a,g);)n++,g=b+"_"+n;h.setAttributeForCell(a,g,null!=c?c:"")}function ud(c,h,n,d,g,e){var x=p(h);if(null!=x){var w=sc[x.Class];null!=w?c.style+=w+";":c.edge||(console.log("No mapping found for: "+
-x.Class),LucidImporter.hasUnknownShapes=!0);w=null!=x.Properties?x.Properties:x;if(null!=w){c.value=e?"":f(w);c.style+=a(c.style,w,x,c,z);c.style.includes("strokeColor")||(c.style+=H(w,x));null!=w.Link&&0<w.Link.length&&n.setAttributeForCell(c,"link",l(w.Link[0]));e=[];var r=n.convertValueToString(c),A=!1;if(null!=r){for(var La=0;match=Pd.exec(r);){var k=match[0],A=!0;if(2<k.length){var E=k.substring(2,k.length-2);"documentName"==E?E="filename":"pageName"==E?E="page":"totalPages"==E?E="pagecount":
-"page"==E?E="pagenumber":"date:"==E.substring(0,5)?E="date{"+E.substring(5).replace(/MMMM/g,"mmmm").replace(/MM/g,"mm").replace(/YYYY/g,"yyyy")+"}":"lastModifiedTime"==E.substring(0,16)?E=E.replace(/MMMM/g,"mmmm").replace(/MM/g,"mm").replace(/YYYY/g,"yyyy"):"i18nDate:"==E.substring(0,9)&&(E="date{"+E.substring(9).replace(/i18nShort/g,"shortDate").replace(/i18nMediumWithTime/g,"mmm d, yyyy hh:MM TT")+"}");E="%"+E+"%";e.push(r.substring(La,match.index)+(null!=E?E:k));La=match.index+k.length}}A&&(e.push(r.substring(La)),
-n.setAttributeForCell(c,"label",e.join("")),n.setAttributeForCell(c,"placeholders","1"))}for(var B in w)if(w.hasOwnProperty(B)&&B.toString().startsWith("ShapeData_"))try{var C=w[B],F=mxUtils.trim(C.Label).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,"");Ma(c,F,C.Value,n)}catch(Jb){window.console&&console.log("Ignored "+B+":",Jb)}w.Title&&w.Title.t&&w.Text&&w.Text.t&&"ExtShape"!=x.Class.substr(0,8)&&(x=c.geometry,x=new mxCell(f(w.Title),new mxGeometry(0,x.height,x.width,10),"strokeColor=none;fillColor=none;"),
-x.vertex=!0,c.insert(x),x.style+=b(w.Title,z));if(c.edge){c.style=null!=w.Rounding&&"diagonal"!=w.Shape?c.style+("rounded=1;arcSize="+w.Rounding+";"):c.style+"rounded=0;";x=!1;if("diagonal"!=w.Shape)if(null!=w.ElbowPoints&&0<w.ElbowPoints.length)for(c.geometry.points=[],B=0;B<w.ElbowPoints.length;B++)c.geometry.points.push(new mxPoint(Math.round(.75*w.ElbowPoints[B].x+Sb),Math.round(.75*w.ElbowPoints[B].y+Tb)));else"elbow"==w.Shape?c.style+="edgeStyle=orthogonalEdgeStyle;":null!=w.Endpoint1.Block&&
-null!=w.Endpoint2.Block&&(c.style+="edgeStyle=orthogonalEdgeStyle;","curve"==w.Shape&&(c.style+="curved=1;",x=!0));if(w.LineJumps||LucidImporter.globalProps.LineJumps)c.style+="jumpStyle=arc;";null!=w.Endpoint1.Style&&(B=Oc[w.Endpoint1.Style],null!=B?(B=B.replace(/xyz/g,"start"),c.style+="startArrow="+B+";"):(LucidImporter.hasUnknownShapes=!0,window.console&&console.log("Unknown endpoint style: "+w.Endpoint1.Style)));null!=w.Endpoint2.Style&&(B=Oc[w.Endpoint2.Style],null!=B?(B=B.replace(/xyz/g,"end"),
-c.style+="endArrow="+B+";"):(LucidImporter.hasUnknownShapes=!0,window.console&&console.log("Unknown endpoint style: "+w.Endpoint2.Style)));x=null!=w.ElbowControlPoints&&0<w.ElbowControlPoints.length?w.ElbowControlPoints:x&&null!=w.BezierJoints&&0<w.BezierJoints.length?w.BezierJoints:w.Joints;if(null!=x)for(c.geometry.points=[],B=0;B<x.length;B++)C=x[B].p?x[B].p:x[B],c.geometry.points.push(new mxPoint(Math.round(.75*C.x+Sb),Math.round(.75*C.y+Tb)));x=!1;if((null==c.geometry.points||0==c.geometry.points.length)&&
-null!=w.Endpoint1.Block&&w.Endpoint1.Block==w.Endpoint2.Block&&null!=d&&null!=g){x=new mxPoint(Math.round(d.geometry.x+d.geometry.width*w.Endpoint1.LinkX),Math.round(d.geometry.y+d.geometry.height*w.Endpoint1.LinkY));B=new mxPoint(Math.round(g.geometry.x+g.geometry.width*w.Endpoint2.LinkX),Math.round(g.geometry.y+g.geometry.height*w.Endpoint2.LinkY));Sb=x.x==B.x?Math.abs(x.x-d.geometry.x)<d.geometry.width/2?-20:20:0;Tb=x.y==B.y?Math.abs(x.y-d.geometry.y)<d.geometry.height/2?-20:20:0;var ha=new mxPoint(x.x+
-Sb,x.y+Tb),K=new mxPoint(B.x+Sb,B.y+Tb);ha.generated=!0;K.generated=!0;c.geometry.points=[ha,K];x=x.x==B.x}null!=d&&d.geometry.isRotated||(ha=Pc(c,w.Endpoint1,!0,x,null,d));null!=d&&null!=ha&&(null==d.stylePoints&&(d.stylePoints=[]),d.stylePoints.push(ha),LucidImporter.stylePointsSet.add(d));null!=g&&g.geometry.isRotated||(K=Pc(c,w.Endpoint2,!1,x,null,g));null!=g&&null!=K&&(null==g.stylePoints&&(g.stylePoints=[]),g.stylePoints.push(K),LucidImporter.stylePointsSet.add(g))}}}null!=h.id&&Ma(c,"lucidchartObjectId",
-h.id,n)}function eb(b,c){var h=p(b),n=h.Properties,g=n.BoundingBox;null==b.Class||"AWS"!==b.Class.substring(0,3)&&"Amazon"!==b.Class.substring(0,6)||b.Class.includes("AWS19")||(g.h-=20);v=new mxCell("",new mxGeometry(Math.round(.75*g.x+Sb),Math.round(.75*g.y+Tb),Math.round(.75*g.w),Math.round(.75*g.h)),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;");v.vertex=!0;ud(v,b,c);v.zOrder=n.ZOrder;null!=v&&0<=v.style.indexOf(";grIcon=")&&(g=new mxCell("",new mxGeometry(v.geometry.x,v.geometry.y,v.geometry.width,
-v.geometry.height),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;"),g.vertex=!0,g.style+=a(g.style,n,h,g),v.geometry.x=0,v.geometry.y=0,v.style+="part=1;",g.insert(v),v=g);te(v,n);n.Hidden&&(v.visible=!1);return v}function vd(a,b,c,h){var n=new mxCell("",new mxGeometry(0,0,100,100),"html=1;jettySize=18;");n.geometry.relative=!0;n.edge=!0;ud(n,a,b,c,h,!0);b=p(a).Properties;var d=null!=b?b.TextAreas:a.TextAreas;if(null!=d){for(var e=0;void 0!==d["t"+e];){var l=d["t"+e];null!=l&&(n=bc(l,n,a,
-c,h));e++}for(e=0;void 0!==d["m"+e]||1>e;)l=d["m"+e],null!=l&&(n=bc(l,n,a,c,h)),e++;null!=d.Text&&(n=bc(d.Text,n,a,c,h));d=null!=b?b.TextAreas:a.TextAreas;null!=d.Message&&(n=bc(d.Message,n,a,c,h))}a.Hidden&&(n.visible=!1);return n}function bc(a,b,c,h,g){var d=2*(parseFloat(a.Location)-.5);isNaN(d)&&null!=a.Text&&null!=a.Text.Location&&(d=2*(parseFloat(a.Text.Location)-.5));var e=f(a),l=mxCell,d=new mxGeometry(isNaN(d)?0:d,0,0,0),w=cc,x;x=c;if(z)x=Ca;else{var p="13",r="";if(null!=a&&null!=a.Value&&
-null!=a.Value.m){for(var r=A(a.Value.m),La=0;La<a.Value.m.length;La++)if("s"==a.Value.m[La].n)p=k(.75*parseFloat(a.Value.m[La].v));else if("c"==a.Value.m[La].n){var B=ea(a.Value.m[La].v);null!=B&&(B=B.substring(0,7));r+="fontColor="+B+";"}r+=n(x);Ca=""}x=r+";fontSize="+p+";"}l=new l(e,d,w+x);l.geometry.relative=!0;l.vertex=!0;if(a.Side)try{c.Action&&c.Action.Properties&&(c=c.Action.Properties);var E,C;if(null!=h&&null!=g){var H=h.geometry,F=g.geometry;E=Math.abs(H.x+H.width*c.Endpoint1.LinkX-(F.x+
-F.width*c.Endpoint2.LinkX));C=Math.abs(H.y+H.height*c.Endpoint1.LinkY-(F.y+F.height*c.Endpoint2.LinkY))}else E=Math.abs(c.Endpoint1.x-c.Endpoint2.x),C=Math.abs(c.Endpoint1.y-c.Endpoint2.y);var K=mxUtils.getSizeForString(e);l.geometry.offset=0==E||E<C?new mxPoint(-a.Side*(K.width/2+5+E),0):new mxPoint(0,Math.sign(c.Endpoint2.x-c.Endpoint1.x)*a.Side*(K.height/2+5+C))}catch(Kc){console.log(Kc)}b.insert(l);return b}function nb(a,b,c,h){null!=b&&null!=h&&(b=h(b));return null!=b&&b!=c?a+"="+b+";":""}function Pc(a,
-b,c,h,n,d){if(null!=b&&null!=b.LinkX&&null!=b.LinkY&&(b.LinkX=Math.round(1E3*b.LinkX)/1E3,b.LinkY=Math.round(1E3*b.LinkY)/1E3,d.style&&-1<d.style.indexOf("flipH=1")&&(b.LinkX=1-b.LinkX),d.style&&-1<d.style.indexOf("flipV=1")&&(b.LinkY=1-b.LinkY),a.style+=(h?"":(c?"exitX":"entryX")+"="+b.LinkX+";")+(n?"":(c?"exitY":"entryY")+"="+b.LinkY+";")+(c?"exitPerimeter":"entryPerimeter")+"=0;",b.Inside))return"["+b.LinkX+","+b.LinkY+",0]"}function Qc(a,b,c,h){try{var n=function(a,b){if(null!=a)if(Array.isArray(a))for(var c=
-0;c<a.length;c++)n(a[c].p?a[c].p:a[c],b);else c=b?.75:1,e=Math.min(e,a.x*c),l=Math.min(l,a.y*c),x=Math.max(x,(a.x+(a.width?a.width:0))*c),w=Math.max(w,(a.y+(a.height?a.height:0))*c)};null!=a.Action&&null!=a.Action.Properties&&(a=a.Action.Properties);var d=new mxCell("",new mxGeometry,"group;dropTarget=0;");d.vertex=!0;d.zOrder=a.ZOrder;var e=Infinity,l=Infinity,x=-Infinity,w=-Infinity,p=a.Members,f=[],r;for(r in p){var k=b[r];null!=k?f.push(k):null!=h[r]&&(f.push(h[r]),c[r]=d)}f.sort(function(a,b){var c=
-a.zOrder,h=b.zOrder;return null!=c&&null!=h?c>h?1:c<h?-1:0:0});for(c=b=0;c<f.length;c++)if(k=f[c],k.vertex)n(k.geometry),k.parent=d,d.insert(k,b++);else{var A=null!=k.Action&&k.Action.Properties?k.Action.Properties:k;n(A.Endpoint1,!0);n(A.Endpoint2,!0);n(A.ElbowPoints,!0);n(A.ElbowControlPoints,!0);n(A.BezierJoints,!0);n(A.Joints,!0)}d.geometry.x=e;d.geometry.y=l;d.geometry.width=x-e;d.geometry.height=w-l;if(null!=d.children)for(c=0;c<d.children.length;c++){var La=d.children[c].geometry;La.x-=e;La.y-=
-l}a.IsState?d.lucidLayerInfo={name:a.Name,visible:!a.Hidden,locked:a.Restrictions.b&&a.Restrictions.p&&a.Restrictions.c}:a.Hidden&&(d.visible=!1);return d}catch($e){console.log($e)}}function Qd(a,b,c){LucidImporter.hasMath=!1;LucidImporter.stylePointsSet=new Set;a.getModel().beginUpdate();try{var h=function(b,c){function h(a,b,c){null==a||a.generated||(a.x-=b,a.y-=c)}var g=null!=c.Endpoint1.Block?d[c.Endpoint1.Block]:null,l=null!=c.Endpoint2.Block?d[c.Endpoint2.Block]:null,w=vd(b,a,g,l);if(c.Endpoint1&&
-c.Endpoint1.Line||c.Endpoint2&&c.Endpoint2.Line)console.log("Edge to Edge case"),LucidImporter.hasUnknownShapes=!0;null==g&&null!=c.Endpoint1&&w.geometry.setTerminalPoint(new mxPoint(Math.round(.75*c.Endpoint1.x),Math.round(.75*c.Endpoint1.y)),!0);null==l&&null!=c.Endpoint2&&w.geometry.setTerminalPoint(new mxPoint(Math.round(.75*c.Endpoint2.x),Math.round(.75*c.Endpoint2.y)),!1);var x=e[b.id];if(null!=x){for(var f=w.geometry,p=0,t=0,u=x;null!=u&&null!=u.geometry;)p+=u.geometry.x,t+=u.geometry.y,u=
-u.parent;h(f.sourcePoint,p,t);h(f.targetPoint,p,t);h(f.offset,p,t);f=f.points;if(null!=f)for(u=0;u<f.length;u++)h(f[u],p,t)}n.push(a.addCell(w,x,null,g,l))},n=[],d={},e={},l={},x=[];null!=b.Lines&&(l=b.Lines);if(null!=b.Blocks){Object.assign(l,b.Blocks);for(var w in b.Blocks){var f=b.Blocks[w];f.id=w;var r=!1;null!=sc[f.Class]&&"mxCompositeShape"==sc[f.Class]&&(d[f.id]=Rc(f,n,a),x.push(f),r=!0);r||(d[f.id]=eb(f,a),x.push(f))}if(null!=b.Generators)for(w in b.Generators)"OrgChart2018"==b.Generators[w].ClassName?
-(LucidImporter.hasUnknownShapes=!0,Sc(w,b.Generators[w],b.Data,a,d)):LucidImporter.hasUnknownShapes=!0}else{for(var k=0;k<b.Objects.length;k++)f=b.Objects[k],l[f.id]=f,null!=f.Action&&"mxCompositeShape"==sc[f.Action.Class]?d[f.id]=Rc(f,n,a):f.IsBlock&&null!=f.Action&&null!=f.Action.Properties?d[f.id]=eb(f,a):f.IsGenerator&&f.GeneratorData&&f.GeneratorData.p&&("OrgChart2018"==f.GeneratorData.p.ClassName?(LucidImporter.hasUnknownShapes=!0,Sc(f.GeneratorData.id,f.GeneratorData.p,f.GeneratorData.gs,a,
-d)):LucidImporter.hasUnknownShapes=!0),x.push(f);for(k=0;k<b.Objects.length;k++)if(f=b.Objects[k],f.IsGroup){var A=Qc(f,d,e,l);A&&(d[f.id]=A,x.push(f))}}if(null!=b.Groups)try{for(w in b.Groups)if(f=b.Groups[w],f.id=w,A=Qc(f,d,e,l))d[f.id]=A,x.push(f)}catch(Jb){console.log(Jb)}if(null!=b.Lines)for(w in b.Lines)f=b.Lines[w],f.id=w,x.push(f);x.sort(function(a,b){a=p(a);b=p(b);var c=null!=a.Properties?a.Properties.ZOrder:a.ZOrder,h=null!=b.Properties?b.Properties.ZOrder:b.ZOrder;return null!=c&&null!=
-h?c>h?1:c<h?-1:0:0});for(k=0;k<x.length;k++){var f=x[k],B=d[f.id];if(null!=B){if(null==B.parent)if(B.lucidLayerInfo){var E=new mxCell;a.addCell(E,a.model.root);E.setVisible(B.lucidLayerInfo.visible);B.lucidLayerInfo.locked&&E.setStyle("locked=1;");E.setValue(B.lucidLayerInfo.name);delete B.lucidLayerInfo;a.addCell(B,E)}else n.push(a.addCell(B))}else f.IsLine&&null!=f.Action&&null!=f.Action.Properties?h(f,f.Action.Properties):null!=f.StrokeStyle&&h(f,f)}LucidImporter.stylePointsSet.forEach(function(a){a.style=
-"points=["+a.stylePoints.join(",")+"];"+a.style;delete a.stylePoints});try{var C=a.getModel().cells,H;for(H in C)delete C[H].zOrder}catch(Jb){}c||a.setSelectionCells(n)}finally{a.getModel().endUpdate()}}function Rd(){var a=new Graph;a.setExtendParents(!1);a.setExtendParentsOnAdd(!1);a.setConstrainChildren(!1);a.setHtmlLabels(!0);a.getModel().maintainEdgeParent=!1;return a}function tc(a,b,c,h,n,d,e,l){this.nurbsValues=[1,3,0,0,100*(a+c),100-100*(1-(b+h)),0,1,100*(n+e),100-100*(1-(d+l)),0,1]}function ue(a,
-b){try{for(var c=[],h=b.BoundingBox.w,n=b.BoundingBox.h,d=0;d<b.Shapes.length;d++){var e=b.Shapes[d],l=e.FillColor,w=e.StrokeColor,x=e.LineWidth,f=e.Points,p=e.Lines,r=['<shape strokewidth="inherit"><foreground>'];r.push("<path>");for(var k=null,A=0;A<p.length;A++){var B=p[A];if(k!=B.p1){var E=f[B.p1].x,C=f[B.p1].y,E=100*E/h,C=100*C/n,E=Math.round(100*E)/100,C=Math.round(100*C)/100;r.push('<move x="'+E+'" y="'+C+'"/>')}if(null!=B.n1){var H;var z=f[B.p2].x,F=f[B.p2].y,K=h,m=n,O=new tc(f[B.p1].x,f[B.p1].y,
-B.n1.x,B.n1.y,f[B.p2].x,f[B.p2].y,B.n2.x,B.n2.y);if(2<=O.getSize()){O.getX(0);O.getY(0);O.getX(1);O.getY(1);for(var z=Math.round(100*z/K*100)/100,F=Math.round(100*F/m*100)/100,K=[],m=[],Y=[],S=O.getSize(),D=0;D<S-1;D+=3)K.push(new mxPoint(O.getX(D),O.getY(D))),m.push(new mxPoint(O.getX(D+1),O.getY(D+1))),D<S-2?Y.push(new mxPoint(O.getX(D+2),O.getY(D+2))):Y.push(new mxPoint(z,F));for(var ha="",D=0;D<K.length;D++)ha+='<curve x1="'+K[D].x+'" y1="'+K[D].y+'" x2="'+m[D].x+'" y2="'+m[D].y+'" x3="'+Y[D].x+
-'" y3="'+Y[D].y+'"/>';H=ha}else H=void 0;r.push(H)}else E=f[B.p2].x,C=f[B.p2].y,E=100*E/h,C=100*C/n,E=Math.round(100*E)/100,C=Math.round(100*C)/100,r.push('<line x="'+E+'" y="'+C+'"/>');k=B.p2}r.push("</path>");r.push("<fillstroke/>");r.push("</foreground></shape>");c.push({shapeStencil:"stencil("+Graph.compress(r.join(""))+")",FillColor:l,LineColor:w,LineWidth:x})}LucidImporter.stencilsMap[a]={text:b.Text,w:h,h:n,stencils:c}}catch(Md){console.log("Stencil parsing error:",Md)}}function Fb(a,b,c,h,
-n,d,e,l){a=new mxCell("",new mxGeometry(a,b,0,0),"strokeColor=none;fillColor=none;");a.vertex=!0;e.insert(a);d=[a];c=c.clone();l.insertEdge(c,!1);a.insertEdge(c,!0);d.push(c);h.push(n.addCell(c,null,null,null,null))}function xa(a,b,c,h,n,d,e,l,w){a=new mxCell("",new mxGeometry(a,b,0,0),"strokeColor=none;fillColor=none;");a.vertex=!0;w.insert(a);c=new mxCell("",new mxGeometry(c,h,0,0),"strokeColor=none;fillColor=none;");c.vertex=!0;w.insert(c);l=[c];n=n.clone();a.insertEdge(n,!0);c.insertEdge(n,!1);
-l.push(n);d.push(e.addCell(n,null,null,null,null))}function fa(b,c,h,n,g,d){n.style="rounded=1;absoluteArcSize=1;fillColor=#ffffff;arcSize=2;strokeColor=#dddddd;";n.style+=a(n.style,g,d,n);c=f(g);n.vertex=!0;b=new mxCell(c,new mxGeometry(0,.5,24,24),"dashed=0;connectable=0;html=1;strokeColor=none;"+mxConstants.STYLE_SHAPE+"=mxgraph.gcp2."+b+";part=1;shadow=0;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;");b.style+=a(b.style,g,d,b,z);b.geometry.relative=
-!0;b.geometry.offset=new mxPoint(5,-12);b.vertex=!0;n.insert(b)}function pa(b,c,h,n,g,d,e,l){g="transparent"!=b?mxConstants.STYLE_SHAPE+"=mxgraph.gcp2.":mxConstants.STYLE_SHAPE+"=";d.style="rounded=1;absoluteArcSize=1;arcSize=2;verticalAlign=bottom;fillColor=#ffffff;strokeColor=#dddddd;whiteSpace=wrap;";d.style+=a(d.style,e,l,d);d.value=f(e);d.vertex=!0;b=new mxCell(null,new mxGeometry(.5,0,.7*n*c,.7*n*h),g+b+";part=1;dashed=0;connectable=0;html=1;strokeColor=none;shadow=0;");b.geometry.relative=
-!0;b.geometry.offset=new mxPoint(-c*n*.35,10+(1-h)*n*.35);b.vertex=!0;b.style+=a(b.style,e,l,b,z);d.insert(b)}function Nc(a,b){return null==a||null==b||!a.includes(";"+b+"=")&&a.substring(0,b.length+1)!=b+"="?!1:!0}function Sd(a,b){function c(a){a=Math.round(parseInt("0x"+a)*b).toString(16);return 1==a.length?"0"+a:a}return"#"+c(a.substr(1,2))+c(a.substr(3,2))+c(a.substr(5,2))}function Rc(c,d,e){var l=p(c),g=l.Properties,r=g.BoundingBox,u=Math.round(.75*r.w),t=Math.round(.75*r.h),k=Math.round(.75*
-r.x+Sb),A=Math.round(.75*r.y+Tb);null==c.Class||"GCPInputDatabase"!==c.Class&&"GCPInputRecord"!==c.Class&&"GCPInputPayment"!==c.Class&&"GCPInputGateway"!==c.Class&&"GCPInputLocalCompute"!==c.Class&&"GCPInputBeacon"!==c.Class&&"GCPInputStorage"!==c.Class&&"GCPInputList"!==c.Class&&"GCPInputStream"!==c.Class&&"GCPInputMobileDevices"!==c.Class&&"GCPInputCircuitBoard"!==c.Class&&"GCPInputLive"!==c.Class&&"GCPInputUsers"!==c.Class&&"GCPInputLaptop"!==c.Class&&"GCPInputApplication"!==c.Class&&"GCPInputLightbulb"!==
-c.Class&&"GCPInputGame"!==c.Class&&"GCPInputDesktop"!==c.Class&&"GCPInputDesktopAndMobile"!==c.Class&&"GCPInputWebcam"!==c.Class&&"GCPInputSpeaker"!==c.Class&&"GCPInputRetail"!==c.Class&&"GCPInputReport"!==c.Class&&"GCPInputPhone"!==c.Class&&"GCPInputBlank"!==c.Class||(t+=20);v=new mxCell("",new mxGeometry(k,A,u,t),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;");v.vertex=!0;v.zOrder=g.ZOrder;var ea=null!=c.Class?c.Class:null!=l?l.Class:null;switch(ea){case "BraceNoteBlock":case "UI2BraceNoteBlock":var ha=
-!1;null!=g.BraceDirection&&"Right"==g.BraceDirection&&(ha=!0);var Ma=null,ia=null;ha?(Ma=new mxCell("",new mxGeometry(u-.125*t,0,.125*t,t),"shape=curlyBracket;rounded=1;"),ia=new mxCell("",new mxGeometry(0,0,u-.125*t,t),"strokeColor=none;fillColor=none;")):(Ma=new mxCell("",new mxGeometry(0,0,.125*t,t),"shape=curlyBracket;rounded=1;flipH=1;"),ia=new mxCell("",new mxGeometry(.125*t,0,u-.125*t,t),"strokeColor=none;fillColor=none;"));v.style="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,l,
-v);Ma.vertex=!0;v.insert(Ma);Ma.style+=a(Ma.style,g,l,Ma);ia.vertex=!0;ia.value=f(g);v.insert(ia);ia.style+=a(ia.style,g,l,ia,z);break;case "BPMNAdvancedPoolBlockRotated":case "UMLMultiLanePoolRotatedBlock":case "UMLMultiLanePoolBlock":case "BPMNAdvancedPoolBlock":case "AdvancedSwimLaneBlockRotated":case "AdvancedSwimLaneBlock":case "UMLSwimLaneBlockV2":var ma="MainText",eb=null,vd="HeaderFill_",bc="BodyFill_",Jb=25,Kc=25,Mc=0;if(null!=g.Lanes)Mc=g.Lanes.length;else if(null!=g.PrimaryLane){for(var pe=
-function(a){if(a)32>a?a=32:208<a&&(a=208);else return 0;return.75*a},Mc=g.PrimaryLane.length,m=t=u=0;m<Mc;m++)u+=g.PrimaryLane[m];for(m=0;m<g.SecondaryLane.length;m++)t+=g.SecondaryLane[m];Jb=pe(g.PrimaryPoolTitleHeight);Kc=pe(g.PrimaryLaneTitleHeight);u*=.75;t=.75*t+Jb+Kc;v.geometry.width=u;v.geometry.height=t;ma="poolPrimaryTitleKey";vd="PrimaryLaneHeaderFill_";bc="CellFill_0,";eb=g.PrimaryLaneTextAreaIds;if(null==eb)for(eb=[],m=0;m<Mc;m++)eb.push("Primary_"+m)}if(0==g.IsPrimaryLaneVertical){g.Rotation=
--1.5707963267948966;var re=v.geometry.x,af=v.geometry.y}var Ld=0!=g.Rotation,se=0<ea.indexOf("Pool"),sc=0==ea.indexOf("BPMN"),Md=null!=g[ma];v.style=(se?"swimlane;startSize="+Jb+";":"fillColor=none;strokeColor=none;pointerEvents=0;fontStyle=0;")+"html=1;whiteSpace=wrap;container=1;collapsible=0;childLayout=stackLayout;resizeParent=1;dropTarget=0;"+(Ld?"horizontalStack=0;":"");v.style+=a(v.style,g,l,v);Md&&(v.value=f(g[ma]),v.style+=(z?"overflow=block;blockSpacing=1;fontSize=13;"+Ca:h(g[ma])+x(g[ma])+
-n(g[ma])+w(g[ma])+B(g[ma],v)+E(g[ma])+C(g[ma])+F(g[ma])+D(g[ma]))+K(g[ma])+Z(g[ma]));for(var oe=0,Ib=[],tc="swimlane;html=1;whiteSpace=wrap;container=1;connectable=0;collapsible=0;fontStyle=0;startSize="+Kc+";dropTarget=0;rounded=0;"+(Ld?"horizontal=0;":"")+(sc?"swimlaneLine=0;fillColor=none;":""),P=g.Rotation=0;P<Mc;P++){if(null==eb)var rd=parseFloat(g.Lanes[P].p),m=parseInt(g.Lanes[P].tid)||P,db="Lane_"+m;else rd=.75*g.PrimaryLane[P]/u,m=P,db=eb[P];var qe=u*oe,sd=se?Jb:0;Ib.push(new mxCell("",Ld?
-new mxGeometry(sd,qe,t-sd,u*rd):new mxGeometry(qe,sd,u*rd,t-sd),tc));Ib[P].vertex=!0;v.insert(Ib[P]);Ib[P].value=f(g[db]);Ib[P].style+=a(Ib[P].style,g,l,Ib[P],z)+(z?"fontSize=13;":h(g[db])+x(g[db])+w(g[db])+B(g[db],Ib[P])+E(g[db])+C(g[db])+F(g[db])+D(g[db]))+K(g[db])+Z(g[db])+Y(g[vd+m])+O(g[bc+m]);oe+=rd}null!=re&&(v.geometry.x=re,v.geometry.y=af);break;case "UMLMultidimensionalSwimlane":var $b=0,ac=0,Lc=null,Td=null;if(null!=g.Rows&&null!=g.Columns)var $b=g.Rows.length,ac=g.Columns.length,dc=.75*
-g.TitleHeight||25,Tc=.75*g.TitleWidth||25;else if(null!=g.PrimaryLane&&null!=g.SecondaryLane){$b=g.SecondaryLane.length;ac=g.PrimaryLane.length;Tc=.75*g.SecondaryLaneTitleHeight||25;dc=.75*g.PrimaryLaneTitleHeight||25;for(m=t=u=0;m<$b;m++)t+=g.SecondaryLane[m];for(m=0;m<ac;m++)u+=g.PrimaryLane[m];u=.75*u+Tc;t=.75*t+dc;v.geometry.width=u;v.geometry.height=t;Lc=g.SecondaryLaneTextAreaIds;Td=g.PrimaryLaneTextAreaIds}v.style="group;";var Ud=new mxCell("",new mxGeometry(0,dc,u,t-dc),"fillColor=none;strokeColor=none;html=1;whiteSpace=wrap;container=1;collapsible=0;childLayout=stackLayout;resizeParent=1;dropTarget=0;horizontalStack=0;");
-Ud.vertex=!0;var Uc=new mxCell("",new mxGeometry(Tc,0,u-Tc,t),"fillColor=none;strokeColor=none;html=1;whiteSpace=wrap;container=1;collapsible=0;childLayout=stackLayout;resizeParent=1;dropTarget=0;");Uc.vertex=!0;v.insert(Ud);v.insert(Uc);for(var A=0,bf="swimlane;html=1;whiteSpace=wrap;container=1;connectable=0;collapsible=0;dropTarget=0;horizontal=0;fontStyle=0;startSize="+Tc+";",P=0;P<$b;P++){if(null==Lc)var Vd=.75*parseInt(g.Rows[P].height),m=parseInt(g.Rows[P].id)||P,gb="Row_"+m;else Vd=.75*g.SecondaryLane[P],
-gb=Lc[P];var Kb=new mxCell("",new mxGeometry(0,A,u,Vd),bf),A=A+Vd;Kb.vertex=!0;Ud.insert(Kb);Kb.value=f(g[gb]);Kb.style+=a(Kb.style,g,l,Kb,z)+(z?"fontSize=13;":h(g[gb])+x(g[gb])+w(g[gb])+B(g[gb],Kb)+E(g[gb])+C(g[gb])+F(g[gb])+D(g[gb]))+K(g[gb])+Z(g[gb])}for(var Nc="swimlane;html=1;whiteSpace=wrap;container=1;connectable=0;collapsible=0;dropTarget=0;fontStyle=0;startSize="+dc+";",P=k=0;P<ac;P++){if(null==Td)var uc=.75*parseInt(g.Columns[P].width),m=parseInt(g.Columns[P].id)||P,hb="Column_"+m;else uc=
-.75*g.PrimaryLane[P],hb=Td[P];var Ub=new mxCell("",new mxGeometry(k,0,uc,t),Nc),k=k+uc;Ub.vertex=!0;Uc.insert(Ub);Ub.value=f(g[hb]);Ub.style+=a(Ub.style,g,l,Ub,z)+(z?"fontSize=13;":h(g[hb])+x(g[hb])+w(g[hb])+B(g[hb],Ub)+E(g[hb])+C(g[hb])+F(g[hb])+D(g[hb]))+K(g[hb])+Z(g[hb])}break;case "UMLStateBlock":if(0==g.Composite)v.style="rounded=1;arcSize=20",v.value=f(g.State,!0),v.style+=a(v.style,g,l,v,z);else{v.style="swimlane;startSize=25;html=1;whiteSpace=wrap;container=1;collapsible=0;childLayout=stackLayout;resizeParent=1;dropTarget=0;rounded=1;arcSize=20;fontStyle=0;";
-v.value=f(g.State,!0);v.style+=a(v.style,g,l,v,z);v.style+=X(g,l).replace("fillColor","swimlaneFillColor");var Qa=new mxCell("",new mxGeometry(0,25,u,t-25),"rounded=1;arcSize=20;strokeColor=none;fillColor=none");Qa.value=f(g.Action,!0);Qa.style+=a(Qa.style,g,l,Qa,z);Qa.vertex=!0;v.insert(Qa)}break;case "GSDFDProcessBlock":var cc=Math.round(.75*g.nameHeight);v.style="shape=swimlane;html=1;rounded=1;arcSize=10;collapsible=0;fontStyle=0;startSize="+cc;v.value=f(g.Number,!0);v.style+=a(v.style,g,l,v,
-z);v.style+=X(g,l).replace("fillColor","swimlaneFillColor");Qa=new mxCell("",new mxGeometry(0,cc,u,t-cc),"rounded=1;arcSize=10;strokeColor=none;fillColor=none");Qa.value=f(g.Text,!0);Qa.style+=a(Qa.style,g,l,Qa,z);Qa.vertex=!0;v.insert(Qa);break;case "AndroidDevice":if(null!=g.AndroidDeviceName){var Da=aa(g,l,v);v.style="fillColor=#000000;strokeColor=#000000;";var Lb=null,vc=null,wc=null;if("Tablet"==g.AndroidDeviceName||"Mini Tablet"==g.AndroidDeviceName||"custom"==g.AndroidDeviceName&&"Tablet"==
-g.CustomDeviceType)v.style+="shape=mxgraph.android.tab2;",Lb=new mxCell("",new mxGeometry(.112,.077,.77*u,.85*t),Da),g.KeyboardShown&&(vc=new mxCell("",new mxGeometry(.112,.727,.77*u,.2*t),"shape=mxgraph.android.keyboard;"+Da)),g.FullScreen||(wc=new mxCell("",new mxGeometry(.112,.077,.77*u,.03*t),"shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize="+.015*t+";"+Da));else if("Large Phone"==g.AndroidDeviceName||"Phone"==g.AndroidDeviceName||"custom"==g.AndroidDeviceName&&
-"Phone"==g.CustomDeviceType)v.style+="shape=mxgraph.android.phone2;",Lb=new mxCell("",new mxGeometry(.04,.092,.92*u,.816*t),Da),g.KeyboardShown&&(vc=new mxCell("",new mxGeometry(.04,.708,.92*u,.2*t),"shape=mxgraph.android.keyboard;"+Da)),g.FullScreen||(wc=new mxCell("",new mxGeometry(.04,.092,.92*u,.03*t),"shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize="+.015*t+";"+Da));Lb.vertex=!0;Lb.geometry.relative=!0;v.insert(Lb);"Dark"==g.Scheme?Lb.style+="fillColor=#111111;":
-"Light"==g.Scheme&&(Lb.style+="fillColor=#ffffff;");null!=vc&&(vc.vertex=!0,vc.geometry.relative=!0,v.insert(vc));null!=wc&&(wc.vertex=!0,wc.geometry.relative=!0,v.insert(wc))}v.style+=a(v.style,g,l,v);break;case "AndroidAlertDialog":var ob=new mxCell("",new mxGeometry(0,0,u,30),"strokeColor=none;fillColor=none;spacingLeft=9;");ob.vertex=!0;v.insert(ob);var ka=new mxCell("",new mxGeometry(0,25,u,10),"shape=line;strokeColor=#33B5E5;");ka.vertex=!0;v.insert(ka);var Vc=new mxCell("",new mxGeometry(0,
-30,u,t-30),"strokeColor=none;fillColor=none;verticalAlign=top;");Vc.vertex=!0;v.insert(Vc);var za=new mxCell("",new mxGeometry(0,t-25,.5*u,25),"fillColor=none;");za.vertex=!0;v.insert(za);var Aa=new mxCell("",new mxGeometry(.5*u,t-25,.5*u,25),"fillColor=none;");Aa.vertex=!0;v.insert(Aa);ob.value=f(g.DialogTitle);ob.style+=b(g.DialogTitle,z);Vc.value=f(g.DialogText);Vc.style+=b(g.DialogText,z);za.value=f(g.Button_0);za.style+=b(g.Button_0,z);Aa.value=f(g.Button_1);Aa.style+=b(g.Button_1,z);"Dark"==
-g.Scheme?(v.style+="strokeColor=#353535;fillColor=#282828;shadow=1;",za.style+="strokeColor=#353535;",Aa.style+="strokeColor=#353535;"):(v.style+="strokeColor=none;fillColor=#ffffff;shadow=1;",za.style+="strokeColor=#E2E2E2;",Aa.style+="strokeColor=#E2E2E2;");v.style+=a(v.style,g,l,v);break;case "AndroidDateDialog":case "AndroidTimeDialog":ob=new mxCell("",new mxGeometry(0,0,u,30),"strokeColor=none;fillColor=none;spacingLeft=9;");ob.vertex=!0;v.insert(ob);ob.value=f(g.DialogTitle);ob.style+=b(g.DialogTitle,
-z);ka=new mxCell("",new mxGeometry(0,25,u,10),"shape=line;strokeColor=#33B5E5;");ka.vertex=!0;v.insert(ka);za=new mxCell("",new mxGeometry(0,t-25,.5*u,25),"fillColor=none;");za.vertex=!0;v.insert(za);za.value=f(g.Button_0);za.style+=b(g.Button_0,z);Aa=new mxCell("",new mxGeometry(.5*u,t-25,.5*u,25),"fillColor=none;");Aa.vertex=!0;v.insert(Aa);Aa.value=f(g.Button_1);Aa.style+=b(g.Button_1,z);var xc=new mxCell("",new mxGeometry(.5*u-4,41,8,4),"shape=triangle;direction=north;");xc.vertex=!0;v.insert(xc);
-var yc=new mxCell("",new mxGeometry(.25*u-4,41,8,4),"shape=triangle;direction=north;");yc.vertex=!0;v.insert(yc);var zc=new mxCell("",new mxGeometry(.75*u-4,41,8,4),"shape=triangle;direction=north;");zc.vertex=!0;v.insert(zc);var Wc=new mxCell("",new mxGeometry(.375*u,50,.2*u,15),"strokeColor=none;fillColor=none;");Wc.vertex=!0;v.insert(Wc);Wc.value=f(g.Label_1);Wc.style+=b(g.Label_1,z);var Xc=new mxCell("",new mxGeometry(.125*u,50,.2*u,15),"strokeColor=none;fillColor=none;");Xc.vertex=!0;v.insert(Xc);
-Xc.value=f(g.Label_0);Xc.style+=b(g.Label_0,z);var Ac=null;"AndroidDateDialog"==c.Class&&(Ac=new mxCell("",new mxGeometry(.625*u,50,.2*u,15),"strokeColor=none;fillColor=none;"),Ac.vertex=!0,v.insert(Ac),Ac.value=f(g.Label_2),Ac.style+=b(g.Label_2,z));var Ra=new mxCell("",new mxGeometry(.43*u,60,.14*u,10),"shape=line;strokeColor=#33B5E5;");Ra.vertex=!0;v.insert(Ra);var Sa=new mxCell("",new mxGeometry(.18*u,60,.14*u,10),"shape=line;strokeColor=#33B5E5;");Sa.vertex=!0;v.insert(Sa);var Oc=new mxCell("",
-new mxGeometry(.68*u,60,.14*u,10),"shape=line;strokeColor=#33B5E5;");Oc.vertex=!0;v.insert(Oc);var Yc=new mxCell("",new mxGeometry(.375*u,65,.2*u,15),"strokeColor=none;fillColor=none;");Yc.vertex=!0;v.insert(Yc);Yc.value=f(g.Label_4);Yc.style+=b(g.Label_4,z);var Bc=null;"AndroidTimeDialog"==c.Class&&(Bc=new mxCell("",new mxGeometry(.3*u,65,.1*u,15),"strokeColor=none;fillColor=none;"),Bc.vertex=!0,v.insert(Bc),Bc.value=f(g.Label_Colon),Bc.style+=b(g.Label_Colon,z));var Zc=new mxCell("",new mxGeometry(.125*
-u,65,.2*u,15),"strokeColor=none;fillColor=none;");Zc.vertex=!0;v.insert(Zc);Zc.value=f(g.Label_3);Zc.style+=b(g.Label_3,z);var $c=new mxCell("",new mxGeometry(.625*u,65,.2*u,15),"strokeColor=none;fillColor=none;");$c.vertex=!0;v.insert($c);$c.value=f(g.Label_5);$c.style+=b(g.Label_5,z);var Pc=new mxCell("",new mxGeometry(.43*u,75,.14*u,10),"shape=line;strokeColor=#33B5E5;");Pc.vertex=!0;v.insert(Pc);var Qc=new mxCell("",new mxGeometry(.18*u,75,.14*u,10),"shape=line;strokeColor=#33B5E5;");Qc.vertex=
-!0;v.insert(Qc);var Rc=new mxCell("",new mxGeometry(.68*u,75,.14*u,10),"shape=line;strokeColor=#33B5E5;");Rc.vertex=!0;v.insert(Rc);var ad=new mxCell("",new mxGeometry(.375*u,80,.2*u,15),"strokeColor=none;fillColor=none;");ad.vertex=!0;v.insert(ad);ad.value=f(g.Label_7);ad.style+=b(g.Label_7,z);var bd=new mxCell("",new mxGeometry(.125*u,80,.2*u,15),"strokeColor=none;fillColor=none;");bd.vertex=!0;v.insert(bd);bd.value=f(g.Label_6);bd.style+=b(g.Label_6,z);var cd=new mxCell("",new mxGeometry(.625*
-u,80,.2*u,15),"strokeColor=none;fillColor=none;");cd.vertex=!0;v.insert(cd);cd.value=f(g.Label_8);cd.style+=b(g.Label_8,z);var Cc=new mxCell("",new mxGeometry(.5*u-4,99,8,4),"shape=triangle;direction=south;");Cc.vertex=!0;v.insert(Cc);var Dc=new mxCell("",new mxGeometry(.25*u-4,99,8,4),"shape=triangle;direction=south;");Dc.vertex=!0;v.insert(Dc);var Ec=new mxCell("",new mxGeometry(.75*u-4,99,8,4),"shape=triangle;direction=south;");Ec.vertex=!0;v.insert(Ec);"Dark"==g.Scheme?(v.style+="strokeColor=#353535;fillColor=#282828;shadow=1;",
-za.style+="strokeColor=#353535;",Aa.style+="strokeColor=#353535;",xc.style+="strokeColor=none;fillColor=#7E7E7E;",yc.style+="strokeColor=none;fillColor=#7E7E7E;",zc.style+="strokeColor=none;fillColor=#7E7E7E;",Cc.style+="strokeColor=none;fillColor=#7E7E7E;",Dc.style+="strokeColor=none;fillColor=#7E7E7E;",Ec.style+="strokeColor=none;fillColor=#7E7E7E;"):(v.style+="strokeColor=none;fillColor=#ffffff;shadow=1;",za.style+="strokeColor=#E2E2E2;",Aa.style+="strokeColor=#E2E2E2;",xc.style+="strokeColor=none;fillColor=#939393;",
-yc.style+="strokeColor=none;fillColor=#939393;",zc.style+="strokeColor=none;fillColor=#939393;",Cc.style+="strokeColor=none;fillColor=#939393;",Dc.style+="strokeColor=none;fillColor=#939393;",Ec.style+="strokeColor=none;fillColor=#939393;");v.style+=a(v.style,g,l,v);break;case "AndroidListItems":var Na=t,Mb=0;if(g.ShowHeader){var Mb=8,ec=new mxCell("",new mxGeometry(0,0,u,Mb),"strokeColor=none;fillColor=none;");ec.vertex=!0;v.insert(ec);ec.value=f(g.Header);ec.style+=b(g.Header,z);var Na=Na-Mb,Sc=
-new mxCell("",new mxGeometry(0,Mb-2,u,4),"shape=line;strokeColor=#999999;");Sc.vertex=!0;v.insert(Sc)}var pb=parseInt(g.Items);0<pb&&(Na/=pb);for(var I=[],ka=[],m=0;m<pb;m++)I[m]=new mxCell("",new mxGeometry(0,Mb+m*Na,u,Na),"strokeColor=none;fillColor=none;"),I[m].vertex=!0,v.insert(I[m]),I[m].value=f(g["Item_"+m]),I[m].style+=b(g["Item_"+m],z),0<m&&(ka[m]=new mxCell("",new mxGeometry(0,Mb+m*Na-2,u,4),"shape=line;"),ka[m].vertex=!0,v.insert(ka[m]),ka[m].style="Dark"==g.Scheme?ka[m].style+"strokeColor=#ffffff;":
-ka[m].style+"strokeColor=#D9D9D9;");v.style="Dark"==g.Scheme?v.style+"strokeColor=none;fillColor=#111111;":v.style+"strokeColor=none;fillColor=#ffffff;";v.style+=a(v.style,g,l,v);break;case "AndroidTabs":var qb=parseInt(g.Tabs),Wa=u;0<qb&&(Wa/=qb);for(var na=[],ka=[],m=0;m<qb;m++)na[m]=new mxCell("",new mxGeometry(m*Wa,0,Wa,t),"strokeColor=none;fillColor=none;"),na[m].vertex=!0,v.insert(na[m]),na[m].value=f(g["Tab_"+m]),na[m].style+=b(g["Tab_"+m],z),0<m&&(ka[m]=new mxCell("",new mxGeometry(m*Wa-2,
-.2*t,4,.6*t),"shape=line;direction=north;"),ka[m].vertex=!0,v.insert(ka[m]),ka[m].style="Dark"==g.Scheme?ka[m].style+"strokeColor=#484848;":ka[m].style+"strokeColor=#CCCCCC;");var ve=new mxCell("",new mxGeometry(g.Selected*Wa+2,t-3,Wa-4,3),"strokeColor=none;fillColor=#33B5E5;");ve.vertex=!0;v.insert(ve);v.style="Dark"==g.Scheme?v.style+"strokeColor=none;fillColor=#333333;":v.style+"strokeColor=none;fillColor=#DDDDDD;";v.style+=a(v.style,g,l,v);break;case "AndroidProgressBar":v=new mxCell("",new mxGeometry(Math.round(k),
-Math.round(A+.25*t),Math.round(u),Math.round(.5*t)),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;");v.vertex=!0;var dd=new mxCell("",new mxGeometry(0,0,u*g.BarPosition,Math.round(.5*t)),"strokeColor=none;fillColor=#33B5E5;");dd.vertex=!0;v.insert(dd);v.style="Dark"==g.Scheme?v.style+"strokeColor=none;fillColor=#474747;":v.style+"strokeColor=none;fillColor=#BBBBBB;";v.style+=a(v.style,g,l,v);break;case "AndroidImageBlock":v.style="Dark"==g.Scheme?v.style+"shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#7E7E7E;fillColor=#111111;":
-v.style+"shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#939393;fillColor=#ffffff;";v.style+=a(v.style,g,l,v);break;case "AndroidTextBlock":v.style="Dark"==g.Scheme?g.ShowBorder?v.style+"fillColor=#111111;strokeColor=#ffffff;":v.style+"fillColor=#111111;strokeColor=none;":g.ShowBorder?v.style+"fillColor=#ffffff;strokeColor=#000000;":v.style+"fillColor=#ffffff;strokeColor=none;";v.value=f(g.Label);v.style+=b(g.Label,z);v.style+=a(v.style,g,l,v,z);break;case "AndroidActionBar":v.style+="strokeColor=none;";
-switch(g.BarBackground){case "Blue":v.style+="fillColor=#002E3E;";break;case "Gray":v.style+="fillColor=#DDDDDD;";break;case "Dark Gray":v.style+="fillColor=#474747;";break;case "White":v.style+="fillColor=#ffffff;"}if(g.HighlightShow){var Nb=null,Nb=g.HighlightTop?new mxCell("",new mxGeometry(0,0,u,2),"strokeColor=none;"):new mxCell("",new mxGeometry(0,t-2,u,2),"strokeColor=none;");Nb.vertex=!0;v.insert(Nb);switch(g.HighlightColor){case "Blue":Nb.style+="fillColor=#33B5E5;";break;case "Dark Gray":Nb.style+=
-"fillColor=#B0B0B0;";break;case "White":Nb.style+="fillColor=#ffffff;"}}if(g.VlignShow){var Fc=new mxCell("",new mxGeometry(20,5,2,t-10),"shape=line;direction=north;");Fc.vertex=!0;v.insert(Fc);switch(g.VlignColor){case "Blue":Fc.style+="strokeColor=#244C5A;";break;case "White":Fc.style+="strokeColor=#ffffff;"}}v.style+=a(v.style,g,l,v);break;case "AndroidButton":v.value=f(g.Label);v.style+=b(g.Label,z)+"shape=partialRectangle;left=0;right=0;";v.style="Dark"==g.Scheme?v.style+"fillColor=#474747;strokeColor=#C6C5C6;bottom=0;":
-v.style+"fillColor=#DFE0DF;strokeColor=#C6C5C6;top=0;";v.style+=a(v.style,g,l,v);break;case "AndroidTextBox":v.value=f(g.Label);v.style+=b(g.Label,z);var ed=new mxCell("",new mxGeometry(2,t-6,u-4,4),"shape=partialRectangle;top=0;fillColor=none;");ed.vertex=!0;v.insert(ed);v.style="Dark"==g.Scheme?v.style+"fillColor=#111111;strokeColor=none;":v.style+"fillColor=#ffffff;strokeColor=none;";ed.style=g.TextFocused?ed.style+"strokeColor=#33B5E5;":ed.style+"strokeColor=#A9A9A9;";v.style+=a(v.style,g,l,v);
-break;case "AndroidRadioButton":var fc=null;g.Checked&&(fc=new mxCell("",new mxGeometry(.15*u,.15*t,.7*u,.7*t),"ellipse;fillColor=#33B5E5;strokeWidth=1;"),fc.vertex=!0,v.insert(fc));"Dark"==g.Scheme?(v.style+="shape=ellipse;perimeter=ellipsePerimeter;strokeWidth=1;strokeColor=#272727;",g.Checked?(fc.style+="strokeColor=#1F5C73;",v.style+="fillColor=#193C49;"):v.style+="fillColor=#111111;"):(v.style+="shape=ellipse;perimeter=ellipsePerimeter;strokeWidth=1;fillColor=#ffffff;strokeColor=#5C5C5C;",g.Checked&&
-(fc.style+="strokeColor=#999999;"));v.style+=a(v.style,g,l,v);break;case "AndroidCheckBox":var Wd=null;g.Checked&&(Wd=new mxCell("",new mxGeometry(.25*u,.05*-t,u,.8*t),"shape=mxgraph.ios7.misc.check;strokeColor=#33B5E5;strokeWidth=2;"),Wd.vertex=!0,v.insert(Wd));v.style="Dark"==g.Scheme?v.style+"strokeWidth=1;strokeColor=#272727;fillColor=#111111;":v.style+"strokeWidth=1;strokeColor=#5C5C5C;fillColor=#ffffff;";v.style+=a(v.style,g,l,v);break;case "AndroidToggle":v.style="Dark"==g.Scheme?g.Checked?
-v.style+"shape=mxgraph.android.switch_on;fillColor=#666666;":v.style+"shape=mxgraph.android.switch_off;fillColor=#666666;":g.Checked?v.style+"shape=mxgraph.android.switch_on;fillColor=#E6E6E6;":v.style+"shape=mxgraph.android.switch_off;fillColor=#E6E6E6;";v.style+=a(v.style,g,l,v);break;case "AndroidSlider":v.style+="shape=mxgraph.android.progressScrubberFocused;dx="+g.BarPosition+";fillColor=#33b5e5;";v.style+=a(v.style,g,l,v);break;case "iOSSegmentedControl":qb=parseInt(g.Tabs);Wa=u;v.style+="strokeColor=none;fillColor=none;";
-0<qb&&(Wa/=qb);na=[];ka=[];for(m=0;m<qb;m++)na[m]=new mxCell("",new mxGeometry(m*Wa,0,Wa,t),"strokeColor="+g.FillColor+";"),na[m].vertex=!0,v.insert(na[m]),na[m].value=f(g["Tab_"+m]),na[m].style+=b(g["Tab_"+m],z),na[m].style=g.Selected==m?na[m].style+X(g,l):na[m].style+"fillColor=none;";v.style+=a(v.style,g,l,v);break;case "iOSSlider":v.style+="shape=mxgraph.ios7ui.slider;strokeColor="+g.FillColor+";fillColor=#ffffff;strokeWidth=2;barPos="+100*g.BarPosition+";";v.style+=a(v.style,g,l,v);break;case "iOSProgressBar":v=
-new mxCell("",new mxGeometry(Math.round(k),Math.round(A+.25*t),Math.round(u),Math.round(.5*t)),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;strokeColor=none;fillColor=#B5B5B5;");v.vertex=!0;dd=new mxCell("",new mxGeometry(0,0,u*g.BarPosition,Math.round(.5*t)),"strokeColor=none;"+X(g,l));dd.vertex=!0;v.insert(dd);v.style+=a(v.style,g,l,v);break;case "iOSPageControls":v.style+="shape=mxgraph.ios7ui.pageControl;strokeColor=#D6D6D6;";v.style+=a(v.style,g,l,v);break;case "iOSStatusBar":v.style+=
-"shape=mxgraph.ios7ui.appBar;strokeColor=#000000;";var W=new mxCell(f(g.Text),new mxGeometry(.35*u,0,.3*u,t),"strokeColor=none;fillColor=none;");W.vertex=!0;v.insert(W);W.style+=b(g.Text,z);var Ta=new mxCell(f(g.Carrier),new mxGeometry(.09*u,0,.2*u,t),"strokeColor=none;fillColor=none;");Ta.vertex=!0;v.insert(Ta);Ta.style+=b(g.Carrier,z);v.style+=a(v.style,g,l,v);break;case "iOSSearchBar":v.value=f(g.Search);v.style+="strokeColor=none;";v.style+=a(v.style,g,l,v,z)+b(g.Search,z);var ca=new mxCell("",
-new mxGeometry(.3*u,.3*t,.4*t,.4*t),"shape=mxgraph.ios7.icons.looking_glass;strokeColor=#000000;fillColor=none;");ca.vertex=!0;v.insert(ca);break;case "iOSNavBar":v.value=f(g.Title);v.style+="shape=partialRectangle;top=0;right=0;left=0;strokeColor=#979797;"+b(g.Title,z);v.style+=a(v.style,g,l,v,z);W=new mxCell(f(g.LeftText),new mxGeometry(.03*u,0,.3*u,t),"strokeColor=none;fillColor=none;");W.vertex=!0;v.insert(W);W.style+=b(g.LeftText,z);Ta=new mxCell(f(g.RightText),new mxGeometry(.65*u,0,.3*u,t),
-"strokeColor=none;fillColor=none;");Ta.vertex=!0;v.insert(Ta);Ta.style+=b(g.RightText,z);ca=new mxCell("",new mxGeometry(.02*u,.2*t,.3*t,.5*t),"shape=mxgraph.ios7.misc.left;strokeColor=#007AFF;strokeWidth=2;");ca.vertex=!0;v.insert(ca);break;case "iOSTabs":qb=parseInt(g.Tabs);Wa=u;v.style+="shape=partialRectangle;right=0;left=0;bottom=0;strokeColor=#979797;";v.style+=a(v.style,g,l,v);0<qb&&(Wa/=qb);na=[];ka=[];for(m=0;m<qb;m++)na[m]=new mxCell("",new mxGeometry(m*Wa,0,Wa,t),"strokeColor=none;"),na[m].vertex=
-!0,v.insert(na[m]),na[m].value=f(g["Tab_"+m]),na[m].style+=z?"overflow=block;blockSpacing=1;html=1;fontSize=13;"+Ca:h(g["Tab_"+m])+n(g["Tab_"+m])+x(g["Tab_"+m])+w(g["Tab_"+m])+B(g["Tab_"+m])+E(g["Tab_"+m])+C(g["Tab_"+m])+F(g["Tab_"+m])+D(g["Tab_"+m])+K(g["Tab_"+m]),na[m].style+="verticalAlign=bottom;",na[m].style=g.Selected==m?na[m].style+"fillColor=#BBBBBB;":na[m].style+"fillColor=none;";break;case "iOSDatePicker":var rb=new mxCell("",new mxGeometry(0,0,.5*u,.2*t),"strokeColor=none;fillColor=none;");
-rb.vertex=!0;v.insert(rb);rb.value=f(g.Option11);rb.style+=b(g.Option11,z);var sb=new mxCell("",new mxGeometry(.5*u,0,.15*u,.2*t),"strokeColor=none;fillColor=none;");sb.vertex=!0;v.insert(sb);sb.value=f(g.Option21);sb.style+=b(g.Option21,z);var tb=new mxCell("",new mxGeometry(.65*u,0,.15*u,.2*t),"strokeColor=none;fillColor=none;");tb.vertex=!0;v.insert(tb);tb.value=f(g.Option31);tb.style+=b(g.Option31,z);var ub=new mxCell("",new mxGeometry(0,.2*t,.5*u,.2*t),"strokeColor=none;fillColor=none;");ub.vertex=
-!0;v.insert(ub);ub.value=f(g.Option12);ub.style+=b(g.Option12,z);var vb=new mxCell("",new mxGeometry(.5*u,.2*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");vb.vertex=!0;v.insert(vb);vb.value=f(g.Option22);vb.style+=b(g.Option22,z);var wb=new mxCell("",new mxGeometry(.65*u,.2*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");wb.vertex=!0;v.insert(wb);wb.value=f(g.Option32);wb.style+=b(g.Option32,z);var Ga=new mxCell("",new mxGeometry(0,.4*t,.5*u,.2*t),"strokeColor=none;fillColor=none;");Ga.vertex=
-!0;v.insert(Ga);Ga.value=f(g.Option13);Ga.style+=b(g.Option13,z);var Ha=new mxCell("",new mxGeometry(.5*u,.4*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Ha.vertex=!0;v.insert(Ha);Ha.value=f(g.Option23);Ha.style+=b(g.Option23,z);var xb=new mxCell("",new mxGeometry(.65*u,.4*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");xb.vertex=!0;v.insert(xb);xb.value=f(g.Option33);xb.style+=b(g.Option33,z);var Ia=new mxCell("",new mxGeometry(.8*u,.4*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Ia.vertex=
-!0;v.insert(Ia);Ia.value=f(g.Option43);Ia.style+=b(g.Option43,z);var Ja=new mxCell("",new mxGeometry(0,.6*t,.5*u,.2*t),"strokeColor=none;fillColor=none;");Ja.vertex=!0;v.insert(Ja);Ja.value=f(g.Option14);Ja.style+=b(g.Option14,z);var yb=new mxCell("",new mxGeometry(.5*u,.6*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");yb.vertex=!0;v.insert(yb);yb.value=f(g.Option24);yb.style+=b(g.Option24,z);var zb=new mxCell("",new mxGeometry(.65*u,.6*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");zb.vertex=
-!0;v.insert(zb);zb.value=f(g.Option34);zb.style+=b(g.Option34,z);var Ab=new mxCell("",new mxGeometry(.8*u,.6*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Ab.vertex=!0;v.insert(Ab);Ab.value=f(g.Option44);Ab.style+=b(g.Option44,z);var Ka=new mxCell("",new mxGeometry(0,.8*t,.5*u,.2*t),"strokeColor=none;fillColor=none;");Ka.vertex=!0;v.insert(Ka);Ka.value=f(g.Option15);Ka.style+=b(g.Option15,z);var Bb=new mxCell("",new mxGeometry(.5*u,.8*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Bb.vertex=
-!0;v.insert(Bb);Bb.value=f(g.Option25);Bb.style+=b(g.Option25,z);var Cb=new mxCell("",new mxGeometry(.65*u,.8*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Cb.vertex=!0;v.insert(Cb);Cb.value=f(g.Option35);Cb.style+=b(g.Option35,z);Ra=new mxCell("",new mxGeometry(0,.4*t-2,u,4),"shape=line;strokeColor=#888888;");Ra.vertex=!0;v.insert(Ra);Sa=new mxCell("",new mxGeometry(0,.6*t-2,u,4),"shape=line;strokeColor=#888888;");Sa.vertex=!0;v.insert(Sa);v.style+="strokeColor=none;";v.style+=a(v.style,g,l,
-v);break;case "iOSTimePicker":rb=new mxCell("",new mxGeometry(0,0,.25*u,.2*t),"strokeColor=none;fillColor=none;");rb.vertex=!0;v.insert(rb);rb.value=f(g.Option11);rb.style+=b(g.Option11,z);sb=new mxCell("",new mxGeometry(.25*u,0,.3*u,.2*t),"strokeColor=none;fillColor=none;");sb.vertex=!0;v.insert(sb);sb.value=f(g.Option21);sb.style+=b(g.Option21,z);ub=new mxCell("",new mxGeometry(0,.2*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");ub.vertex=!0;v.insert(ub);ub.value=f(g.Option12);ub.style+=b(g.Option12,
-z);vb=new mxCell("",new mxGeometry(.25*u,.2*t,.3*u,.2*t),"strokeColor=none;fillColor=none;");vb.vertex=!0;v.insert(vb);vb.value=f(g.Option22);vb.style+=b(g.Option22,z);Ga=new mxCell("",new mxGeometry(0,.4*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ga.vertex=!0;v.insert(Ga);Ga.value=f(g.Option13);Ga.style+=b(g.Option13,z);Ha=new mxCell("",new mxGeometry(.25*u,.4*t,.3*u,.2*t),"strokeColor=none;fillColor=none;");Ha.vertex=!0;v.insert(Ha);Ha.value=f(g.Option23);Ha.style+=b(g.Option23,z);Ia=new mxCell("",
-new mxGeometry(.7*u,.4*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Ia.vertex=!0;v.insert(Ia);Ia.value=f(g.Option33);Ia.style+=b(g.Option33,z);Ja=new mxCell("",new mxGeometry(0,.6*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ja.vertex=!0;v.insert(Ja);Ja.value=f(g.Option14);Ja.style+=b(g.Option14,z);yb=new mxCell("",new mxGeometry(.25*u,.6*t,.3*u,.2*t),"strokeColor=none;fillColor=none;");yb.vertex=!0;v.insert(yb);yb.value=f(g.Option24);yb.style+=b(g.Option24,z);Ab=new mxCell("",new mxGeometry(.7*
-u,.6*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Ab.vertex=!0;v.insert(Ab);Ab.value=f(g.Option34);Ab.style+=b(g.Option34,z);Ka=new mxCell("",new mxGeometry(0,.8*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ka.vertex=!0;v.insert(Ka);Ka.value=f(g.Option15);Ka.style+=b(g.Option15,z);Bb=new mxCell("",new mxGeometry(.25*u,.8*t,.3*u,.2*t),"strokeColor=none;fillColor=none;");Bb.vertex=!0;v.insert(Bb);Bb.value=f(g.Option25);Bb.style+=b(g.Option25,z);Ra=new mxCell("",new mxGeometry(0,.4*t-2,u,4),
-"shape=line;strokeColor=#888888;");Ra.vertex=!0;v.insert(Ra);Sa=new mxCell("",new mxGeometry(0,.6*t-2,u,4),"shape=line;strokeColor=#888888;");Sa.vertex=!0;v.insert(Sa);v.style+="strokeColor=none;";v.style+=a(v.style,g,l,v);break;case "iOSCountdownPicker":tb=new mxCell("",new mxGeometry(.45*u,0,.2*u,.2*t),"strokeColor=none;fillColor=none;");tb.vertex=!0;v.insert(tb);tb.value=f(g.Option31);tb.style+=b(g.Option31,z);wb=new mxCell("",new mxGeometry(.45*u,.2*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");
-wb.vertex=!0;v.insert(wb);wb.value=f(g.Option32);wb.style+=b(g.Option32,z);Ga=new mxCell("",new mxGeometry(0,.4*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ga.vertex=!0;v.insert(Ga);Ga.value=f(g.Option13);Ga.style+=b(g.Option13,z);Ha=new mxCell("",new mxGeometry(.2*u,.4*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ha.vertex=!0;v.insert(Ha);Ha.value=f(g.Option23);Ha.style+=b(g.Option23,z);xb=new mxCell("",new mxGeometry(.45*u,.4*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");xb.vertex=
-!0;v.insert(xb);xb.value=f(g.Option33);xb.style+=b(g.Option33,z);Ia=new mxCell("",new mxGeometry(.6*u,.4*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");Ia.vertex=!0;v.insert(Ia);Ia.value=f(g.Option43);Ia.style+=b(g.Option43,z);Ja=new mxCell("",new mxGeometry(0,.6*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ja.vertex=!0;v.insert(Ja);Ja.value=f(g.Option14);Ja.style+=b(g.Option14,z);zb=new mxCell("",new mxGeometry(.45*u,.6*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");zb.vertex=!0;v.insert(zb);
-zb.value=f(g.Option34);zb.style+=b(g.Option34,z);Ka=new mxCell("",new mxGeometry(0,.8*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ka.vertex=!0;v.insert(Ka);Ka.value=f(g.Option15);Ka.style+=b(g.Option15,z);Cb=new mxCell("",new mxGeometry(.45*u,.8*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");Cb.vertex=!0;v.insert(Cb);Cb.value=f(g.Option35);Cb.style+=b(g.Option35,z);Ra=new mxCell("",new mxGeometry(0,.4*t-2,u,4),"shape=line;strokeColor=#888888;");Ra.vertex=!0;v.insert(Ra);Sa=new mxCell("",new mxGeometry(0,
-.6*t-2,u,4),"shape=line;strokeColor=#888888;");Sa.vertex=!0;v.insert(Sa);v.style+="strokeColor=none;";v.style+=a(v.style,g,l,v);break;case "iOSBasicCell":v.value=f(g.text);v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;spacing=0;align=left;spacingLeft="+.75*g.SeparatorInset+";";v.style+=(z?"fontSize=13;":h(g.text)+x(g.text)+w(g.text))+Z(g.text);v.style+=a(v.style,g,l,v,z);switch(g.AccessoryIndicatorType){case "Disclosure":ca=new mxCell("",new mxGeometry(.91*
+"";return d}function c(a,b,c,d,g){if(!Pc(b,a))switch(a){case mxConstants.STYLE_FONTSIZE:return h(c);case mxConstants.STYLE_FONTFAMILY:return n(c);case mxConstants.STYLE_FONTCOLOR:return w(c);case mxConstants.STYLE_FONTSTYLE:return y(c);case mxConstants.STYLE_ALIGN:return C(c);case mxConstants.STYLE_ALIGN+"Global":return lb(mxConstants.STYLE_ALIGN,c.TextAlign,"center");case mxConstants.STYLE_SPACING_LEFT:return E(c);case mxConstants.STYLE_SPACING_RIGHT:return B(c);case mxConstants.STYLE_SPACING_TOP:return F(c);
+case mxConstants.STYLE_SPACING_BOTTOM:return D(c);case mxConstants.STYLE_SPACING:return K(c);case mxConstants.STYLE_VERTICAL_ALIGN:return Z(c);case mxConstants.STYLE_STROKECOLOR:return H(c,d);case mxConstants.STYLE_OPACITY:return S(c,d,g);case mxConstants.STYLE_ROUNDED:return a=!g.edge&&!g.style.includes("rounded")&&null!=c.Rounding&&0<c.Rounding?"rounded=1;absoluteArcSize=1;arcSize="+l(.75*c.Rounding)+";":"",a;case mxConstants.STYLE_ROTATION:return aa(c,d,g);case mxConstants.STYLE_FLIPH:return a=
+c.FlipX?"flipH=1;":"",a;case mxConstants.STYLE_FLIPV:return a=c.FlipY?"flipV=1;":"",a;case mxConstants.STYLE_SHADOW:return ha(c);case mxConstants.STYLE_FILLCOLOR:return X(c,d);case mxConstants.STYLE_DASHED:return tc(c);case mxConstants.STYLE_STROKEWIDTH:return mb(c);case mxConstants.STYLE_IMAGE:return bc(c,d)}return""}function h(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("s"==c.n&&null!=c.v)return"fontSize="+l(.75*c.v)+";";b++}return"fontSize=13;"}function n(a){var b=d(a),c;if(null!=
+b)for(var h=0;h<b.length;h++)if("f"==b[h].n&&b[h].v){c=b[h].v;break}!c&&a.Font&&(c=a.Font);e(c);return Ca}function k(a){return"ext"==a.tp?a.url:"ml"==a.tp?"mailto:"+a.eml:"pg"==a.tp?"data:page/id,"+(LucidImporter.pageIdsMap[a.id]||0):"c"==a.tp?"data:confluence/id,"+a.ccid:null}function w(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("c"==c.n&&null!=c.v)return a=ea(c.v).substring(0,7),mxConstants.STYLE_FONTCOLOR+"="+a+";";b++}return""}function y(a){return A(d(a))}function A(a){if(null!=
+a){var b=0,c=!1;if(null!=a)for(var h=0;!c&&h<a.length;){var g=a[h];"b"==g.n?null!=g.v&&g.v&&(c=!0,b+=1):"fc"==g.n&&"Bold"==g.v&&(c=!0,b+=1);h++}c=!1;if(null!=a)for(h=0;!c&&h<a.length;)g=a[h],"i"==g.n&&null!=g.v&&g.v&&(c=!0,b+=2),h++;c=!1;if(null!=a)for(h=0;!c&&h<a.length;)g=a[h],"u"==g.n&&null!=g.v&&g.v&&(c=!0,b+=4),h++;if(0<b)return"fontStyle="+b+";"}return""}function C(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("a"==c.n&&null!=c.v)return"align="+c.v+";";b++}return""}function E(a){a=
+d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if(null!=c.v&&"il"==c.n)return"spacingLeft="+l(.75*c.v)+";";b++}return""}function B(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("ir"==c.n&&null!=c.v)return"spacingRight="+l(.75*c.v)+";";b++}return""}function F(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("mt"==c.n&&null!=c.v)return"spacingTop="+l(.75*c.v)+";";b++}return""}function D(a){a=d(a);if(null!=a)for(var b=0;b<a.length;){var c=a[b];if("mb"==c.n&&null!=c.v)return"spacingBottom="+
+l(.75*c.v)+";";b++}return""}function K(a){return"number"===typeof a.InsetMargin?"spacing="+Math.max(0,l(.75*a.InsetMargin))+";":""}function Z(a){return null!=a.Text_VAlign&&"string"===typeof a.Text_VAlign?"verticalAlign="+a.Text_VAlign+";":null!=a.Title_VAlign&&"string"===typeof a.Title_VAlign?"verticalAlign="+a.Title_VAlign+";":lb(mxConstants.STYLE_VERTICAL_ALIGN,a.TextVAlign,"middle")}function H(a,b){return 0==a.LineWidth?mxConstants.STYLE_STROKECOLOR+"=none;":lb(mxConstants.STYLE_STROKECOLOR,ka(a.LineColor),
+"#000000")}function Y(a){return null!=a?mxConstants.STYLE_FILLCOLOR+"="+ka(a)+";":""}function O(a){return null!=a?"swimlaneFillColor="+ka(a)+";":""}function S(a,b,c){b="";if("string"===typeof a.LineColor&&(a.LineColor=ea(a.LineColor),7<a.LineColor.length)){var h="0x"+a.LineColor.substring(a.LineColor.length-2,a.LineColor.length);c.style.includes("strokeOpacity")||(b+="strokeOpacity="+Math.round(parseInt(h)/2.55)+";")}"string"===typeof a.FillColor&&(a.FillColor=ea(a.FillColor),7<a.FillColor.length&&
+(a="0x"+a.FillColor.substring(a.FillColor.length-2,a.FillColor.length),c.style.includes("fillOpacity")||(b+="fillOpacity="+Math.round(parseInt(a)/2.55)+";")));return b}function aa(a,b,c){var h="";if(null!=a.Rotation){a=mxUtils.toDegree(parseFloat(a.Rotation));var g=!0;0!=a&&b.Class&&("UMLSwimLaneBlockV2"==b.Class||(0<=b.Class.indexOf("Rotated")||-90==a||270==a)&&(0<=b.Class.indexOf("Pool")||0<=b.Class.indexOf("SwimLane")))?(a+=90,c.geometry.rotate90(),c.geometry.isRotated=!0,g=!1):0<=mxUtils.indexOf(Pd,
+b.Class)?(a-=90,c.geometry.rotate90()):0<=mxUtils.indexOf(Qd,b.Class)&&(a+=180);0!=a&&(h+="rotation="+a+";");g||(h+="horizontal=0;")}return h}function ha(a){return null!=a.Shadow?mxConstants.STYLE_SHADOW+"=1;":""}function ea(a){if(a){if("object"===typeof a)try{a=a.cs[0].c}catch(ja){console.log(ja),a="#ffffff"}"rgb"==a.substring(0,3)?a="#"+a.match(/\d+/g).map(function(a){a=parseInt(a).toString(16);return(1==a.length?"0":"")+a}).join(""):"#"!=a.charAt(0)&&(a="#"+a)}return a}function ka(a){return(a=
+ea(a))?a.substring(0,7):null}function ta(a,b){return(a=ea(a))&&7<a.length?b+"="+Math.round(parseInt("0x"+a.substr(7))/2.55)+";":""}function X(a,b){if(null!=a.FillColor)if("object"===typeof a.FillColor){if(null!=a.FillColor.cs&&1<a.FillColor.cs.length)return lb(mxConstants.STYLE_FILLCOLOR,ka(a.FillColor.cs[0].c))+lb(mxConstants.STYLE_GRADIENTCOLOR,ka(a.FillColor.cs[1].c))}else return"string"===typeof a.FillColor?lb(mxConstants.STYLE_FILLCOLOR,ka(a.FillColor),"#FFFFFF"):lb(mxConstants.STYLE_FILLCOLOR,
+"none");return""}function tc(a){return"dotted"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=1 4;":"dashdot"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=10 5 1 5;":"dashdotdot"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=10 5 1 5 1 5;":"dotdotdot"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=1 2;":"longdash"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=16 6;":"dashlongdash"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=10 6 16 6;":"dashed24"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=3 8;":
+"dashed32"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=6 5;":"dashed44"==a.StrokeStyle?"dashed=1;fixDash=1;dashPattern=8 8;":null!=a.StrokeStyle&&"dashed"==a.StrokeStyle.substring(0,6)?"dashed=1;fixDash=1;":""}function mb(a){return null!=a.LineWidth?lb(mxConstants.STYLE_STROKEWIDTH,l(.75*parseFloat(a.LineWidth)),"1"):""}function bc(a,b,c){var h="";a.FillColor&&a.FillColor.url?(c=a.FillColor.url,"fill"==a.FillColor.pos&&(h="imageAspect=0;")):"ImageSearchBlock2"==b.Class?c=a.URL:"UserImage2Block"==
+b.Class&&null!=a.ImageFillProps&&null!=a.ImageFillProps.url&&(c=a.ImageFillProps.url);if(null!=c){if(null!=LucidImporter.imgSrcRepl)for(a=0;a<LucidImporter.imgSrcRepl.length;a++)b=LucidImporter.imgSrcRepl[a],c=c.replace(b.searchVal,b.replVal);return"image="+c+";"+h}return""}function Ib(a,b,c){null!=b.Link&&0<b.Link.length&&c.setAttributeForCell(a,"link",k(b.Link[0]));var h=[],g=c.convertValueToString(a),n=!1;if(null!=g){for(var d=0;match=Rd.exec(g);){var e=match[0],n=!0;if(2<e.length){var w=e.substring(2,
+e.length-2);"documentName"==w?w="filename":"pageName"==w?w="page":"totalPages"==w?w="pagecount":"page"==w?w="pagenumber":"date:"==w.substring(0,5)?w="date{"+w.substring(5).replace(/MMMM/g,"mmmm").replace(/MM/g,"mm").replace(/YYYY/g,"yyyy")+"}":"lastModifiedTime"==w.substring(0,16)?w=w.replace(/MMMM/g,"mmmm").replace(/MM/g,"mm").replace(/YYYY/g,"yyyy"):"i18nDate:"==w.substring(0,9)&&(w="date{"+w.substring(9).replace(/i18nShort/g,"shortDate").replace(/i18nMediumWithTime/g,"mmm d, yyyy hh:MM TT")+"}");
+w="%"+w+"%";h.push(g.substring(d,match.index)+(null!=w?w:e));d=match.index+e.length}}n&&(h.push(g.substring(d)),c.setAttributeForCell(a,"label",h.join("")),c.setAttributeForCell(a,"placeholders","1"))}for(var y in b)if(b.hasOwnProperty(y)&&y.toString().startsWith("ShapeData_"))try{var f=b[y],p=mxUtils.trim(f.Label).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,"");cc(a,p,f.Value,c)}catch(Md){window.console&&console.log("Ignored "+y+":",Md)}}function cc(a,b,c,h){for(var g=b,n=0;null!=
+h.getAttributeForCell(a,g);)n++,g=b+"_"+n;h.setAttributeForCell(a,g,null!=c?c:"")}function vd(c,h,n,d,g,e){var k=p(h);if(null!=k){var w=uc[k.Class];null!=w?c.style+=w+";":c.edge||(console.log("No mapping found for: "+k.Class),LucidImporter.hasUnknownShapes=!0);w=null!=k.Properties?k.Properties:k;if(null!=w&&(c.value=e?"":f(w),c.style+=a(c.style,w,k,c,z),c.style.includes("strokeColor")||(c.style+=H(w,k)),Ib(c,w,n),w.Title&&w.Title.t&&w.Text&&w.Text.t&&"ExtShape"!=k.Class.substr(0,8)&&(e=c.geometry,
+e=new mxCell(f(w.Title),new mxGeometry(0,e.height,e.width,10),"strokeColor=none;fillColor=none;"),e.vertex=!0,c.insert(e),e.style+=b(w.Title,z)),c.edge)){c.style=null!=w.Rounding&&"diagonal"!=w.Shape?c.style+("rounded=1;arcSize="+w.Rounding+";"):c.style+"rounded=0;";e=!1;if("diagonal"!=w.Shape)if(null!=w.ElbowPoints&&0<w.ElbowPoints.length)for(c.geometry.points=[],k=0;k<w.ElbowPoints.length;k++)c.geometry.points.push(new mxPoint(Math.round(.75*w.ElbowPoints[k].x+Rb),Math.round(.75*w.ElbowPoints[k].y+
+Sb)));else"elbow"==w.Shape?c.style+="edgeStyle=orthogonalEdgeStyle;":null!=w.Endpoint1.Block&&null!=w.Endpoint2.Block&&(c.style+="edgeStyle=orthogonalEdgeStyle;","curve"==w.Shape&&(c.style+="curved=1;",e=!0));if(w.LineJumps||LucidImporter.globalProps.LineJumps)c.style+="jumpStyle=arc;";null!=w.Endpoint1.Style&&(k=Qc[w.Endpoint1.Style],null!=k?(k=k.replace(/xyz/g,"start"),c.style+="startArrow="+k+";"):(LucidImporter.hasUnknownShapes=!0,window.console&&console.log("Unknown endpoint style: "+w.Endpoint1.Style)));
+null!=w.Endpoint2.Style&&(k=Qc[w.Endpoint2.Style],null!=k?(k=k.replace(/xyz/g,"end"),c.style+="endArrow="+k+";"):(LucidImporter.hasUnknownShapes=!0,window.console&&console.log("Unknown endpoint style: "+w.Endpoint2.Style)));e=null!=w.ElbowControlPoints&&0<w.ElbowControlPoints.length?w.ElbowControlPoints:e&&null!=w.BezierJoints&&0<w.BezierJoints.length?w.BezierJoints:w.Joints;if(null!=e)for(c.geometry.points=[],k=0;k<e.length;k++){var y=e[k].p?e[k].p:e[k];c.geometry.points.push(new mxPoint(Math.round(.75*
+y.x+Rb),Math.round(.75*y.y+Sb)))}e=!1;if((null==c.geometry.points||0==c.geometry.points.length)&&null!=w.Endpoint1.Block&&w.Endpoint1.Block==w.Endpoint2.Block&&null!=d&&null!=g){e=new mxPoint(Math.round(d.geometry.x+d.geometry.width*w.Endpoint1.LinkX),Math.round(d.geometry.y+d.geometry.height*w.Endpoint1.LinkY));k=new mxPoint(Math.round(g.geometry.x+g.geometry.width*w.Endpoint2.LinkX),Math.round(g.geometry.y+g.geometry.height*w.Endpoint2.LinkY));Rb=e.x==k.x?Math.abs(e.x-d.geometry.x)<d.geometry.width/
+2?-20:20:0;Sb=e.y==k.y?Math.abs(e.y-d.geometry.y)<d.geometry.height/2?-20:20:0;var r=new mxPoint(e.x+Rb,e.y+Sb),A=new mxPoint(k.x+Rb,k.y+Sb);r.generated=!0;A.generated=!0;c.geometry.points=[r,A];e=e.x==k.x}null!=d&&d.geometry.isRotated||(r=Rc(c,w.Endpoint1,!0,e,null,d));null!=d&&null!=r&&(null==d.stylePoints&&(d.stylePoints=[]),d.stylePoints.push(r),LucidImporter.stylePointsSet.add(d));null!=g&&g.geometry.isRotated||(A=Rc(c,w.Endpoint2,!1,e,null,g));null!=g&&null!=A&&(null==g.stylePoints&&(g.stylePoints=
+[]),g.stylePoints.push(A),LucidImporter.stylePointsSet.add(g))}}null!=h.id&&cc(c,"lucidchartObjectId",h.id,n)}function Ua(b,c){var h=p(b),n=h.Properties,g=n.BoundingBox;null==b.Class||"AWS"!==b.Class.substring(0,3)&&"Amazon"!==b.Class.substring(0,6)||b.Class.includes("AWS19")||(g.h-=20);v=new mxCell("",new mxGeometry(Math.round(.75*g.x+Rb),Math.round(.75*g.y+Sb),Math.round(.75*g.w),Math.round(.75*g.h)),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;");v.vertex=!0;vd(v,b,c);v.zOrder=n.ZOrder;
+null!=v&&0<=v.style.indexOf(";grIcon=")&&(g=new mxCell("",new mxGeometry(v.geometry.x,v.geometry.y,v.geometry.width,v.geometry.height),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;"),g.vertex=!0,g.style+=a(g.style,n,h,g),v.geometry.x=0,v.geometry.y=0,v.style+="part=1;",g.insert(v),v=g);ve(v,n);n.Hidden&&(v.visible=!1);return v}function wd(a,b,c,h){var n=new mxCell("",new mxGeometry(0,0,100,100),"html=1;jettySize=18;");n.geometry.relative=!0;n.edge=!0;vd(n,a,b,c,h,!0);b=p(a).Properties;var d=
+null!=b?b.TextAreas:a.TextAreas;if(null!=d){for(var e=0;void 0!==d["t"+e];){var k=d["t"+e];null!=k&&(n=dc(k,n,a,c,h));e++}for(e=0;void 0!==d["m"+e]||1>e;)k=d["m"+e],null!=k&&(n=dc(k,n,a,c,h)),e++;null!=d.Text&&(n=dc(d.Text,n,a,c,h));d=null!=b?b.TextAreas:a.TextAreas;null!=d.Message&&(n=dc(d.Message,n,a,c,h))}a.Hidden&&(n.visible=!1);return n}function dc(a,b,c,h,g){var d=2*(parseFloat(a.Location)-.5);isNaN(d)&&null!=a.Text&&null!=a.Text.Location&&(d=2*(parseFloat(a.Text.Location)-.5));var e=f(a),k=
+mxCell,d=new mxGeometry(isNaN(d)?0:d,0,0,0),w=ec,y;y=c;if(z)y=Ca;else{var p="13",r="";if(null!=a&&null!=a.Value&&null!=a.Value.m){for(var r=A(a.Value.m),bb=0;bb<a.Value.m.length;bb++)if("s"==a.Value.m[bb].n)p=l(.75*parseFloat(a.Value.m[bb].v));else if("c"==a.Value.m[bb].n){var E=ea(a.Value.m[bb].v);null!=E&&(E=E.substring(0,7));r+="fontColor="+E+";"}r+=n(y);Ca=""}y=r+";fontSize="+p+";"}k=new k(e,d,w+y);k.geometry.relative=!0;k.vertex=!0;if(a.Side)try{c.Action&&c.Action.Properties&&(c=c.Action.Properties);
+var C,B;if(null!=h&&null!=g){var H=h.geometry,F=g.geometry;C=Math.abs(H.x+H.width*c.Endpoint1.LinkX-(F.x+F.width*c.Endpoint2.LinkX));B=Math.abs(H.y+H.height*c.Endpoint1.LinkY-(F.y+F.height*c.Endpoint2.LinkY))}else C=Math.abs(c.Endpoint1.x-c.Endpoint2.x),B=Math.abs(c.Endpoint1.y-c.Endpoint2.y);var K=mxUtils.getSizeForString(e);k.geometry.offset=0==C||C<B?new mxPoint(-a.Side*(K.width/2+5+C),0):new mxPoint(0,Math.sign(c.Endpoint2.x-c.Endpoint1.x)*a.Side*(K.height/2+5+B))}catch(Mc){console.log(Mc)}b.insert(k);
+return b}function lb(a,b,c,h){null!=b&&null!=h&&(b=h(b));return null!=b&&b!=c?a+"="+b+";":""}function Rc(a,b,c,h,n,d){if(null!=b&&null!=b.LinkX&&null!=b.LinkY&&(b.LinkX=Math.round(1E3*b.LinkX)/1E3,b.LinkY=Math.round(1E3*b.LinkY)/1E3,d.style&&-1<d.style.indexOf("flipH=1")&&(b.LinkX=1-b.LinkX),d.style&&-1<d.style.indexOf("flipV=1")&&(b.LinkY=1-b.LinkY),a.style+=(h?"":(c?"exitX":"entryX")+"="+b.LinkX+";")+(n?"":(c?"exitY":"entryY")+"="+b.LinkY+";")+(c?"exitPerimeter":"entryPerimeter")+"=0;",b.Inside))return"["+
+b.LinkX+","+b.LinkY+",0]"}function Sc(a,b,c,h){try{var n=function(a,b){if(null!=a)if(Array.isArray(a))for(var c=0;c<a.length;c++)n(a[c].p?a[c].p:a[c],b);else c=b?.75:1,e=Math.min(e,a.x*c),k=Math.min(k,a.y*c),w=Math.max(w,(a.x+(a.width?a.width:0))*c),y=Math.max(y,(a.y+(a.height?a.height:0))*c)};null!=a.Action&&null!=a.Action.Properties&&(a=a.Action.Properties);var d=new mxCell("",new mxGeometry,"group;dropTarget=0;");d.vertex=!0;d.zOrder=a.ZOrder;var e=Infinity,k=Infinity,w=-Infinity,y=-Infinity,f=
+a.Members,p=[],r;for(r in f){var A=b[r];null!=A?p.push(A):null!=h[r]&&(p.push(h[r]),c[r]=d)}p.sort(function(a,b){var c=a.zOrder,h=b.zOrder;return null!=c&&null!=h?c>h?1:c<h?-1:0:0});for(c=b=0;c<p.length;c++)if(A=p[c],A.vertex)n(A.geometry),A.parent=d,d.insert(A,b++);else{var l=null!=A.Action&&A.Action.Properties?A.Action.Properties:A;n(l.Endpoint1,!0);n(l.Endpoint2,!0);n(l.ElbowPoints,!0);n(l.ElbowControlPoints,!0);n(l.BezierJoints,!0);n(l.Joints,!0)}d.geometry.x=e;d.geometry.y=k;d.geometry.width=
+w-e;d.geometry.height=y-k;if(null!=d.children)for(c=0;c<d.children.length;c++){var bb=d.children[c].geometry;bb.x-=e;bb.y-=k}a.IsState?d.lucidLayerInfo={name:a.Name,visible:!a.Hidden,locked:a.Restrictions.b&&a.Restrictions.p&&a.Restrictions.c}:a.Hidden&&(d.visible=!1);return d}catch(af){console.log(af)}}function Sd(a,b,c){LucidImporter.hasMath=!1;LucidImporter.stylePointsSet=new Set;a.getModel().beginUpdate();try{var h=function(b,c){function h(a,b,c){null==a||a.generated||(a.x-=b,a.y-=c)}var g=null!=
+c.Endpoint1.Block?d[c.Endpoint1.Block]:null,k=null!=c.Endpoint2.Block?d[c.Endpoint2.Block]:null,w=wd(b,a,g,k);if(c.Endpoint1&&c.Endpoint1.Line||c.Endpoint2&&c.Endpoint2.Line)console.log("Edge to Edge case"),LucidImporter.hasUnknownShapes=!0;null==g&&null!=c.Endpoint1&&w.geometry.setTerminalPoint(new mxPoint(Math.round(.75*c.Endpoint1.x),Math.round(.75*c.Endpoint1.y)),!0);null==k&&null!=c.Endpoint2&&w.geometry.setTerminalPoint(new mxPoint(Math.round(.75*c.Endpoint2.x),Math.round(.75*c.Endpoint2.y)),
+!1);var y=e[b.id];if(null!=y){for(var f=w.geometry,p=0,t=0,u=y;null!=u&&null!=u.geometry;)p+=u.geometry.x,t+=u.geometry.y,u=u.parent;h(f.sourcePoint,p,t);h(f.targetPoint,p,t);h(f.offset,p,t);f=f.points;if(null!=f)for(u=0;u<f.length;u++)h(f[u],p,t)}n.push(a.addCell(w,y,null,g,k))},n=[],d={},e={},k={},w=[];null!=b.Lines&&(k=b.Lines);if(null!=b.Blocks){Object.assign(k,b.Blocks);for(var y in b.Blocks){var f=b.Blocks[y];f.id=y;var r=!1;null!=uc[f.Class]&&"mxCompositeShape"==uc[f.Class]&&(d[f.id]=Tc(f,
+n,a),w.push(f),r=!0);r||(d[f.id]=Ua(f,a),w.push(f))}if(null!=b.Generators)for(y in b.Generators)"OrgChart2018"==b.Generators[y].ClassName?(LucidImporter.hasUnknownShapes=!0,Uc(y,b.Generators[y],b.Data,a,d)):LucidImporter.hasUnknownShapes=!0}else{for(var A=0;A<b.Objects.length;A++)f=b.Objects[A],k[f.id]=f,null!=f.Action&&"mxCompositeShape"==uc[f.Action.Class]?d[f.id]=Tc(f,n,a):f.IsBlock&&null!=f.Action&&null!=f.Action.Properties?d[f.id]=Ua(f,a):f.IsGenerator&&f.GeneratorData&&f.GeneratorData.p&&("OrgChart2018"==
+f.GeneratorData.p.ClassName?(LucidImporter.hasUnknownShapes=!0,Uc(f.GeneratorData.id,f.GeneratorData.p,f.GeneratorData.gs,a,d)):LucidImporter.hasUnknownShapes=!0),w.push(f);for(A=0;A<b.Objects.length;A++)if(f=b.Objects[A],f.IsGroup){var l=Sc(f,d,e,k);l&&(d[f.id]=l,w.push(f))}}if(null!=b.Groups)try{for(y in b.Groups)if(f=b.Groups[y],f.id=y,l=Sc(f,d,e,k))d[f.id]=l,w.push(f)}catch(ac){console.log(ac)}if(null!=b.Lines)for(y in b.Lines)f=b.Lines[y],f.id=y,w.push(f);w.sort(function(a,b){a=p(a);b=p(b);var c=
+null!=a.Properties?a.Properties.ZOrder:a.ZOrder,h=null!=b.Properties?b.Properties.ZOrder:b.ZOrder;return null!=c&&null!=h?c>h?1:c<h?-1:0:0});for(A=0;A<w.length;A++){var f=w[A],C=d[f.id];if(null!=C){if(null==C.parent)if(C.lucidLayerInfo){var E=new mxCell;a.addCell(E,a.model.root);E.setVisible(C.lucidLayerInfo.visible);C.lucidLayerInfo.locked&&E.setStyle("locked=1;");E.setValue(C.lucidLayerInfo.name);delete C.lucidLayerInfo;a.addCell(C,E)}else n.push(a.addCell(C))}else f.IsLine&&null!=f.Action&&null!=
+f.Action.Properties?h(f,f.Action.Properties):null!=f.StrokeStyle&&h(f,f)}LucidImporter.stylePointsSet.forEach(function(a){a.style="points=["+a.stylePoints.join(",")+"];"+a.style;delete a.stylePoints});try{var B=a.getModel().cells,H;for(H in B)delete B[H].zOrder}catch(ac){}c||a.setSelectionCells(n)}finally{a.getModel().endUpdate()}}function Td(){var a=new Graph;a.setExtendParents(!1);a.setExtendParentsOnAdd(!1);a.setConstrainChildren(!1);a.setHtmlLabels(!0);a.getModel().maintainEdgeParent=!1;return a}
+function vc(a,b,c,h,n,d,e,k){this.nurbsValues=[1,3,0,0,100*(a+c),100-100*(1-(b+h)),0,1,100*(n+e),100-100*(1-(d+k)),0,1]}function we(a,b){try{for(var c=[],h=b.BoundingBox.w,n=b.BoundingBox.h,d=0;d<b.Shapes.length;d++){var e=b.Shapes[d],k=e.FillColor,w=e.StrokeColor,y=e.LineWidth,f=e.Points,p=e.Lines,r=['<shape strokewidth="inherit"><foreground>'];r.push("<path>");for(var A=null,l=0;l<p.length;l++){var C=p[l];if(A!=C.p1){var E=f[C.p1].x,B=f[C.p1].y,E=100*E/h,B=100*B/n,E=Math.round(100*E)/100,B=Math.round(100*
+B)/100;r.push('<move x="'+E+'" y="'+B+'"/>')}if(null!=C.n1){var H;var z=f[C.p2].x,F=f[C.p2].y,K=h,m=n,O=new vc(f[C.p1].x,f[C.p1].y,C.n1.x,C.n1.y,f[C.p2].x,f[C.p2].y,C.n2.x,C.n2.y);if(2<=O.getSize()){O.getX(0);O.getY(0);O.getX(1);O.getY(1);for(var z=Math.round(100*z/K*100)/100,F=Math.round(100*F/m*100)/100,K=[],m=[],Y=[],S=O.getSize(),D=0;D<S-1;D+=3)K.push(new mxPoint(O.getX(D),O.getY(D))),m.push(new mxPoint(O.getX(D+1),O.getY(D+1))),D<S-2?Y.push(new mxPoint(O.getX(D+2),O.getY(D+2))):Y.push(new mxPoint(z,
+F));for(var ga="",D=0;D<K.length;D++)ga+='<curve x1="'+K[D].x+'" y1="'+K[D].y+'" x2="'+m[D].x+'" y2="'+m[D].y+'" x3="'+Y[D].x+'" y3="'+Y[D].y+'"/>';H=ga}else H=void 0;r.push(H)}else E=f[C.p2].x,B=f[C.p2].y,E=100*E/h,B=100*B/n,E=Math.round(100*E)/100,B=Math.round(100*B)/100,r.push('<line x="'+E+'" y="'+B+'"/>');A=C.p2}r.push("</path>");r.push("<fillstroke/>");r.push("</foreground></shape>");c.push({shapeStencil:"stencil("+Graph.compress(r.join(""))+")",FillColor:k,LineColor:w,LineWidth:y})}LucidImporter.stencilsMap[a]=
+{text:b.Text,w:h,h:n,stencils:c}}catch(Od){console.log("Stencil parsing error:",Od)}}function Eb(a,b,c,h,n,d,e,k){a=new mxCell("",new mxGeometry(a,b,0,0),"strokeColor=none;fillColor=none;");a.vertex=!0;e.insert(a);d=[a];c=c.clone();k.insertEdge(c,!1);a.insertEdge(c,!0);d.push(c);h.push(n.addCell(c,null,null,null,null))}function xa(a,b,c,h,n,d,e,k,w){a=new mxCell("",new mxGeometry(a,b,0,0),"strokeColor=none;fillColor=none;");a.vertex=!0;w.insert(a);c=new mxCell("",new mxGeometry(c,h,0,0),"strokeColor=none;fillColor=none;");
+c.vertex=!0;w.insert(c);k=[c];n=n.clone();a.insertEdge(n,!0);c.insertEdge(n,!1);k.push(n);d.push(e.addCell(n,null,null,null,null))}function ma(b,c,h,n,g,d){n.style="rounded=1;absoluteArcSize=1;fillColor=#ffffff;arcSize=2;strokeColor=#dddddd;";n.style+=a(n.style,g,d,n);c=f(g);n.vertex=!0;b=new mxCell(c,new mxGeometry(0,.5,24,24),"dashed=0;connectable=0;html=1;strokeColor=none;"+mxConstants.STYLE_SHAPE+"=mxgraph.gcp2."+b+";part=1;shadow=0;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;");
+b.style+=a(b.style,g,d,b,z);b.geometry.relative=!0;b.geometry.offset=new mxPoint(5,-12);b.vertex=!0;n.insert(b)}function pa(b,c,h,n,g,d,e,k){g="transparent"!=b?mxConstants.STYLE_SHAPE+"=mxgraph.gcp2.":mxConstants.STYLE_SHAPE+"=";d.style="rounded=1;absoluteArcSize=1;arcSize=2;verticalAlign=bottom;fillColor=#ffffff;strokeColor=#dddddd;whiteSpace=wrap;";d.style+=a(d.style,e,k,d);d.value=f(e);d.vertex=!0;b=new mxCell(null,new mxGeometry(.5,0,.7*n*c,.7*n*h),g+b+";part=1;dashed=0;connectable=0;html=1;strokeColor=none;shadow=0;");
+b.geometry.relative=!0;b.geometry.offset=new mxPoint(-c*n*.35,10+(1-h)*n*.35);b.vertex=!0;b.style+=a(b.style,e,k,b,z);d.insert(b)}function Pc(a,b){return null==a||null==b||!a.includes(";"+b+"=")&&a.substring(0,b.length+1)!=b+"="?!1:!0}function Ud(a,b){function c(a){a=Math.round(parseInt("0x"+a)*b).toString(16);return 1==a.length?"0"+a:a}return"#"+c(a.substr(1,2))+c(a.substr(3,2))+c(a.substr(5,2))}function Tc(c,d,e){var k=p(c),g=k.Properties,r=g.BoundingBox,u=Math.round(.75*r.w),t=Math.round(.75*r.h),
+A=Math.round(.75*r.x+Rb),l=Math.round(.75*r.y+Sb);null==c.Class||"GCPInputDatabase"!==c.Class&&"GCPInputRecord"!==c.Class&&"GCPInputPayment"!==c.Class&&"GCPInputGateway"!==c.Class&&"GCPInputLocalCompute"!==c.Class&&"GCPInputBeacon"!==c.Class&&"GCPInputStorage"!==c.Class&&"GCPInputList"!==c.Class&&"GCPInputStream"!==c.Class&&"GCPInputMobileDevices"!==c.Class&&"GCPInputCircuitBoard"!==c.Class&&"GCPInputLive"!==c.Class&&"GCPInputUsers"!==c.Class&&"GCPInputLaptop"!==c.Class&&"GCPInputApplication"!==c.Class&&
+"GCPInputLightbulb"!==c.Class&&"GCPInputGame"!==c.Class&&"GCPInputDesktop"!==c.Class&&"GCPInputDesktopAndMobile"!==c.Class&&"GCPInputWebcam"!==c.Class&&"GCPInputSpeaker"!==c.Class&&"GCPInputRetail"!==c.Class&&"GCPInputReport"!==c.Class&&"GCPInputPhone"!==c.Class&&"GCPInputBlank"!==c.Class||(t+=20);v=new mxCell("",new mxGeometry(A,l,u,t),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;");v.vertex=!0;v.zOrder=g.ZOrder;var ea=null!=c.Class?c.Class:null!=k?k.Class:null;switch(ea){case "BraceNoteBlock":case "UI2BraceNoteBlock":var cc=
+!1;null!=g.BraceDirection&&"Right"==g.BraceDirection&&(cc=!0);var ga=null,ja=null;cc?(ga=new mxCell("",new mxGeometry(u-.125*t,0,.125*t,t),"shape=curlyBracket;rounded=1;"),ja=new mxCell("",new mxGeometry(0,0,u-.125*t,t),"strokeColor=none;fillColor=none;")):(ga=new mxCell("",new mxGeometry(0,0,.125*t,t),"shape=curlyBracket;rounded=1;flipH=1;"),ja=new mxCell("",new mxGeometry(.125*t,0,u-.125*t,t),"strokeColor=none;fillColor=none;"));v.style="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,k,
+v);ga.vertex=!0;v.insert(ga);ga.style+=a(ga.style,g,k,ga);ja.vertex=!0;ja.value=f(g);v.insert(ja);ja.style+=a(ja.style,g,k,ja,z);break;case "BPMNAdvancedPoolBlockRotated":case "UMLMultiLanePoolRotatedBlock":case "UMLMultiLanePoolBlock":case "BPMNAdvancedPoolBlock":case "AdvancedSwimLaneBlockRotated":case "AdvancedSwimLaneBlock":case "UMLSwimLaneBlockV2":var la="MainText",Ua=null,wd="HeaderFill_",dc="BodyFill_",ac=25,Mc=25,Oc=0;if(null!=g.Lanes)Oc=g.Lanes.length;else if(null!=g.PrimaryLane){for(var re=
+function(a){if(a)32>a?a=32:208<a&&(a=208);else return 0;return.75*a},Oc=g.PrimaryLane.length,m=t=u=0;m<Oc;m++)u+=g.PrimaryLane[m];for(m=0;m<g.SecondaryLane.length;m++)t+=g.SecondaryLane[m];ac=re(g.PrimaryPoolTitleHeight);Mc=re(g.PrimaryLaneTitleHeight);u*=.75;t=.75*t+ac+Mc;v.geometry.width=u;v.geometry.height=t;la="poolPrimaryTitleKey";wd="PrimaryLaneHeaderFill_";dc="CellFill_0,";Ua=g.PrimaryLaneTextAreaIds;if(null==Ua)for(Ua=[],m=0;m<Oc;m++)Ua.push("Primary_"+m)}if(0==g.IsPrimaryLaneVertical){g.Rotation=
+-1.5707963267948966;var te=v.geometry.x,bf=v.geometry.y}var Nd=0!=g.Rotation,ue=0<ea.indexOf("Pool"),uc=0==ea.indexOf("BPMN"),Od=null!=g[la];v.style=(ue?"swimlane;startSize="+ac+";":"fillColor=none;strokeColor=none;pointerEvents=0;fontStyle=0;")+"html=1;whiteSpace=wrap;container=1;collapsible=0;childLayout=stackLayout;resizeParent=1;dropTarget=0;"+(Nd?"horizontalStack=0;":"");v.style+=a(v.style,g,k,v);Od&&(v.value=f(g[la]),v.style+=(z?"overflow=block;blockSpacing=1;fontSize=13;"+Ca:h(g[la])+w(g[la])+
+n(g[la])+y(g[la])+C(g[la],v)+E(g[la])+B(g[la])+F(g[la])+D(g[la]))+K(g[la])+Z(g[la]));for(var qe=0,Hb=[],vc="swimlane;html=1;whiteSpace=wrap;container=1;connectable=0;collapsible=0;fontStyle=0;startSize="+Mc+";dropTarget=0;rounded=0;"+(Nd?"horizontal=0;":"")+(uc?"swimlaneLine=0;fillColor=none;":""),P=g.Rotation=0;P<Oc;P++){if(null==Ua)var td=parseFloat(g.Lanes[P].p),m=parseInt(g.Lanes[P].tid)||P,cb="Lane_"+m;else td=.75*g.PrimaryLane[P]/u,m=P,cb=Ua[P];var se=u*qe,ud=ue?ac:0;Hb.push(new mxCell("",Nd?
+new mxGeometry(ud,se,t-ud,u*td):new mxGeometry(se,ud,u*td,t-ud),vc));Hb[P].vertex=!0;v.insert(Hb[P]);Hb[P].value=f(g[cb]);Hb[P].style+=a(Hb[P].style,g,k,Hb[P],z)+(z?"fontSize=13;":h(g[cb])+w(g[cb])+y(g[cb])+C(g[cb],Hb[P])+E(g[cb])+B(g[cb])+F(g[cb])+D(g[cb]))+K(g[cb])+Z(g[cb])+Y(g[wd+m])+O(g[dc+m]);qe+=td}null!=te&&(v.geometry.x=te,v.geometry.y=bf);break;case "UMLMultidimensionalSwimlane":var Zb=0,$b=0,Nc=null,Vd=null;if(null!=g.Rows&&null!=g.Columns)var Zb=g.Rows.length,$b=g.Columns.length,fc=.75*
+g.TitleHeight||25,Vc=.75*g.TitleWidth||25;else if(null!=g.PrimaryLane&&null!=g.SecondaryLane){Zb=g.SecondaryLane.length;$b=g.PrimaryLane.length;Vc=.75*g.SecondaryLaneTitleHeight||25;fc=.75*g.PrimaryLaneTitleHeight||25;for(m=t=u=0;m<Zb;m++)t+=g.SecondaryLane[m];for(m=0;m<$b;m++)u+=g.PrimaryLane[m];u=.75*u+Vc;t=.75*t+fc;v.geometry.width=u;v.geometry.height=t;Nc=g.SecondaryLaneTextAreaIds;Vd=g.PrimaryLaneTextAreaIds}v.style="group;";var Wd=new mxCell("",new mxGeometry(0,fc,u,t-fc),"fillColor=none;strokeColor=none;html=1;whiteSpace=wrap;container=1;collapsible=0;childLayout=stackLayout;resizeParent=1;dropTarget=0;horizontalStack=0;");
+Wd.vertex=!0;var Wc=new mxCell("",new mxGeometry(Vc,0,u-Vc,t),"fillColor=none;strokeColor=none;html=1;whiteSpace=wrap;container=1;collapsible=0;childLayout=stackLayout;resizeParent=1;dropTarget=0;");Wc.vertex=!0;v.insert(Wd);v.insert(Wc);for(var l=0,cf="swimlane;html=1;whiteSpace=wrap;container=1;connectable=0;collapsible=0;dropTarget=0;horizontal=0;fontStyle=0;startSize="+Vc+";",P=0;P<Zb;P++){if(null==Nc)var Xd=.75*parseInt(g.Rows[P].height),m=parseInt(g.Rows[P].id)||P,eb="Row_"+m;else Xd=.75*g.SecondaryLane[P],
+eb=Nc[P];var Jb=new mxCell("",new mxGeometry(0,l,u,Xd),cf),l=l+Xd;Jb.vertex=!0;Wd.insert(Jb);Jb.value=f(g[eb]);Jb.style+=a(Jb.style,g,k,Jb,z)+(z?"fontSize=13;":h(g[eb])+w(g[eb])+y(g[eb])+C(g[eb],Jb)+E(g[eb])+B(g[eb])+F(g[eb])+D(g[eb]))+K(g[eb])+Z(g[eb])}for(var Pc="swimlane;html=1;whiteSpace=wrap;container=1;connectable=0;collapsible=0;dropTarget=0;fontStyle=0;startSize="+fc+";",P=A=0;P<$b;P++){if(null==Vd)var wc=.75*parseInt(g.Columns[P].width),m=parseInt(g.Columns[P].id)||P,fb="Column_"+m;else wc=
+.75*g.PrimaryLane[P],fb=Vd[P];var Tb=new mxCell("",new mxGeometry(A,0,wc,t),Pc),A=A+wc;Tb.vertex=!0;Wc.insert(Tb);Tb.value=f(g[fb]);Tb.style+=a(Tb.style,g,k,Tb,z)+(z?"fontSize=13;":h(g[fb])+w(g[fb])+y(g[fb])+C(g[fb],Tb)+E(g[fb])+B(g[fb])+F(g[fb])+D(g[fb]))+K(g[fb])+Z(g[fb])}break;case "UMLStateBlock":if(0==g.Composite)v.style="rounded=1;arcSize=20",v.value=f(g.State,!0),v.style+=a(v.style,g,k,v,z);else{v.style="swimlane;startSize=25;html=1;whiteSpace=wrap;container=1;collapsible=0;childLayout=stackLayout;resizeParent=1;dropTarget=0;rounded=1;arcSize=20;fontStyle=0;";
+v.value=f(g.State,!0);v.style+=a(v.style,g,k,v,z);v.style+=X(g,k).replace("fillColor","swimlaneFillColor");var Oa=new mxCell("",new mxGeometry(0,25,u,t-25),"rounded=1;arcSize=20;strokeColor=none;fillColor=none");Oa.value=f(g.Action,!0);Oa.style+=a(Oa.style,g,k,Oa,z);Oa.vertex=!0;v.insert(Oa)}break;case "GSDFDProcessBlock":var ec=Math.round(.75*g.nameHeight);v.style="shape=swimlane;html=1;rounded=1;arcSize=10;collapsible=0;fontStyle=0;startSize="+ec;v.value=f(g.Number,!0);v.style+=a(v.style,g,k,v,
+z);v.style+=X(g,k).replace("fillColor","swimlaneFillColor");Oa=new mxCell("",new mxGeometry(0,ec,u,t-ec),"rounded=1;arcSize=10;strokeColor=none;fillColor=none");Oa.value=f(g.Text,!0);Oa.style+=a(Oa.style,g,k,Oa,z);Oa.vertex=!0;v.insert(Oa);break;case "AndroidDevice":if(null!=g.AndroidDeviceName){var Da=aa(g,k,v);v.style="fillColor=#000000;strokeColor=#000000;";var Kb=null,xc=null,yc=null;if("Tablet"==g.AndroidDeviceName||"Mini Tablet"==g.AndroidDeviceName||"custom"==g.AndroidDeviceName&&"Tablet"==
+g.CustomDeviceType)v.style+="shape=mxgraph.android.tab2;",Kb=new mxCell("",new mxGeometry(.112,.077,.77*u,.85*t),Da),g.KeyboardShown&&(xc=new mxCell("",new mxGeometry(.112,.727,.77*u,.2*t),"shape=mxgraph.android.keyboard;"+Da)),g.FullScreen||(yc=new mxCell("",new mxGeometry(.112,.077,.77*u,.03*t),"shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize="+.015*t+";"+Da));else if("Large Phone"==g.AndroidDeviceName||"Phone"==g.AndroidDeviceName||"custom"==g.AndroidDeviceName&&
+"Phone"==g.CustomDeviceType)v.style+="shape=mxgraph.android.phone2;",Kb=new mxCell("",new mxGeometry(.04,.092,.92*u,.816*t),Da),g.KeyboardShown&&(xc=new mxCell("",new mxGeometry(.04,.708,.92*u,.2*t),"shape=mxgraph.android.keyboard;"+Da)),g.FullScreen||(yc=new mxCell("",new mxGeometry(.04,.092,.92*u,.03*t),"shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize="+.015*t+";"+Da));Kb.vertex=!0;Kb.geometry.relative=!0;v.insert(Kb);"Dark"==g.Scheme?Kb.style+="fillColor=#111111;":
+"Light"==g.Scheme&&(Kb.style+="fillColor=#ffffff;");null!=xc&&(xc.vertex=!0,xc.geometry.relative=!0,v.insert(xc));null!=yc&&(yc.vertex=!0,yc.geometry.relative=!0,v.insert(yc))}v.style+=a(v.style,g,k,v);break;case "AndroidAlertDialog":var nb=new mxCell("",new mxGeometry(0,0,u,30),"strokeColor=none;fillColor=none;spacingLeft=9;");nb.vertex=!0;v.insert(nb);var ia=new mxCell("",new mxGeometry(0,25,u,10),"shape=line;strokeColor=#33B5E5;");ia.vertex=!0;v.insert(ia);var Xc=new mxCell("",new mxGeometry(0,
+30,u,t-30),"strokeColor=none;fillColor=none;verticalAlign=top;");Xc.vertex=!0;v.insert(Xc);var za=new mxCell("",new mxGeometry(0,t-25,.5*u,25),"fillColor=none;");za.vertex=!0;v.insert(za);var Aa=new mxCell("",new mxGeometry(.5*u,t-25,.5*u,25),"fillColor=none;");Aa.vertex=!0;v.insert(Aa);nb.value=f(g.DialogTitle);nb.style+=b(g.DialogTitle,z);Xc.value=f(g.DialogText);Xc.style+=b(g.DialogText,z);za.value=f(g.Button_0);za.style+=b(g.Button_0,z);Aa.value=f(g.Button_1);Aa.style+=b(g.Button_1,z);"Dark"==
+g.Scheme?(v.style+="strokeColor=#353535;fillColor=#282828;shadow=1;",za.style+="strokeColor=#353535;",Aa.style+="strokeColor=#353535;"):(v.style+="strokeColor=none;fillColor=#ffffff;shadow=1;",za.style+="strokeColor=#E2E2E2;",Aa.style+="strokeColor=#E2E2E2;");v.style+=a(v.style,g,k,v);break;case "AndroidDateDialog":case "AndroidTimeDialog":nb=new mxCell("",new mxGeometry(0,0,u,30),"strokeColor=none;fillColor=none;spacingLeft=9;");nb.vertex=!0;v.insert(nb);nb.value=f(g.DialogTitle);nb.style+=b(g.DialogTitle,
+z);ia=new mxCell("",new mxGeometry(0,25,u,10),"shape=line;strokeColor=#33B5E5;");ia.vertex=!0;v.insert(ia);za=new mxCell("",new mxGeometry(0,t-25,.5*u,25),"fillColor=none;");za.vertex=!0;v.insert(za);za.value=f(g.Button_0);za.style+=b(g.Button_0,z);Aa=new mxCell("",new mxGeometry(.5*u,t-25,.5*u,25),"fillColor=none;");Aa.vertex=!0;v.insert(Aa);Aa.value=f(g.Button_1);Aa.style+=b(g.Button_1,z);var zc=new mxCell("",new mxGeometry(.5*u-4,41,8,4),"shape=triangle;direction=north;");zc.vertex=!0;v.insert(zc);
+var Ac=new mxCell("",new mxGeometry(.25*u-4,41,8,4),"shape=triangle;direction=north;");Ac.vertex=!0;v.insert(Ac);var Bc=new mxCell("",new mxGeometry(.75*u-4,41,8,4),"shape=triangle;direction=north;");Bc.vertex=!0;v.insert(Bc);var Yc=new mxCell("",new mxGeometry(.375*u,50,.2*u,15),"strokeColor=none;fillColor=none;");Yc.vertex=!0;v.insert(Yc);Yc.value=f(g.Label_1);Yc.style+=b(g.Label_1,z);var Zc=new mxCell("",new mxGeometry(.125*u,50,.2*u,15),"strokeColor=none;fillColor=none;");Zc.vertex=!0;v.insert(Zc);
+Zc.value=f(g.Label_0);Zc.style+=b(g.Label_0,z);var Cc=null;"AndroidDateDialog"==c.Class&&(Cc=new mxCell("",new mxGeometry(.625*u,50,.2*u,15),"strokeColor=none;fillColor=none;"),Cc.vertex=!0,v.insert(Cc),Cc.value=f(g.Label_2),Cc.style+=b(g.Label_2,z));var Pa=new mxCell("",new mxGeometry(.43*u,60,.14*u,10),"shape=line;strokeColor=#33B5E5;");Pa.vertex=!0;v.insert(Pa);var Qa=new mxCell("",new mxGeometry(.18*u,60,.14*u,10),"shape=line;strokeColor=#33B5E5;");Qa.vertex=!0;v.insert(Qa);var Qc=new mxCell("",
+new mxGeometry(.68*u,60,.14*u,10),"shape=line;strokeColor=#33B5E5;");Qc.vertex=!0;v.insert(Qc);var $c=new mxCell("",new mxGeometry(.375*u,65,.2*u,15),"strokeColor=none;fillColor=none;");$c.vertex=!0;v.insert($c);$c.value=f(g.Label_4);$c.style+=b(g.Label_4,z);var Dc=null;"AndroidTimeDialog"==c.Class&&(Dc=new mxCell("",new mxGeometry(.3*u,65,.1*u,15),"strokeColor=none;fillColor=none;"),Dc.vertex=!0,v.insert(Dc),Dc.value=f(g.Label_Colon),Dc.style+=b(g.Label_Colon,z));var ad=new mxCell("",new mxGeometry(.125*
+u,65,.2*u,15),"strokeColor=none;fillColor=none;");ad.vertex=!0;v.insert(ad);ad.value=f(g.Label_3);ad.style+=b(g.Label_3,z);var bd=new mxCell("",new mxGeometry(.625*u,65,.2*u,15),"strokeColor=none;fillColor=none;");bd.vertex=!0;v.insert(bd);bd.value=f(g.Label_5);bd.style+=b(g.Label_5,z);var Rc=new mxCell("",new mxGeometry(.43*u,75,.14*u,10),"shape=line;strokeColor=#33B5E5;");Rc.vertex=!0;v.insert(Rc);var Sc=new mxCell("",new mxGeometry(.18*u,75,.14*u,10),"shape=line;strokeColor=#33B5E5;");Sc.vertex=
+!0;v.insert(Sc);var Tc=new mxCell("",new mxGeometry(.68*u,75,.14*u,10),"shape=line;strokeColor=#33B5E5;");Tc.vertex=!0;v.insert(Tc);var cd=new mxCell("",new mxGeometry(.375*u,80,.2*u,15),"strokeColor=none;fillColor=none;");cd.vertex=!0;v.insert(cd);cd.value=f(g.Label_7);cd.style+=b(g.Label_7,z);var dd=new mxCell("",new mxGeometry(.125*u,80,.2*u,15),"strokeColor=none;fillColor=none;");dd.vertex=!0;v.insert(dd);dd.value=f(g.Label_6);dd.style+=b(g.Label_6,z);var ed=new mxCell("",new mxGeometry(.625*
+u,80,.2*u,15),"strokeColor=none;fillColor=none;");ed.vertex=!0;v.insert(ed);ed.value=f(g.Label_8);ed.style+=b(g.Label_8,z);var Ec=new mxCell("",new mxGeometry(.5*u-4,99,8,4),"shape=triangle;direction=south;");Ec.vertex=!0;v.insert(Ec);var Fc=new mxCell("",new mxGeometry(.25*u-4,99,8,4),"shape=triangle;direction=south;");Fc.vertex=!0;v.insert(Fc);var Gc=new mxCell("",new mxGeometry(.75*u-4,99,8,4),"shape=triangle;direction=south;");Gc.vertex=!0;v.insert(Gc);"Dark"==g.Scheme?(v.style+="strokeColor=#353535;fillColor=#282828;shadow=1;",
+za.style+="strokeColor=#353535;",Aa.style+="strokeColor=#353535;",zc.style+="strokeColor=none;fillColor=#7E7E7E;",Ac.style+="strokeColor=none;fillColor=#7E7E7E;",Bc.style+="strokeColor=none;fillColor=#7E7E7E;",Ec.style+="strokeColor=none;fillColor=#7E7E7E;",Fc.style+="strokeColor=none;fillColor=#7E7E7E;",Gc.style+="strokeColor=none;fillColor=#7E7E7E;"):(v.style+="strokeColor=none;fillColor=#ffffff;shadow=1;",za.style+="strokeColor=#E2E2E2;",Aa.style+="strokeColor=#E2E2E2;",zc.style+="strokeColor=none;fillColor=#939393;",
+Ac.style+="strokeColor=none;fillColor=#939393;",Bc.style+="strokeColor=none;fillColor=#939393;",Ec.style+="strokeColor=none;fillColor=#939393;",Fc.style+="strokeColor=none;fillColor=#939393;",Gc.style+="strokeColor=none;fillColor=#939393;");v.style+=a(v.style,g,k,v);break;case "AndroidListItems":var La=t,Lb=0;if(g.ShowHeader){var Lb=8,gc=new mxCell("",new mxGeometry(0,0,u,Lb),"strokeColor=none;fillColor=none;");gc.vertex=!0;v.insert(gc);gc.value=f(g.Header);gc.style+=b(g.Header,z);var La=La-Lb,Uc=
+new mxCell("",new mxGeometry(0,Lb-2,u,4),"shape=line;strokeColor=#999999;");Uc.vertex=!0;v.insert(Uc)}var ob=parseInt(g.Items);0<ob&&(La/=ob);for(var I=[],ia=[],m=0;m<ob;m++)I[m]=new mxCell("",new mxGeometry(0,Lb+m*La,u,La),"strokeColor=none;fillColor=none;"),I[m].vertex=!0,v.insert(I[m]),I[m].value=f(g["Item_"+m]),I[m].style+=b(g["Item_"+m],z),0<m&&(ia[m]=new mxCell("",new mxGeometry(0,Lb+m*La-2,u,4),"shape=line;"),ia[m].vertex=!0,v.insert(ia[m]),ia[m].style="Dark"==g.Scheme?ia[m].style+"strokeColor=#ffffff;":
+ia[m].style+"strokeColor=#D9D9D9;");v.style="Dark"==g.Scheme?v.style+"strokeColor=none;fillColor=#111111;":v.style+"strokeColor=none;fillColor=#ffffff;";v.style+=a(v.style,g,k,v);break;case "AndroidTabs":var pb=parseInt(g.Tabs),Va=u;0<pb&&(Va/=pb);for(var na=[],ia=[],m=0;m<pb;m++)na[m]=new mxCell("",new mxGeometry(m*Va,0,Va,t),"strokeColor=none;fillColor=none;"),na[m].vertex=!0,v.insert(na[m]),na[m].value=f(g["Tab_"+m]),na[m].style+=b(g["Tab_"+m],z),0<m&&(ia[m]=new mxCell("",new mxGeometry(m*Va-2,
+.2*t,4,.6*t),"shape=line;direction=north;"),ia[m].vertex=!0,v.insert(ia[m]),ia[m].style="Dark"==g.Scheme?ia[m].style+"strokeColor=#484848;":ia[m].style+"strokeColor=#CCCCCC;");var xe=new mxCell("",new mxGeometry(g.Selected*Va+2,t-3,Va-4,3),"strokeColor=none;fillColor=#33B5E5;");xe.vertex=!0;v.insert(xe);v.style="Dark"==g.Scheme?v.style+"strokeColor=none;fillColor=#333333;":v.style+"strokeColor=none;fillColor=#DDDDDD;";v.style+=a(v.style,g,k,v);break;case "AndroidProgressBar":v=new mxCell("",new mxGeometry(Math.round(A),
+Math.round(l+.25*t),Math.round(u),Math.round(.5*t)),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;");v.vertex=!0;var fd=new mxCell("",new mxGeometry(0,0,u*g.BarPosition,Math.round(.5*t)),"strokeColor=none;fillColor=#33B5E5;");fd.vertex=!0;v.insert(fd);v.style="Dark"==g.Scheme?v.style+"strokeColor=none;fillColor=#474747;":v.style+"strokeColor=none;fillColor=#BBBBBB;";v.style+=a(v.style,g,k,v);break;case "AndroidImageBlock":v.style="Dark"==g.Scheme?v.style+"shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#7E7E7E;fillColor=#111111;":
+v.style+"shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#939393;fillColor=#ffffff;";v.style+=a(v.style,g,k,v);break;case "AndroidTextBlock":v.style="Dark"==g.Scheme?g.ShowBorder?v.style+"fillColor=#111111;strokeColor=#ffffff;":v.style+"fillColor=#111111;strokeColor=none;":g.ShowBorder?v.style+"fillColor=#ffffff;strokeColor=#000000;":v.style+"fillColor=#ffffff;strokeColor=none;";v.value=f(g.Label);v.style+=b(g.Label,z);v.style+=a(v.style,g,k,v,z);break;case "AndroidActionBar":v.style+="strokeColor=none;";
+switch(g.BarBackground){case "Blue":v.style+="fillColor=#002E3E;";break;case "Gray":v.style+="fillColor=#DDDDDD;";break;case "Dark Gray":v.style+="fillColor=#474747;";break;case "White":v.style+="fillColor=#ffffff;"}if(g.HighlightShow){var Mb=null,Mb=g.HighlightTop?new mxCell("",new mxGeometry(0,0,u,2),"strokeColor=none;"):new mxCell("",new mxGeometry(0,t-2,u,2),"strokeColor=none;");Mb.vertex=!0;v.insert(Mb);switch(g.HighlightColor){case "Blue":Mb.style+="fillColor=#33B5E5;";break;case "Dark Gray":Mb.style+=
+"fillColor=#B0B0B0;";break;case "White":Mb.style+="fillColor=#ffffff;"}}if(g.VlignShow){var Hc=new mxCell("",new mxGeometry(20,5,2,t-10),"shape=line;direction=north;");Hc.vertex=!0;v.insert(Hc);switch(g.VlignColor){case "Blue":Hc.style+="strokeColor=#244C5A;";break;case "White":Hc.style+="strokeColor=#ffffff;"}}v.style+=a(v.style,g,k,v);break;case "AndroidButton":v.value=f(g.Label);v.style+=b(g.Label,z)+"shape=partialRectangle;left=0;right=0;";v.style="Dark"==g.Scheme?v.style+"fillColor=#474747;strokeColor=#C6C5C6;bottom=0;":
+v.style+"fillColor=#DFE0DF;strokeColor=#C6C5C6;top=0;";v.style+=a(v.style,g,k,v);break;case "AndroidTextBox":v.value=f(g.Label);v.style+=b(g.Label,z);var gd=new mxCell("",new mxGeometry(2,t-6,u-4,4),"shape=partialRectangle;top=0;fillColor=none;");gd.vertex=!0;v.insert(gd);v.style="Dark"==g.Scheme?v.style+"fillColor=#111111;strokeColor=none;":v.style+"fillColor=#ffffff;strokeColor=none;";gd.style=g.TextFocused?gd.style+"strokeColor=#33B5E5;":gd.style+"strokeColor=#A9A9A9;";v.style+=a(v.style,g,k,v);
+break;case "AndroidRadioButton":var hc=null;g.Checked&&(hc=new mxCell("",new mxGeometry(.15*u,.15*t,.7*u,.7*t),"ellipse;fillColor=#33B5E5;strokeWidth=1;"),hc.vertex=!0,v.insert(hc));"Dark"==g.Scheme?(v.style+="shape=ellipse;perimeter=ellipsePerimeter;strokeWidth=1;strokeColor=#272727;",g.Checked?(hc.style+="strokeColor=#1F5C73;",v.style+="fillColor=#193C49;"):v.style+="fillColor=#111111;"):(v.style+="shape=ellipse;perimeter=ellipsePerimeter;strokeWidth=1;fillColor=#ffffff;strokeColor=#5C5C5C;",g.Checked&&
+(hc.style+="strokeColor=#999999;"));v.style+=a(v.style,g,k,v);break;case "AndroidCheckBox":var Yd=null;g.Checked&&(Yd=new mxCell("",new mxGeometry(.25*u,.05*-t,u,.8*t),"shape=mxgraph.ios7.misc.check;strokeColor=#33B5E5;strokeWidth=2;"),Yd.vertex=!0,v.insert(Yd));v.style="Dark"==g.Scheme?v.style+"strokeWidth=1;strokeColor=#272727;fillColor=#111111;":v.style+"strokeWidth=1;strokeColor=#5C5C5C;fillColor=#ffffff;";v.style+=a(v.style,g,k,v);break;case "AndroidToggle":v.style="Dark"==g.Scheme?g.Checked?
+v.style+"shape=mxgraph.android.switch_on;fillColor=#666666;":v.style+"shape=mxgraph.android.switch_off;fillColor=#666666;":g.Checked?v.style+"shape=mxgraph.android.switch_on;fillColor=#E6E6E6;":v.style+"shape=mxgraph.android.switch_off;fillColor=#E6E6E6;";v.style+=a(v.style,g,k,v);break;case "AndroidSlider":v.style+="shape=mxgraph.android.progressScrubberFocused;dx="+g.BarPosition+";fillColor=#33b5e5;";v.style+=a(v.style,g,k,v);break;case "iOSSegmentedControl":pb=parseInt(g.Tabs);Va=u;v.style+="strokeColor=none;fillColor=none;";
+0<pb&&(Va/=pb);na=[];ia=[];for(m=0;m<pb;m++)na[m]=new mxCell("",new mxGeometry(m*Va,0,Va,t),"strokeColor="+g.FillColor+";"),na[m].vertex=!0,v.insert(na[m]),na[m].value=f(g["Tab_"+m]),na[m].style+=b(g["Tab_"+m],z),na[m].style=g.Selected==m?na[m].style+X(g,k):na[m].style+"fillColor=none;";v.style+=a(v.style,g,k,v);break;case "iOSSlider":v.style+="shape=mxgraph.ios7ui.slider;strokeColor="+g.FillColor+";fillColor=#ffffff;strokeWidth=2;barPos="+100*g.BarPosition+";";v.style+=a(v.style,g,k,v);break;case "iOSProgressBar":v=
+new mxCell("",new mxGeometry(Math.round(A),Math.round(l+.25*t),Math.round(u),Math.round(.5*t)),"html=1;overflow=block;blockSpacing=1;whiteSpace=wrap;strokeColor=none;fillColor=#B5B5B5;");v.vertex=!0;fd=new mxCell("",new mxGeometry(0,0,u*g.BarPosition,Math.round(.5*t)),"strokeColor=none;"+X(g,k));fd.vertex=!0;v.insert(fd);v.style+=a(v.style,g,k,v);break;case "iOSPageControls":v.style+="shape=mxgraph.ios7ui.pageControl;strokeColor=#D6D6D6;";v.style+=a(v.style,g,k,v);break;case "iOSStatusBar":v.style+=
+"shape=mxgraph.ios7ui.appBar;strokeColor=#000000;";var W=new mxCell(f(g.Text),new mxGeometry(.35*u,0,.3*u,t),"strokeColor=none;fillColor=none;");W.vertex=!0;v.insert(W);W.style+=b(g.Text,z);var Ra=new mxCell(f(g.Carrier),new mxGeometry(.09*u,0,.2*u,t),"strokeColor=none;fillColor=none;");Ra.vertex=!0;v.insert(Ra);Ra.style+=b(g.Carrier,z);v.style+=a(v.style,g,k,v);break;case "iOSSearchBar":v.value=f(g.Search);v.style+="strokeColor=none;";v.style+=a(v.style,g,k,v,z)+b(g.Search,z);var ca=new mxCell("",
+new mxGeometry(.3*u,.3*t,.4*t,.4*t),"shape=mxgraph.ios7.icons.looking_glass;strokeColor=#000000;fillColor=none;");ca.vertex=!0;v.insert(ca);break;case "iOSNavBar":v.value=f(g.Title);v.style+="shape=partialRectangle;top=0;right=0;left=0;strokeColor=#979797;"+b(g.Title,z);v.style+=a(v.style,g,k,v,z);W=new mxCell(f(g.LeftText),new mxGeometry(.03*u,0,.3*u,t),"strokeColor=none;fillColor=none;");W.vertex=!0;v.insert(W);W.style+=b(g.LeftText,z);Ra=new mxCell(f(g.RightText),new mxGeometry(.65*u,0,.3*u,t),
+"strokeColor=none;fillColor=none;");Ra.vertex=!0;v.insert(Ra);Ra.style+=b(g.RightText,z);ca=new mxCell("",new mxGeometry(.02*u,.2*t,.3*t,.5*t),"shape=mxgraph.ios7.misc.left;strokeColor=#007AFF;strokeWidth=2;");ca.vertex=!0;v.insert(ca);break;case "iOSTabs":pb=parseInt(g.Tabs);Va=u;v.style+="shape=partialRectangle;right=0;left=0;bottom=0;strokeColor=#979797;";v.style+=a(v.style,g,k,v);0<pb&&(Va/=pb);na=[];ia=[];for(m=0;m<pb;m++)na[m]=new mxCell("",new mxGeometry(m*Va,0,Va,t),"strokeColor=none;"),na[m].vertex=
+!0,v.insert(na[m]),na[m].value=f(g["Tab_"+m]),na[m].style+=z?"overflow=block;blockSpacing=1;html=1;fontSize=13;"+Ca:h(g["Tab_"+m])+n(g["Tab_"+m])+w(g["Tab_"+m])+y(g["Tab_"+m])+C(g["Tab_"+m])+E(g["Tab_"+m])+B(g["Tab_"+m])+F(g["Tab_"+m])+D(g["Tab_"+m])+K(g["Tab_"+m]),na[m].style+="verticalAlign=bottom;",na[m].style=g.Selected==m?na[m].style+"fillColor=#BBBBBB;":na[m].style+"fillColor=none;";break;case "iOSDatePicker":var qb=new mxCell("",new mxGeometry(0,0,.5*u,.2*t),"strokeColor=none;fillColor=none;");
+qb.vertex=!0;v.insert(qb);qb.value=f(g.Option11);qb.style+=b(g.Option11,z);var rb=new mxCell("",new mxGeometry(.5*u,0,.15*u,.2*t),"strokeColor=none;fillColor=none;");rb.vertex=!0;v.insert(rb);rb.value=f(g.Option21);rb.style+=b(g.Option21,z);var sb=new mxCell("",new mxGeometry(.65*u,0,.15*u,.2*t),"strokeColor=none;fillColor=none;");sb.vertex=!0;v.insert(sb);sb.value=f(g.Option31);sb.style+=b(g.Option31,z);var tb=new mxCell("",new mxGeometry(0,.2*t,.5*u,.2*t),"strokeColor=none;fillColor=none;");tb.vertex=
+!0;v.insert(tb);tb.value=f(g.Option12);tb.style+=b(g.Option12,z);var ub=new mxCell("",new mxGeometry(.5*u,.2*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");ub.vertex=!0;v.insert(ub);ub.value=f(g.Option22);ub.style+=b(g.Option22,z);var vb=new mxCell("",new mxGeometry(.65*u,.2*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");vb.vertex=!0;v.insert(vb);vb.value=f(g.Option32);vb.style+=b(g.Option32,z);var Ga=new mxCell("",new mxGeometry(0,.4*t,.5*u,.2*t),"strokeColor=none;fillColor=none;");Ga.vertex=
+!0;v.insert(Ga);Ga.value=f(g.Option13);Ga.style+=b(g.Option13,z);var Ha=new mxCell("",new mxGeometry(.5*u,.4*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Ha.vertex=!0;v.insert(Ha);Ha.value=f(g.Option23);Ha.style+=b(g.Option23,z);var wb=new mxCell("",new mxGeometry(.65*u,.4*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");wb.vertex=!0;v.insert(wb);wb.value=f(g.Option33);wb.style+=b(g.Option33,z);var Ia=new mxCell("",new mxGeometry(.8*u,.4*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Ia.vertex=
+!0;v.insert(Ia);Ia.value=f(g.Option43);Ia.style+=b(g.Option43,z);var Ja=new mxCell("",new mxGeometry(0,.6*t,.5*u,.2*t),"strokeColor=none;fillColor=none;");Ja.vertex=!0;v.insert(Ja);Ja.value=f(g.Option14);Ja.style+=b(g.Option14,z);var xb=new mxCell("",new mxGeometry(.5*u,.6*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");xb.vertex=!0;v.insert(xb);xb.value=f(g.Option24);xb.style+=b(g.Option24,z);var yb=new mxCell("",new mxGeometry(.65*u,.6*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");yb.vertex=
+!0;v.insert(yb);yb.value=f(g.Option34);yb.style+=b(g.Option34,z);var zb=new mxCell("",new mxGeometry(.8*u,.6*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");zb.vertex=!0;v.insert(zb);zb.value=f(g.Option44);zb.style+=b(g.Option44,z);var Ka=new mxCell("",new mxGeometry(0,.8*t,.5*u,.2*t),"strokeColor=none;fillColor=none;");Ka.vertex=!0;v.insert(Ka);Ka.value=f(g.Option15);Ka.style+=b(g.Option15,z);var Ab=new mxCell("",new mxGeometry(.5*u,.8*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Ab.vertex=
+!0;v.insert(Ab);Ab.value=f(g.Option25);Ab.style+=b(g.Option25,z);var Bb=new mxCell("",new mxGeometry(.65*u,.8*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Bb.vertex=!0;v.insert(Bb);Bb.value=f(g.Option35);Bb.style+=b(g.Option35,z);Pa=new mxCell("",new mxGeometry(0,.4*t-2,u,4),"shape=line;strokeColor=#888888;");Pa.vertex=!0;v.insert(Pa);Qa=new mxCell("",new mxGeometry(0,.6*t-2,u,4),"shape=line;strokeColor=#888888;");Qa.vertex=!0;v.insert(Qa);v.style+="strokeColor=none;";v.style+=a(v.style,g,k,
+v);break;case "iOSTimePicker":qb=new mxCell("",new mxGeometry(0,0,.25*u,.2*t),"strokeColor=none;fillColor=none;");qb.vertex=!0;v.insert(qb);qb.value=f(g.Option11);qb.style+=b(g.Option11,z);rb=new mxCell("",new mxGeometry(.25*u,0,.3*u,.2*t),"strokeColor=none;fillColor=none;");rb.vertex=!0;v.insert(rb);rb.value=f(g.Option21);rb.style+=b(g.Option21,z);tb=new mxCell("",new mxGeometry(0,.2*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");tb.vertex=!0;v.insert(tb);tb.value=f(g.Option12);tb.style+=b(g.Option12,
+z);ub=new mxCell("",new mxGeometry(.25*u,.2*t,.3*u,.2*t),"strokeColor=none;fillColor=none;");ub.vertex=!0;v.insert(ub);ub.value=f(g.Option22);ub.style+=b(g.Option22,z);Ga=new mxCell("",new mxGeometry(0,.4*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ga.vertex=!0;v.insert(Ga);Ga.value=f(g.Option13);Ga.style+=b(g.Option13,z);Ha=new mxCell("",new mxGeometry(.25*u,.4*t,.3*u,.2*t),"strokeColor=none;fillColor=none;");Ha.vertex=!0;v.insert(Ha);Ha.value=f(g.Option23);Ha.style+=b(g.Option23,z);Ia=new mxCell("",
+new mxGeometry(.7*u,.4*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");Ia.vertex=!0;v.insert(Ia);Ia.value=f(g.Option33);Ia.style+=b(g.Option33,z);Ja=new mxCell("",new mxGeometry(0,.6*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ja.vertex=!0;v.insert(Ja);Ja.value=f(g.Option14);Ja.style+=b(g.Option14,z);xb=new mxCell("",new mxGeometry(.25*u,.6*t,.3*u,.2*t),"strokeColor=none;fillColor=none;");xb.vertex=!0;v.insert(xb);xb.value=f(g.Option24);xb.style+=b(g.Option24,z);zb=new mxCell("",new mxGeometry(.7*
+u,.6*t,.15*u,.2*t),"strokeColor=none;fillColor=none;");zb.vertex=!0;v.insert(zb);zb.value=f(g.Option34);zb.style+=b(g.Option34,z);Ka=new mxCell("",new mxGeometry(0,.8*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ka.vertex=!0;v.insert(Ka);Ka.value=f(g.Option15);Ka.style+=b(g.Option15,z);Ab=new mxCell("",new mxGeometry(.25*u,.8*t,.3*u,.2*t),"strokeColor=none;fillColor=none;");Ab.vertex=!0;v.insert(Ab);Ab.value=f(g.Option25);Ab.style+=b(g.Option25,z);Pa=new mxCell("",new mxGeometry(0,.4*t-2,u,4),
+"shape=line;strokeColor=#888888;");Pa.vertex=!0;v.insert(Pa);Qa=new mxCell("",new mxGeometry(0,.6*t-2,u,4),"shape=line;strokeColor=#888888;");Qa.vertex=!0;v.insert(Qa);v.style+="strokeColor=none;";v.style+=a(v.style,g,k,v);break;case "iOSCountdownPicker":sb=new mxCell("",new mxGeometry(.45*u,0,.2*u,.2*t),"strokeColor=none;fillColor=none;");sb.vertex=!0;v.insert(sb);sb.value=f(g.Option31);sb.style+=b(g.Option31,z);vb=new mxCell("",new mxGeometry(.45*u,.2*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");
+vb.vertex=!0;v.insert(vb);vb.value=f(g.Option32);vb.style+=b(g.Option32,z);Ga=new mxCell("",new mxGeometry(0,.4*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ga.vertex=!0;v.insert(Ga);Ga.value=f(g.Option13);Ga.style+=b(g.Option13,z);Ha=new mxCell("",new mxGeometry(.2*u,.4*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ha.vertex=!0;v.insert(Ha);Ha.value=f(g.Option23);Ha.style+=b(g.Option23,z);wb=new mxCell("",new mxGeometry(.45*u,.4*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");wb.vertex=
+!0;v.insert(wb);wb.value=f(g.Option33);wb.style+=b(g.Option33,z);Ia=new mxCell("",new mxGeometry(.6*u,.4*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");Ia.vertex=!0;v.insert(Ia);Ia.value=f(g.Option43);Ia.style+=b(g.Option43,z);Ja=new mxCell("",new mxGeometry(0,.6*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ja.vertex=!0;v.insert(Ja);Ja.value=f(g.Option14);Ja.style+=b(g.Option14,z);yb=new mxCell("",new mxGeometry(.45*u,.6*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");yb.vertex=!0;v.insert(yb);
+yb.value=f(g.Option34);yb.style+=b(g.Option34,z);Ka=new mxCell("",new mxGeometry(0,.8*t,.25*u,.2*t),"strokeColor=none;fillColor=none;");Ka.vertex=!0;v.insert(Ka);Ka.value=f(g.Option15);Ka.style+=b(g.Option15,z);Bb=new mxCell("",new mxGeometry(.45*u,.8*t,.2*u,.2*t),"strokeColor=none;fillColor=none;");Bb.vertex=!0;v.insert(Bb);Bb.value=f(g.Option35);Bb.style+=b(g.Option35,z);Pa=new mxCell("",new mxGeometry(0,.4*t-2,u,4),"shape=line;strokeColor=#888888;");Pa.vertex=!0;v.insert(Pa);Qa=new mxCell("",new mxGeometry(0,
+.6*t-2,u,4),"shape=line;strokeColor=#888888;");Qa.vertex=!0;v.insert(Qa);v.style+="strokeColor=none;";v.style+=a(v.style,g,k,v);break;case "iOSBasicCell":v.value=f(g.text);v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;spacing=0;align=left;spacingLeft="+.75*g.SeparatorInset+";";v.style+=(z?"fontSize=13;":h(g.text)+w(g.text)+y(g.text))+Z(g.text);v.style+=a(v.style,g,k,v,z);switch(g.AccessoryIndicatorType){case "Disclosure":ca=new mxCell("",new mxGeometry(.91*
u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);break;case "DetailDisclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);var ra=new mxCell("",new mxGeometry(.79*u,.25*t,.5*t,.5*t),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ra.vertex=!0;v.insert(ra);break;case "DetailIndicator":ra=new mxCell("",new mxGeometry(.87*u,.25*t,.5*t,
.5*t),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ra.vertex=!0;v.insert(ra);break;case "CheckMark":ca=new mxCell("",new mxGeometry(.89*u,.37*t,.4*t,.26*t),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;"),ca.vertex=!0,v.insert(ca)}break;case "iOSSubtitleCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;align=left;spacing=0;verticalAlign=top;spacingLeft="+.75*g.SeparatorInset+";";v.value=f(g.subtext);v.style+=
-z?"fontSize=13;":h(g.subtext)+x(g.subtext)+w(g.subtext);v.style+=a(v.style,g,l,v,z);var ua=new mxCell("",new mxGeometry(0,.4*t,u,.6*t),"fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=bottom;spacingLeft="+.75*g.SeparatorInset+";");ua.vertex=!0;v.insert(ua);ua.value=f(g.text);ua.style+=z?"html=1;fontSize=13;"+Ca:h(g.text)+n(g.text)+x(g.text)+w(g.text);switch(g.AccessoryIndicatorType){case "Disclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");
+z?"fontSize=13;":h(g.subtext)+w(g.subtext)+y(g.subtext);v.style+=a(v.style,g,k,v,z);var ua=new mxCell("",new mxGeometry(0,.4*t,u,.6*t),"fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=bottom;spacingLeft="+.75*g.SeparatorInset+";");ua.vertex=!0;v.insert(ua);ua.value=f(g.text);ua.style+=z?"html=1;fontSize=13;"+Ca:h(g.text)+n(g.text)+w(g.text)+y(g.text);switch(g.AccessoryIndicatorType){case "Disclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");
ca.vertex=!0;v.insert(ca);break;case "DetailDisclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);ra=new mxCell("",new mxGeometry(.79*u,.25*t,.5*t,.5*t),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ra.vertex=!0;v.insert(ra);break;case "DetailIndicator":ra=new mxCell("",new mxGeometry(.87*u,.25*t,.5*t,.5*t),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");
-ra.vertex=!0;v.insert(ra);break;case "CheckMark":ca=new mxCell("",new mxGeometry(.89*u,.37*t,.4*t,.26*t),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;"),ca.vertex=!0,v.insert(ca)}break;case "iOSRightDetailCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;align=left;spacing=0;verticalAlign=middle;spacingLeft="+.75*g.SeparatorInset+";";v.value=f(g.subtext);v.style+=z?"fontSize=13;":h(g.subtext)+x(g.subtext)+w(g.subtext);v.style+=a(v.style,
-g,l,v,z);ua=null;switch(g.AccessoryIndicatorType){case "Disclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);ua=new mxCell("",new mxGeometry(.55*u,0,.3*u,t),"fillColor=none;strokeColor=none;spacing=0;align=right;");break;case "DetailDisclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);ra=new mxCell("",new mxGeometry(.79*
+ra.vertex=!0;v.insert(ra);break;case "CheckMark":ca=new mxCell("",new mxGeometry(.89*u,.37*t,.4*t,.26*t),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;"),ca.vertex=!0,v.insert(ca)}break;case "iOSRightDetailCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;align=left;spacing=0;verticalAlign=middle;spacingLeft="+.75*g.SeparatorInset+";";v.value=f(g.subtext);v.style+=z?"fontSize=13;":h(g.subtext)+w(g.subtext)+y(g.subtext);v.style+=a(v.style,
+g,k,v,z);ua=null;switch(g.AccessoryIndicatorType){case "Disclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);ua=new mxCell("",new mxGeometry(.55*u,0,.3*u,t),"fillColor=none;strokeColor=none;spacing=0;align=right;");break;case "DetailDisclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);ra=new mxCell("",new mxGeometry(.79*
u,.25*t,.5*t,.5*t),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ra.vertex=!0;v.insert(ra);ua=new mxCell("",new mxGeometry(.45*u,0,.3*u,t),"fillColor=none;strokeColor=none;spacing=0;align=right;");break;case "DetailIndicator":ra=new mxCell("",new mxGeometry(.87*u,.25*t,.5*t,.5*t),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ra.vertex=!0;v.insert(ra);ua=new mxCell("",new mxGeometry(.52*u,0,.3*u,t),"fillColor=none;strokeColor=none;spacing=0;align=right;");
break;case "CheckMark":ca=new mxCell("",new mxGeometry(.89*u,.37*t,.4*t,.26*t),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;");ca.vertex=!0;v.insert(ca);ua=new mxCell("",new mxGeometry(.55*u,0,.3*u,t),"fillColor=none;strokeColor=none;spacing=0;align=right;");break;default:ua=new mxCell("",new mxGeometry(.65*u,0,.3*u,t),"fillColor=none;strokeColor=none;spacing=0;align=right;")}ua.vertex=!0;v.insert(ua);ua.value=f(g.text);ua.style+=z?"html=1;fontSize=13;"+Ca:h(g.text)+n(g.text)+
-x(g.text)+w(g.text);break;case "iOSLeftDetailCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;";v.style+=a(v.style,g,l,v);var ib=new mxCell("",new mxGeometry(0,0,.25*u,t),"fillColor=none;strokeColor=none;spacing=0;align=right;verticalAlign=middle;spacingRight=3;");ib.vertex=!0;v.insert(ib);ib.value=f(g.subtext);ib.style+=z?"html=1;fontSize=13;"+Ca:h(g.subtext)+n(g.subtext)+x(g.subtext)+w(g.subtext);ua=new mxCell("",new mxGeometry(.25*u,0,.5*u,t),"fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=middle;spacingLeft=3;");
-ua.vertex=!0;v.insert(ua);ua.value=f(g.text);ua.style+=z?"html=1;fontSize=13;"+Ca:h(g.text)+n(g.text)+x(g.text)+w(g.text);switch(g.AccessoryIndicatorType){case "Disclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);break;case "DetailDisclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);ra=new mxCell("",new mxGeometry(.79*
+w(g.text)+y(g.text);break;case "iOSLeftDetailCell":v.style+="shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;";v.style+=a(v.style,g,k,v);var gb=new mxCell("",new mxGeometry(0,0,.25*u,t),"fillColor=none;strokeColor=none;spacing=0;align=right;verticalAlign=middle;spacingRight=3;");gb.vertex=!0;v.insert(gb);gb.value=f(g.subtext);gb.style+=z?"html=1;fontSize=13;"+Ca:h(g.subtext)+n(g.subtext)+w(g.subtext)+y(g.subtext);ua=new mxCell("",new mxGeometry(.25*u,0,.5*u,t),"fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=middle;spacingLeft=3;");
+ua.vertex=!0;v.insert(ua);ua.value=f(g.text);ua.style+=z?"html=1;fontSize=13;"+Ca:h(g.text)+n(g.text)+w(g.text)+y(g.text);switch(g.AccessoryIndicatorType){case "Disclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);break;case "DetailDisclosure":ca=new mxCell("",new mxGeometry(.91*u,.35*t,.15*t,.3*t),"shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;");ca.vertex=!0;v.insert(ca);ra=new mxCell("",new mxGeometry(.79*
u,.25*t,.5*t,.5*t),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ra.vertex=!0;v.insert(ra);break;case "DetailIndicator":ra=new mxCell("",new mxGeometry(.87*u,.25*t,.5*t,.5*t),"shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;");ra.vertex=!0;v.insert(ra);break;case "CheckMark":ca=new mxCell("",new mxGeometry(.89*u,.37*t,.4*t,.26*t),"shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;"),ca.vertex=!0,v.insert(ca)}break;case "iOSTableGroupedSectionBreak":v.style+=
-"shape=partialRectangle;left=0;right=0;fillColor=#EFEFF4;strokeColor=#C8C7CC;";W=new mxCell("",new mxGeometry(0,0,u,.4*t),"fillColor=none;strokeColor=none;spacing=10;align=left;");W.vertex=!0;v.insert(W);W.value=f(g.text);W.style+=z?"html=1;fontSize=13;"+Ca:h(g.text)+n(g.text)+x(g.text)+w(g.text);Ta=new mxCell("",new mxGeometry(0,.6*t,u,.4*t),"fillColor=none;strokeColor=none;spacing=10;align=left;");Ta.vertex=!0;v.insert(Ta);Ta.value=f(g["bottom-text"]);Ta.style+=z?"html=1;fontSize=13;"+Ca:h(g["bottom-text"])+
-n(g["bottom-text"])+x(g["bottom-text"])+w(g["bottom-text"]);break;case "iOSTablePlainHeaderFooter":v.style+="fillColor=#F7F7F7;strokeColor=none;align=left;spacingLeft=5;spacing=0;";v.value=f(g.text);v.style+=z?"fontSize=13;":h(g.text)+x(g.text)+w(g.text);v.style+=a(v.style,g,l,v,z);break;case "SMPage":if(g.Group){v.style+="strokeColor=none;fillColor=none;";var q=new mxCell("",new mxGeometry(0,0,.9*u,.9*t),"rounded=1;arcSize=3;part=1;");q.vertex=!0;v.insert(q);q.style+=H(g,l)+X(g,l)+S(g,l,q)+ja(g)+
-$a(g);var y=new mxCell("",new mxGeometry(.1*u,.1*t,.9*u,.9*t),"rounded=1;arcSize=3;part=1;");y.vertex=!0;v.insert(y);y.value=f(g.Text);y.style+=H(g,l)+X(g,l)+S(g,l,y)+ja(g)+$a(g)+b(g,z);g.Future&&(q.style+="dashed=1;fixDash=1;",y.style+="dashed=1;fixDash=1;")}else v.style+="rounded=1;arcSize=3;",g.Future&&(v.style+="dashed=1;fixDash=1;"),v.value=f(g.Text),v.style+=H(g,l)+X(g,l)+S(g,l,v)+ja(g)+$a(g)+b(g,z);v.style+=a(v.style,g,l,v,z);break;case "SMHome":case "SMPrint":case "SMSearch":case "SMSettings":case "SMSitemap":case "SMSuccess":case "SMVideo":case "SMAudio":case "SMCalendar":case "SMChart":case "SMCloud":case "SMDocument":case "SMForm":case "SMGame":case "SMUpload":q=
+"shape=partialRectangle;left=0;right=0;fillColor=#EFEFF4;strokeColor=#C8C7CC;";W=new mxCell("",new mxGeometry(0,0,u,.4*t),"fillColor=none;strokeColor=none;spacing=10;align=left;");W.vertex=!0;v.insert(W);W.value=f(g.text);W.style+=z?"html=1;fontSize=13;"+Ca:h(g.text)+n(g.text)+w(g.text)+y(g.text);Ra=new mxCell("",new mxGeometry(0,.6*t,u,.4*t),"fillColor=none;strokeColor=none;spacing=10;align=left;");Ra.vertex=!0;v.insert(Ra);Ra.value=f(g["bottom-text"]);Ra.style+=z?"html=1;fontSize=13;"+Ca:h(g["bottom-text"])+
+n(g["bottom-text"])+w(g["bottom-text"])+y(g["bottom-text"]);break;case "iOSTablePlainHeaderFooter":v.style+="fillColor=#F7F7F7;strokeColor=none;align=left;spacingLeft=5;spacing=0;";v.value=f(g.text);v.style+=z?"fontSize=13;":h(g.text)+w(g.text)+y(g.text);v.style+=a(v.style,g,k,v,z);break;case "SMPage":if(g.Group){v.style+="strokeColor=none;fillColor=none;";var q=new mxCell("",new mxGeometry(0,0,.9*u,.9*t),"rounded=1;arcSize=3;part=1;");q.vertex=!0;v.insert(q);q.style+=H(g,k)+X(g,k)+S(g,k,q)+ha(g)+
+mb(g);var x=new mxCell("",new mxGeometry(.1*u,.1*t,.9*u,.9*t),"rounded=1;arcSize=3;part=1;");x.vertex=!0;v.insert(x);x.value=f(g.Text);x.style+=H(g,k)+X(g,k)+S(g,k,x)+ha(g)+mb(g)+b(g,z);g.Future&&(q.style+="dashed=1;fixDash=1;",x.style+="dashed=1;fixDash=1;")}else v.style+="rounded=1;arcSize=3;",g.Future&&(v.style+="dashed=1;fixDash=1;"),v.value=f(g.Text),v.style+=H(g,k)+X(g,k)+S(g,k,v)+ha(g)+mb(g)+b(g,z);v.style+=a(v.style,g,k,v,z);break;case "SMHome":case "SMPrint":case "SMSearch":case "SMSettings":case "SMSitemap":case "SMSuccess":case "SMVideo":case "SMAudio":case "SMCalendar":case "SMChart":case "SMCloud":case "SMDocument":case "SMForm":case "SMGame":case "SMUpload":q=
null;switch(c.Class){case "SMHome":q=new mxCell("",new mxGeometry(.5*u-.4*t,.1*t,.8*t,.8*t),"part=1;shape=mxgraph.office.concepts.home;flipH=1;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMPrint":q=new mxCell("",new mxGeometry(.5*u-.4*t,.19*t,.8*t,.62*t),"part=1;shape=mxgraph.office.devices.printer;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMSearch":q=new mxCell("",new mxGeometry(.5*u-.4*t,.1*t,.8*t,.8*t),"part=1;shape=mxgraph.office.concepts.search;flipH=1;fillColor=#e6e6e6;opacity=50;strokeColor=none;");
break;case "SMSettings":q=new mxCell("",new mxGeometry(.5*u-.35*t,.15*t,.7*t,.7*t),"part=1;shape=mxgraph.mscae.enterprise.settings;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMSitemap":q=new mxCell("",new mxGeometry(.5*u-.35*t,.2*t,.7*t,.6*t),"part=1;shape=mxgraph.office.sites.site_collection;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMSuccess":q=new mxCell("",new mxGeometry(.5*u-.3*t,.25*t,.6*t,.5*t),"part=1;shape=mxgraph.mscae.general.checkmark;fillColor=#e6e6e6;opacity=50;strokeColor=none;");
break;case "SMVideo":q=new mxCell("",new mxGeometry(.5*u-.4*t,.2*t,.8*t,.6*t),"part=1;shape=mxgraph.office.concepts.video_play;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMAudio":q=new mxCell("",new mxGeometry(.5*u-.3*t,.2*t,.6*t,.6*t),"part=1;shape=mxgraph.mscae.general.audio;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMCalendar":q=new mxCell("",new mxGeometry(.5*u-.4*t,.15*t,.8*t,.7*t),"part=1;shape=mxgraph.office.concepts.form;fillColor=#e6e6e6;opacity=50;strokeColor=none;");
-break;case "SMChart":var J=X(g,l),J=""==J?"#ffffff;":J.replace("fillColor=",""),q=new mxCell("",new mxGeometry(.5*u-.35*t,.15*t,.7*t,.7*t),"part=1;shape=mxgraph.ios7.icons.pie_chart;fillColor=#e6e6e6;fillOpacity=50;strokeWidth=4;strokeColor="+J);break;case "SMCloud":q=new mxCell("",new mxGeometry(.5*u-.4*t,.27*t,.8*t,.46*t),"part=1;shape=mxgraph.networks.cloud;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMDocument":q=new mxCell("",new mxGeometry(.5*u-.25*t,.15*t,.5*t,.7*t),"part=1;shape=mxgraph.mscae.enterprise.document;fillColor=#e6e6e6;opacity=50;strokeColor=none;");
+break;case "SMChart":var J=X(g,k),J=""==J?"#ffffff;":J.replace("fillColor=",""),q=new mxCell("",new mxGeometry(.5*u-.35*t,.15*t,.7*t,.7*t),"part=1;shape=mxgraph.ios7.icons.pie_chart;fillColor=#e6e6e6;fillOpacity=50;strokeWidth=4;strokeColor="+J);break;case "SMCloud":q=new mxCell("",new mxGeometry(.5*u-.4*t,.27*t,.8*t,.46*t),"part=1;shape=mxgraph.networks.cloud;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMDocument":q=new mxCell("",new mxGeometry(.5*u-.25*t,.15*t,.5*t,.7*t),"part=1;shape=mxgraph.mscae.enterprise.document;fillColor=#e6e6e6;opacity=50;strokeColor=none;");
break;case "SMForm":q=new mxCell("",new mxGeometry(.5*u-.4*t,.15*t,.8*t,.7*t),"part=1;shape=mxgraph.office.concepts.form;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMGame":q=new mxCell("",new mxGeometry(.5*u-.4*t,.2*t,.8*t,.6*t),"part=1;shape=mxgraph.mscae.general.game_controller;fillColor=#e6e6e6;opacity=50;strokeColor=none;");break;case "SMUpload":q=new mxCell("",new mxGeometry(.5*u-.4*t,.2*t,.8*t,.6*t),"part=1;shape=mxgraph.mscae.enterprise.backup_online;fillColor=#e6e6e6;opacity=50;strokeColor=none;")}q.vertex=
-!0;v.insert(q);q.value=f(g.Text);q.style+=b(g,z);v.style+=a(v.style,g,l,v);break;case "UMLMultiplicityBlock":v.style+="strokeColor=none;fillColor=none;";q=new mxCell("",new mxGeometry(.1*u,0,.9*u,.9*t),"part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);y=new mxCell("",new mxGeometry(0,.1*t,.9*u,.9*t),"part=1;");y.vertex=!0;v.insert(y);y.value=f(g.Text);y.style+=b(g.Text,z);y.style+=a(y.style,g,l,y,z);break;case "UMLConstraintBlock":var Ob=new mxCell("",new mxGeometry(0,0,.25*t,t),"shape=curlyBracket;rounded=1;");
-Ob.vertex=!0;v.insert(Ob);var Pb=new mxCell("",new mxGeometry(u-.25*t,0,.25*t,t),"shape=curlyBracket;rounded=1;flipH=1;");Pb.vertex=!0;v.insert(Pb);ia=new mxCell("",new mxGeometry(.25*t,0,u-.5*t,t),"strokeColor=none;fillColor=none;");ia.vertex=!0;ia.value=f(g);v.insert(ia);v.style="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,l,v);Ob.style+=S(g,l,Ob);Pb.style+=S(g,l,Pb);ia.style+=x(g,ia);Ob.style+=a(Ob.style,g,l,Ob);Pb.style+=a(Pb.style,g,l,Pb);ia.style+=a(ia.style,g,l,ia,z);break;case "UMLTextBlock":v.value=
-f(g.Text);v.style+="strokeColor=none;"+b(g.Text,z);v.style+=a(v.style,g,l,v,z);break;case "UMLProvidedInterfaceBlock":case "UMLProvidedInterfaceBlockV2":Da=aa(g,l,v);g.Rotatio=null;var jb=a(v.style,g,l,v,z);-1==jb.indexOf(mxConstants.STYLE_STROKEWIDTH)&&(jb=mxConstants.STYLE_STROKEWIDTH+"=1;"+jb);v.style="group;dropTarget=0;"+Da;var wd=.8*u,Nd=u-wd,gc=new mxCell("",new mxGeometry(.2,0,wd,t),"shape=ellipse;"+jb);gc.vertex=!0;gc.geometry.relative=!0;v.insert(gc);ka=new mxCell("",new mxGeometry(0,.5,
-Nd,1),"line;"+jb);ka.geometry.relative=!0;ka.vertex=!0;v.insert(ka);break;case "UMLComponentBoxBlock":case "UMLComponentBoxBlockV2":v.value=f(g);v.style="html=1;dropTarget=0;"+a(v.style,g,l,v,z);var Ea=new mxCell("",new mxGeometry(1,0,15,15),"shape=component;jettyWidth=8;jettyHeight=4;");Ea.geometry.relative=!0;Ea.geometry.offset=new mxPoint(-20,5);Ea.vertex=!0;v.insert(Ea);break;case "UMLAssemblyConnectorBlock":case "UMLAssemblyConnectorBlockV2":Da=aa(g,l,v);g.Rotatio=null;jb=a(v.style,g,l,v,z);
--1==jb.indexOf(mxConstants.STYLE_STROKEWIDTH)&&(jb=mxConstants.STYLE_STROKEWIDTH+"=1;"+jb);v.style="group;dropTarget=0;"+Da;var we=.225*u,xe=.1*u,wd=u-we-xe,gc=new mxCell("",new mxGeometry(.225,0,wd,t),"shape=providedRequiredInterface;verticalLabelPosition=bottom;"+jb);gc.vertex=!0;gc.geometry.relative=!0;v.insert(gc);Ra=new mxCell("",new mxGeometry(0,.5,we,1),"line;"+jb);Ra.geometry.relative=!0;Ra.vertex=!0;v.insert(Ra);Sa=new mxCell("",new mxGeometry(.9,.5,xe,1),"line;"+jb);Sa.geometry.relative=
-!0;Sa.vertex=!0;v.insert(Sa);break;case "BPMNActivity":v.value=f(g.Text);switch(g.bpmnActivityType){case 1:v.style+=b(g.Text,z);break;case 2:v.style+="shape=ext;double=1;"+b(g.Text,z);break;case 3:v.style+="shape=ext;dashed=1;dashPattern=2 5;"+b(g.Text,z);break;case 4:v.style+="shape=ext;strokeWidth=2;"+b(g.Text,z)}if(0!=g.bpmnTaskType){switch(g.bpmnTaskType){case 1:q=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;");q.geometry.offset=new mxPoint(4,7);break;case 2:q=new mxCell("",new mxGeometry(0,
+!0;v.insert(q);q.value=f(g.Text);q.style+=b(g,z);v.style+=a(v.style,g,k,v);break;case "UMLMultiplicityBlock":v.style+="strokeColor=none;fillColor=none;";q=new mxCell("",new mxGeometry(.1*u,0,.9*u,.9*t),"part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);x=new mxCell("",new mxGeometry(0,.1*t,.9*u,.9*t),"part=1;");x.vertex=!0;v.insert(x);x.value=f(g.Text);x.style+=b(g.Text,z);x.style+=a(x.style,g,k,x,z);break;case "UMLConstraintBlock":var Nb=new mxCell("",new mxGeometry(0,0,.25*t,t),"shape=curlyBracket;rounded=1;");
+Nb.vertex=!0;v.insert(Nb);var Ob=new mxCell("",new mxGeometry(u-.25*t,0,.25*t,t),"shape=curlyBracket;rounded=1;flipH=1;");Ob.vertex=!0;v.insert(Ob);ja=new mxCell("",new mxGeometry(.25*t,0,u-.5*t,t),"strokeColor=none;fillColor=none;");ja.vertex=!0;ja.value=f(g);v.insert(ja);v.style="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,k,v);Nb.style+=S(g,k,Nb);Ob.style+=S(g,k,Ob);ja.style+=w(g,ja);Nb.style+=a(Nb.style,g,k,Nb);Ob.style+=a(Ob.style,g,k,Ob);ja.style+=a(ja.style,g,k,ja,z);break;case "UMLTextBlock":v.value=
+f(g.Text);v.style+="strokeColor=none;"+b(g.Text,z);v.style+=a(v.style,g,k,v,z);break;case "UMLProvidedInterfaceBlock":case "UMLProvidedInterfaceBlockV2":Da=aa(g,k,v);g.Rotatio=null;var hb=a(v.style,g,k,v,z);-1==hb.indexOf(mxConstants.STYLE_STROKEWIDTH)&&(hb=mxConstants.STYLE_STROKEWIDTH+"=1;"+hb);v.style="group;dropTarget=0;"+Da;var xd=.8*u,Pd=u-xd,ic=new mxCell("",new mxGeometry(.2,0,xd,t),"shape=ellipse;"+hb);ic.vertex=!0;ic.geometry.relative=!0;v.insert(ic);ia=new mxCell("",new mxGeometry(0,.5,
+Pd,1),"line;"+hb);ia.geometry.relative=!0;ia.vertex=!0;v.insert(ia);break;case "UMLComponentBoxBlock":case "UMLComponentBoxBlockV2":v.value=f(g);v.style="html=1;dropTarget=0;"+a(v.style,g,k,v,z);var Ea=new mxCell("",new mxGeometry(1,0,15,15),"shape=component;jettyWidth=8;jettyHeight=4;");Ea.geometry.relative=!0;Ea.geometry.offset=new mxPoint(-20,5);Ea.vertex=!0;v.insert(Ea);break;case "UMLAssemblyConnectorBlock":case "UMLAssemblyConnectorBlockV2":Da=aa(g,k,v);g.Rotatio=null;hb=a(v.style,g,k,v,z);
+-1==hb.indexOf(mxConstants.STYLE_STROKEWIDTH)&&(hb=mxConstants.STYLE_STROKEWIDTH+"=1;"+hb);v.style="group;dropTarget=0;"+Da;var ye=.225*u,ze=.1*u,xd=u-ye-ze,ic=new mxCell("",new mxGeometry(.225,0,xd,t),"shape=providedRequiredInterface;verticalLabelPosition=bottom;"+hb);ic.vertex=!0;ic.geometry.relative=!0;v.insert(ic);Pa=new mxCell("",new mxGeometry(0,.5,ye,1),"line;"+hb);Pa.geometry.relative=!0;Pa.vertex=!0;v.insert(Pa);Qa=new mxCell("",new mxGeometry(.9,.5,ze,1),"line;"+hb);Qa.geometry.relative=
+!0;Qa.vertex=!0;v.insert(Qa);break;case "BPMNActivity":v.value=f(g.Text);switch(g.bpmnActivityType){case 1:v.style+=b(g.Text,z);break;case 2:v.style+="shape=ext;double=1;"+b(g.Text,z);break;case 3:v.style+="shape=ext;dashed=1;dashPattern=2 5;"+b(g.Text,z);break;case 4:v.style+="shape=ext;strokeWidth=2;"+b(g.Text,z)}if(0!=g.bpmnTaskType){switch(g.bpmnTaskType){case 1:q=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;");q.geometry.offset=new mxPoint(4,7);break;case 2:q=new mxCell("",new mxGeometry(0,
0,19,12),"shape=message;");q.geometry.offset=new mxPoint(4,7);break;case 3:q=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.user_task;");q.geometry.offset=new mxPoint(4,5);break;case 4:q=new mxCell("",new mxGeometry(0,0,15,10),"shape=mxgraph.bpmn.manual_task;");q.geometry.offset=new mxPoint(4,7);break;case 5:q=new mxCell("",new mxGeometry(0,0,18,13),"shape=mxgraph.bpmn.business_rule_task;");q.geometry.offset=new mxPoint(4,7);break;case 6:q=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.service_task;");
-q.geometry.offset=new mxPoint(4,5);break;case 7:q=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.script_task;"),q.geometry.offset=new mxPoint(4,5)}if(1==g.bpmnTaskType){var hc=X(g,l),J=H(g,l),J=J.replace("strokeColor","fillColor"),hc=hc.replace("fillColor","strokeColor");""==J&&(J="fillColor=#000000;");""==hc&&(hc="strokeColor=#ffffff;");q.style+=hc+J+"part=1;"}else q.style+=X(g,l)+H(g,l)+"part=1;";q.geometry.relative=!0;q.vertex=!0;v.insert(q)}var fd=0;0!=g.bpmnActivityMarker1&&fd++;
-0!=g.bpmnActivityMarker2&&fd++;var Ua=0;1==fd?Ua=-7.5:2==fd&&(Ua=-19);if(0!=g.bpmnActivityMarker1){switch(g.bpmnActivityMarker1){case 1:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;");q.geometry.offset=new mxPoint(Ua,-20);q.style+=X(g,l)+H(g,l);break;case 2:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");q.geometry.offset=new mxPoint(Ua,-20);q.style+=X(g,l)+H(g,l);break;case 3:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;part=1;");
-q.geometry.offset=new mxPoint(Ua,-20);q.style+=X(g,l)+H(g,l);break;case 4:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");q.geometry.offset=new mxPoint(Ua,-20);q.style+=X(g,l)+H(g,l);break;case 5:q=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;");q.geometry.offset=new mxPoint(Ua,-17);J=H(g,l);J=J.replace("strokeColor","fillColor");""==J&&(J="fillColor=#000000;");q.style+=J;break;case 6:q=new mxCell("",
-new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),q.geometry.offset=new mxPoint(Ua,-18),q.style+=X(g,l)+H(g,l)}q.geometry.relative=!0;q.vertex=!0;v.insert(q)}2==fd&&(Ua=5);if(0!=g.bpmnActivityMarker2){switch(g.bpmnActivityMarker2){case 1:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;");q.geometry.offset=new mxPoint(Ua,-20);q.style+=X(g,l)+H(g,l);break;case 2:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");q.geometry.offset=new mxPoint(Ua,
--20);q.style+=X(g,l)+H(g,l);break;case 3:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(Ua,-20);q.style+=X(g,l)+H(g,l);break;case 4:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");q.geometry.offset=new mxPoint(Ua,-20);q.style+=X(g,l)+H(g,l);break;case 5:q=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;");q.geometry.offset=new mxPoint(Ua,-17);J=H(g,
-l);J=J.replace("strokeColor","fillColor");""==J&&(J="fillColor=#000000;");q.style+=J;break;case 6:q=new mxCell("",new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),q.geometry.offset=new mxPoint(Ua,-18),q.style+=X(g,l)+H(g,l)}q.geometry.relative=!0;q.vertex=!0;v.insert(q)}v.style+=a(v.style,g,l,v);break;case "BPMNEvent":v.style+="shape=mxgraph.bpmn.shape;verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);if(1==g.bpmnDashed)switch(g.bpmnEventGroup){case 0:v.style+=
+q.geometry.offset=new mxPoint(4,5);break;case 7:q=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.script_task;"),q.geometry.offset=new mxPoint(4,5)}if(1==g.bpmnTaskType){var jc=X(g,k),J=H(g,k),J=J.replace("strokeColor","fillColor"),jc=jc.replace("fillColor","strokeColor");""==J&&(J="fillColor=#000000;");""==jc&&(jc="strokeColor=#ffffff;");q.style+=jc+J+"part=1;"}else q.style+=X(g,k)+H(g,k)+"part=1;";q.geometry.relative=!0;q.vertex=!0;v.insert(q)}var hd=0;0!=g.bpmnActivityMarker1&&hd++;
+0!=g.bpmnActivityMarker2&&hd++;var Sa=0;1==hd?Sa=-7.5:2==hd&&(Sa=-19);if(0!=g.bpmnActivityMarker1){switch(g.bpmnActivityMarker1){case 1:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;");q.geometry.offset=new mxPoint(Sa,-20);q.style+=X(g,k)+H(g,k);break;case 2:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");q.geometry.offset=new mxPoint(Sa,-20);q.style+=X(g,k)+H(g,k);break;case 3:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;part=1;");
+q.geometry.offset=new mxPoint(Sa,-20);q.style+=X(g,k)+H(g,k);break;case 4:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");q.geometry.offset=new mxPoint(Sa,-20);q.style+=X(g,k)+H(g,k);break;case 5:q=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;");q.geometry.offset=new mxPoint(Sa,-17);J=H(g,k);J=J.replace("strokeColor","fillColor");""==J&&(J="fillColor=#000000;");q.style+=J;break;case 6:q=new mxCell("",
+new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),q.geometry.offset=new mxPoint(Sa,-18),q.style+=X(g,k)+H(g,k)}q.geometry.relative=!0;q.vertex=!0;v.insert(q)}2==hd&&(Sa=5);if(0!=g.bpmnActivityMarker2){switch(g.bpmnActivityMarker2){case 1:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;");q.geometry.offset=new mxPoint(Sa,-20);q.style+=X(g,k)+H(g,k);break;case 2:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");q.geometry.offset=new mxPoint(Sa,
+-20);q.style+=X(g,k)+H(g,k);break;case 3:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(Sa,-20);q.style+=X(g,k)+H(g,k);break;case 4:q=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");q.geometry.offset=new mxPoint(Sa,-20);q.style+=X(g,k)+H(g,k);break;case 5:q=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;");q.geometry.offset=new mxPoint(Sa,-17);J=H(g,
+k);J=J.replace("strokeColor","fillColor");""==J&&(J="fillColor=#000000;");q.style+=J;break;case 6:q=new mxCell("",new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),q.geometry.offset=new mxPoint(Sa,-18),q.style+=X(g,k)+H(g,k)}q.geometry.relative=!0;q.vertex=!0;v.insert(q)}v.style+=a(v.style,g,k,v);break;case "BPMNEvent":v.style+="shape=mxgraph.bpmn.shape;verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);if(1==g.bpmnDashed)switch(g.bpmnEventGroup){case 0:v.style+=
"outline=eventNonint;";break;case 1:v.style+="outline=boundNonint;";break;case 2:v.style+="outline=end;"}else switch(g.bpmnEventGroup){case 0:v.style+="outline=standard;";break;case 1:v.style+="outline=throwing;";break;case 2:v.style+="outline=end;"}switch(g.bpmnEventType){case 1:v.style+="symbol=message;";break;case 2:v.style+="symbol=timer;";break;case 3:v.style+="symbol=escalation;";break;case 4:v.style+="symbol=conditional;";break;case 5:v.style+="symbol=link;";break;case 6:v.style+="symbol=error;";
-break;case 7:v.style+="symbol=cancel;";break;case 8:v.style+="symbol=compensation;";break;case 9:v.style+="symbol=signal;";break;case 10:v.style+="symbol=multiple;";break;case 11:v.style+="symbol=parallelMultiple;";break;case 12:v.style+="symbol=terminate;"}v.style+=a(v.style,g,l,v,z);break;case "BPMNChoreography":try{var Q=la(g.FillColor),Od=Sd(Q,.75),Vb=h(g.Name).match(/\d+/),va=Math.max(mxUtils.getSizeForString(g.Name.t,Vb?Vb[0]:"13",null,u-10).height,24),Q="swimlaneFillColor="+Od+";";v.value=
-f(g.Name);v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;"+Q+"startSize="+va+";spacingLeft=3;spacingRight=3;fontStyle=0;"+b(g.Name,z);v.style+=a(v.style,g,l,v,z);var kb=va,Vb=h(g.TaskName).match(/\d+/),Db=g.TaskHeight?.75*g.TaskHeight:Math.max(mxUtils.getSizeForString(g.TaskName.t,Vb?Vb[0]:"13",null,u-10).height+15,24),Qb=new mxCell("",new mxGeometry(0,kb,u,Db),"part=1;html=1;resizeHeight=0;spacingTop=-1;spacingLeft=3;spacingRight=3;");
-Qb.value=f(g.TaskName);Qb.vertex=!0;v.insert(Qb);Qb.style+=b(g.TaskName,z);Qb.style+=a(Qb.style,g,l,Qb,z);kb+=Db;I=[];for(m=0;m<g.Fields;m++){var xd=g["Participant"+(m+1)],Vb=h(xd).match(/\d+/),Db=Math.max(mxUtils.getSizeForString(xd.t,Vb?Vb[0]:"13",null,u-10).height,24);I[m]=new mxCell("",new mxGeometry(0,kb,u,Db),"part=1;html=1;resizeHeight=0;fillColor=none;spacingTop=-1;spacingLeft=3;spacingRight=3;");kb+=Db;I[m].vertex=!0;v.insert(I[m]);I[m].style+=b(xd,z);I[m].style+=a(I[m].style,g,l,I[m],z);
-I[m].value=f(xd)}}catch(fb){console.log(fb)}break;case "BPMNConversation":v.style+="shape=hexagon;perimeter=hexagonPerimeter2;";v.value=f(g.Text);v.style=0==g.bpmnConversationType?v.style+$a(g):v.style+"strokeWidth=2;";g.bpmnIsSubConversation&&(q=new mxCell("",new mxGeometry(.5,1,12,12),"shape=plus;part=1;"),q.geometry.offset=new mxPoint(-6,-17),q.style+=X(g,l)+H(g,l),q.geometry.relative=!0,q.vertex=!0,v.insert(q));v.style+=a(v.style,g,l,v,z);break;case "BPMNGateway":v.style+="shape=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;verticalLabelPosition=bottom;verticalAlign=top;";
-switch(g.bpmnGatewayType){case 0:v.style+="outline=none;symbol=general;";break;case 1:v.style+="outline=none;symbol=exclusiveGw;";break;case 2:v.style+="outline=catching;symbol=multiple;";break;case 3:v.style+="outline=none;symbol=parallelGw;";break;case 4:v.style+="outline=end;symbol=general;";break;case 5:v.style+="outline=standard;symbol=multiple;";break;case 6:v.style+="outline=none;symbol=complexGw;";break;case 7:v.style+="outline=standard;symbol=parallelMultiple;"}v.style+=a(v.style,g,l,v);
-v.value=f(g.Text);v.style+=b(g,z);break;case "BPMNData":v.style+="shape=note;size=14;";switch(g.bpmnDataType){case 1:q=new mxCell("",new mxGeometry(.5,1,12,10),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(-6,-15);q.style+=X(g,l)+H(g,l);q.geometry.relative=!0;q.vertex=!0;v.insert(q);break;case 2:q=new mxCell("",new mxGeometry(0,0,12,10),"shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;");q.geometry.offset=new mxPoint(3,3);q.style+=X(g,l)+H(g,l);q.geometry.relative=!0;q.vertex=
-!0;v.insert(q);v.style+="verticalLabelPosition=bottom;verticalAlign=top;";W=new mxCell("",new mxGeometry(0,0,u,20),"strokeColor=none;fillColor=none;");W.geometry.offset=new mxPoint(0,14);W.geometry.relative=!0;W.vertex=!0;v.insert(W);W.value=f(g.Text);W.style+=b(g,z);break;case 3:q=new mxCell("",new mxGeometry(0,0,12,10),"shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;"),q.geometry.offset=new mxPoint(3,3),q.style+=H(g,l),q.geometry.relative=!0,q.vertex=!0,v.insert(q),J=H(g,l),J=J.replace("strokeColor",
-"fillColor"),""==J&&(J="fillColor=#000000;"),q.style+=J,W=new mxCell("",new mxGeometry(0,0,u,20),"strokeColor=none;fillColor=none;"),W.geometry.offset=new mxPoint(0,14),W.geometry.relative=!0,W.vertex=!0,v.insert(W),W.value=f(g.Text),W.style+=b(g,z)}v.style+=a(v.style,g,l,v);break;case "BPMNBlackPool":v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(0,0,u,t),"fillColor=#000000;strokeColor=none;opacity=30;");q.vertex=!0;v.insert(q);break;case "DFDExternalEntityBlock":v.style+=
-"strokeColor=none;fillColor=none;";v.style+=a(v.style,g,l,v);q=new mxCell("",new mxGeometry(0,0,.95*u,.95*t),"part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);y=new mxCell("",new mxGeometry(.05*u,.05*t,.95*u,.95*t),"part=1;");y.vertex=!0;v.insert(y);y.value=f(g.Text);y.style+=b(g.Text,z);y.style+=a(y.style,g,l,y,z);break;case "GSDFDDataStoreBlock":v.value=f(g.Text);v.style+="shape=partialRectangle;right=0;"+b(g.Text,z);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(0,0,.2*u,
-t),"part=1;");q.vertex=!0;v.insert(q);q.value=f(g.Number);q.style+=b(g.Number,z);q.style+=a(q.style,g,l,q,z);break;case "DefaultTableBlock":try{for(var $b=g.RowHeights.length,ac=g.ColWidths.length,yd=[],gd=[],m=0;m<$b;m++)yd[m]=.75*g.RowHeights[m];for(P=0;P<ac;P++)gd[P]=.75*g.ColWidths[P];v.style="group;dropTarget=0;";var Xd=g.BandedColor1,Yd=g.BandedColor2,Pd=g.BandedRows,ye=g.BandedCols,zd=g.HideH,Qd=g.HideV,ze=g.TextVAlign,Ae=g.FillColor,Be=g.StrokeStyle;delete g.StrokeStyle;for(var Rd=ta(Ae,"fillOpacity"),
-Ce=g.LineColor,cf=ta(Ce,"strokeOpacity"),A=0,hd={},m=0;m<$b;m++){k=0;t=yd[m];for(P=0;P<ac;P++){var ab=m+","+P;if(hd[ab])k+=gd[P];else{for(var Ba=g["CellFill_"+ab],Zd=g["NoBand_"+ab],Ad=g["CellSize_"+ab],Eb=g["Cell_"+ab],De=g["Cell_"+ab+"_VAlign"],df=g["Cell_"+ab+"_TRotation"],ef=g["CellBorderWidthH_"+ab],ff=g["CellBorderColorH_"+ab],gf=g["CellBorderStrokeStyleH_"+ab],hf=g["CellBorderWidthV_"+ab],jf=g["CellBorderColorV_"+ab],kf=g["CellBorderStrokeStyleV_"+ab],Ee=zd?jf:ff,Fe=ta(Ee,"strokeOpacity"),
-Ge=zd?hf:ef,ic=zd?kf:gf,Ba=Pd&&!Zd?0==m%2?Xd:ye&&!Zd?0==P%2?Xd:Yd:Yd:ye&&!Zd?0==P%2?Xd:Yd:Ba,lf=ta(Ba,"fillOpacity")||Rd,u=gd[P],He=t,uc=u,bb=m+1;bb<m+Ad.h;bb++)if(null!=yd[bb]){He+=yd[bb];hd[bb+","+P]=!0;for(var jc=P+1;jc<P+Ad.w;jc++)hd[bb+","+jc]=!0}for(bb=P+1;bb<P+Ad.w;bb++)if(null!=gd[bb])for(uc+=gd[bb],hd[m+","+bb]=!0,jc=m+1;jc<m+Ad.h;jc++)hd[jc+","+bb]=!0;var R=new mxCell("",new mxGeometry(k,A,uc,He),"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;"+(Qd?"left=0;right=0;":"")+(zd?
-"top=0;bottom=0;":"")+X({FillColor:Ba||Ae})+nb(mxConstants.STYLE_STROKECOLOR,la(Ee),la(Ce))+(null!=Ge?nb(mxConstants.STYLE_STROKEWIDTH,Math.round(.75*parseFloat(Ge)),"1"):"")+(Fe?Fe:cf)+lf+"verticalAlign="+(De?De:ze?ze:"middle")+";"+rc({StrokeStyle:ic?ic:Be?Be:"solid"})+(df?"horizontal=0;":""));R.vertex=!0;R.value=f(Eb);R.style+=a(R.style,g,l,R,z)+(z?"fontSize=13;":h(Eb)+x(Eb)+w(Eb)+B(Eb,R)+E(Eb)+C(Eb)+F(Eb)+D(Eb))+K(Eb)+Z(Eb);v.insert(R);k+=u}}A+=t}}catch(fb){console.log(fb)}break;case "VSMDedicatedProcessBlock":case "VSMProductionControlBlock":v.style+=
-"shape=mxgraph.lean_mapping.manufacturing_process;spacingTop=15;";"VSMDedicatedProcessBlock"==c.Class?v.value=f(g.Text):"VSMProductionControlBlock"==c.Class&&(v.value=f(g.Resources));v.style+=a(v.style,g,l,v,z);"VSMDedicatedProcessBlock"==c.Class&&(q=new mxCell("",new mxGeometry(0,1,11,9),"part=1;shape=mxgraph.lean_mapping.operator;"),q.geometry.relative=!0,q.geometry.offset=new mxPoint(4,-13),q.vertex=!0,v.insert(q),q.style+=a(q.style,g,l,q));W=new mxCell("",new mxGeometry(0,0,u,15),"strokeColor=none;fillColor=none;part=1;");
-W.vertex=!0;v.insert(W);W.value=f(g.Title);W.style+=b(g.Title,z);g.Text=null;break;case "VSMSharedProcessBlock":v.style+="shape=mxgraph.lean_mapping.manufacturing_process_shared;spacingTop=-5;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);W=new mxCell("",new mxGeometry(.1*u,.3*t,.8*u,.6*t),"part=1;");W.vertex=!0;v.insert(W);W.value=f(g.Resource);W.style+=b(g.Resource,z);W.style+=a(W.style,g,l,W,z);break;case "VSMWorkcellBlock":v.style+="shape=mxgraph.lean_mapping.work_cell;verticalAlign=top;spacingTop=-2;";
-v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);break;case "VSMSafetyBufferStockBlock":case "VSMDatacellBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,l,v);Na=t;pb=parseInt(g.Cells);Q=a("part=1;",g,l,v);0<pb&&(Na/=pb);I=[];ka=[];for(m=1;m<=pb;m++)I[m]=new mxCell("",new mxGeometry(0,(m-1)*Na,u,Na),Q),I[m].vertex=!0,v.insert(I[m]),I[m].value=f(g["cell_"+m]),I[m].style+=b(g["cell_"+m],z);break;case "VSMInventoryBlock":v.style+="shape=mxgraph.lean_mapping.inventory_box;verticalLabelPosition=bottom;verticalAlign=top;";
-v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);break;case "VSMSupermarketBlock":v.style+="strokeColor=none;";v.style+=a(v.style,g,l,v);Na=t;pb=parseInt(g.Cells);Q=a("part=1;fillColor=none;",g,l,v);0<pb&&(Na/=pb);I=[];ib=[];for(m=1;m<=pb;m++)I[m]=new mxCell("",new mxGeometry(.5*u,(m-1)*Na,.5*u,Na),"shape=partialRectangle;left=0;"+Q),I[m].vertex=!0,v.insert(I[m]),ib[m]=new mxCell("",new mxGeometry(0,(m-1)*Na,u,Na),"strokeColor=none;fillColor=none;part=1;"),ib[m].vertex=!0,v.insert(ib[m]),ib[m].value=
-f(g["cell_"+m]),ib[m].style+=b(g["cell_"+m],z);break;case "VSMFIFOLaneBlock":v.style+="shape=mxgraph.lean_mapping.fifo_sequence_flow;fontStyle=0;fontSize=18";v.style+=a(v.style,g,l,v);v.value="FIFO";break;case "VSMGoSeeProductionBlock":v.style+="shape=ellipse;perimeter=ellipsePerimeter;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(.17*u,.2*t,13,6),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;");q.vertex=!0;v.insert(q);
-q.style+=a(q.style,g,l,q);break;case "VSMProductionKanbanBatchBlock":v.style+="strokeColor=none;fillColor=none;";Q="shape=card;size=18;flipH=1;part=1;";q=new mxCell("",new mxGeometry(.1*u,0,.9*u,.8*t),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;"+Q);q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);y=new mxCell("",new mxGeometry(.05*u,.1*t,.9*u,.8*t),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;"+Q);y.vertex=!0;v.insert(y);y.style+=a(y.style,
-g,l,y);var G=new mxCell("",new mxGeometry(0,.2*t,.9*u,.8*t),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;spacing=2;"+Q);G.vertex=!0;v.insert(G);G.value=f(g.Text);G.style+=a(G.style,g,l,G,z);break;case "VSMElectronicInformationArrow":v.style="group;";v.value=f(g.Title);v.style+=b(g.Title,z);var U=new mxCell("",new mxGeometry(0,0,u,t),"shape=mxgraph.lean_mapping.electronic_info_flow_edge;html=1;entryX=0;entryY=1;exitX=1;exitY=0;");U.edge=!0;U.geometry.relative=
-1;e.addCell(U,v,null,v,v);break;case "AWSRoundedRectangleContainerBlock2":v.style+="strokeColor=none;fillColor=none;";g.Spotfleet?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,l,q,z),y=new mxCell("",new mxGeometry(0,0,35,40),"strokeColor=none;shape=mxgraph.aws3.spot_instance;fillColor=#f58536;"),
-y.geometry.relative=!0,y.geometry.offset=new mxPoint(30,0),y.vertex=!0,v.insert(y)):g.Beanstalk?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,l,q,z),y=new mxCell("",new mxGeometry(0,0,30,40),"strokeColor=none;shape=mxgraph.aws3.elastic_beanstalk;fillColor=#759C3E;"),
-y.geometry.relative=!0,y.geometry.offset=new mxPoint(30,0),y.vertex=!0,v.insert(y)):g.EC2?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,l,q,z),y=new mxCell("",new mxGeometry(0,0,32,40),"strokeColor=none;shape=mxgraph.aws3.ec2;fillColor=#F58534;"),y.geometry.relative=
-!0,y.geometry.offset=new mxPoint(30,0),y.vertex=!0,v.insert(y)):g.Subnet?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,l,q,z),y=new mxCell("",new mxGeometry(0,0,32,40),"strokeColor=none;shape=mxgraph.aws3.permissions;fillColor=#146EB4;"),y.geometry.relative=!0,y.geometry.offset=
-new mxPoint(30,0),y.vertex=!0,v.insert(y)):g.VPC?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,l,q,z),y=new mxCell("",new mxGeometry(0,0,60,40),"strokeColor=none;shape=mxgraph.aws3.virtual_private_cloud;fillColor=#146EB4;"),y.geometry.relative=!0,y.geometry.offset=new mxPoint(30,
-0),y.vertex=!0,v.insert(y)):g.AWS?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,l,q,z),y=new mxCell("",new mxGeometry(0,0,60,40),"strokeColor=none;shape=mxgraph.aws3.cloud;fillColor=#F58534;"),y.geometry.relative=!0,y.geometry.offset=new mxPoint(30,0),y.vertex=!0,v.insert(y)):
-g.Corporate?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,l,q,z),y=new mxCell("",new mxGeometry(0,0,25,40),"strokeColor=none;shape=mxgraph.aws3.corporate_data_center;fillColor=#7D7C7C;"),y.geometry.relative=!0,y.geometry.offset=new mxPoint(30,0),y.vertex=!0,v.insert(y)):
-(v.style="resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;",v.value=f(g.Title),v.style+=a(v.style,g,l,v,z));break;case "AWSElasticComputeCloudBlock2":v.style+="strokeColor=none;shape=mxgraph.aws3.ec2;verticalLabelPosition=bottom;align=center;verticalAlign=top;";v.value=f(g.Title);v.style+=a(v.style,g,l,v,z);break;case "AWSRoute53Block2":v.style+="strokeColor=none;shape=mxgraph.aws3.route_53;verticalLabelPosition=bottom;align=center;verticalAlign=top;";
-v.value=f(g.Title);v.style+=a(v.style,g,l,v,z);break;case "AWSRDBSBlock2":v.style+="strokeColor=none;shape=mxgraph.aws3.rds;verticalLabelPosition=bottom;align=center;verticalAlign=top;";v.value=f(g.Title);v.style+=a(v.style,g,l,v,z);break;case "NET_RingNetwork":v.style+="strokeColor=none;fillColor=none;";R=new mxCell("",new mxGeometry(.25*u,.25*t,.5*u,.5*t),"ellipse;html=1;strokeColor=#29AAE1;strokeWidth=2;");R.vertex=!0;v.insert(R);var ga=[R];R.style+=X(g,l);U=new mxCell("",new mxGeometry(0,0,0,
-0),"edgeStyle=none;rounded=0;endArrow=none;dashed=0;html=1;strokeColor=#29AAE1;strokeWidth=2;");U.geometry.relative=!0;U.edge=!0;Fb(.5*u,0,U,d,e,ga,v,R);Fb(.855*u,.145*t,U,d,e,ga,v,R);Fb(u,.5*t,U,d,e,ga,v,R);Fb(.855*u,.855*t,U,d,e,ga,v,R);Fb(.5*u,t,U,d,e,ga,v,R);Fb(.145*u,.855*t,U,d,e,ga,v,R);Fb(0,.5*t,U,d,e,ga,v,R);Fb(.145*u,.145*t,U,d,e,ga,v,R);break;case "NET_Ethernet":v.style+="strokeColor=none;fillColor=none;";R=new mxCell("",new mxGeometry(0,.5*t-10,u,20),"shape=mxgraph.networks.bus;gradientColor=none;gradientDirection=north;fontColor=#ffffff;perimeter=backbonePerimeter;backboneSize=20;fillColor=#29AAE1;strokeColor=#29AAE1;");
-R.vertex=!0;v.insert(R);ga=[R];U=new mxCell("",new mxGeometry(0,0,0,0),"strokeColor=#29AAE1;edgeStyle=none;rounded=0;endArrow=none;html=1;strokeWidth=2;");U.geometry.relative=!0;U.edge=!0;for(var ga=[R],id=u/g.NumTopNodes,m=0;m<g.NumTopNodes;m++)Fb(.5*id+m*id,0,U,d,e,ga,v,R);id=u/g.NumBottomNodes;for(m=0;m<g.NumBottomNodes;m++)Fb(.5*id+m*id,t,U,d,e,ga,v,R);break;case "EE_OpAmp":v.style+="shape=mxgraph.electrical.abstract.operational_amp_1;";v.value=f(g.Title);v.style+=a(v.style,g,l,v,z);g.ToggleCharge&&
-(v.style+="flipV=1;");break;case "EIMessageChannelBlock":case "EIDatatypeChannelBlock":case "EIInvalidMessageChannelBlock":case "EIDeadLetterChannelBlock":case "EIGuaranteedDeliveryBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);"EIMessageChannelBlock"==c.Class?(q=new mxCell("",new mxGeometry(.5,.5,.9*u,20),"shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(.45*-u,0)):"EIDatatypeChannelBlock"==
+break;case 7:v.style+="symbol=cancel;";break;case 8:v.style+="symbol=compensation;";break;case 9:v.style+="symbol=signal;";break;case 10:v.style+="symbol=multiple;";break;case 11:v.style+="symbol=parallelMultiple;";break;case 12:v.style+="symbol=terminate;"}v.style+=a(v.style,g,k,v,z);break;case "BPMNChoreography":try{var Q=ka(g.FillColor),Qd=Ud(Q,.75),Ub=h(g.Name).match(/\d+/),va=Math.max(mxUtils.getSizeForString(g.Name.t,Ub?Ub[0]:"13",null,u-10).height,24),Q="swimlaneFillColor="+Qd+";";v.value=
+f(g.Name);v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;"+Q+"startSize="+va+";spacingLeft=3;spacingRight=3;fontStyle=0;"+b(g.Name,z);v.style+=a(v.style,g,k,v,z);var ib=va,Ub=h(g.TaskName).match(/\d+/),Cb=g.TaskHeight?.75*g.TaskHeight:Math.max(mxUtils.getSizeForString(g.TaskName.t,Ub?Ub[0]:"13",null,u-10).height+15,24),Pb=new mxCell("",new mxGeometry(0,ib,u,Cb),"part=1;html=1;resizeHeight=0;spacingTop=-1;spacingLeft=3;spacingRight=3;");
+Pb.value=f(g.TaskName);Pb.vertex=!0;v.insert(Pb);Pb.style+=b(g.TaskName,z);Pb.style+=a(Pb.style,g,k,Pb,z);ib+=Cb;I=[];for(m=0;m<g.Fields;m++){var yd=g["Participant"+(m+1)],Ub=h(yd).match(/\d+/),Cb=Math.max(mxUtils.getSizeForString(yd.t,Ub?Ub[0]:"13",null,u-10).height,24);I[m]=new mxCell("",new mxGeometry(0,ib,u,Cb),"part=1;html=1;resizeHeight=0;fillColor=none;spacingTop=-1;spacingLeft=3;spacingRight=3;");ib+=Cb;I[m].vertex=!0;v.insert(I[m]);I[m].style+=b(yd,z);I[m].style+=a(I[m].style,g,k,I[m],z);
+I[m].value=f(yd)}}catch(db){console.log(db)}break;case "BPMNConversation":v.style+="shape=hexagon;perimeter=hexagonPerimeter2;";v.value=f(g.Text);v.style=0==g.bpmnConversationType?v.style+mb(g):v.style+"strokeWidth=2;";g.bpmnIsSubConversation&&(q=new mxCell("",new mxGeometry(.5,1,12,12),"shape=plus;part=1;"),q.geometry.offset=new mxPoint(-6,-17),q.style+=X(g,k)+H(g,k),q.geometry.relative=!0,q.vertex=!0,v.insert(q));v.style+=a(v.style,g,k,v,z);break;case "BPMNGateway":v.style+="shape=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;verticalLabelPosition=bottom;verticalAlign=top;";
+switch(g.bpmnGatewayType){case 0:v.style+="outline=none;symbol=general;";break;case 1:v.style+="outline=none;symbol=exclusiveGw;";break;case 2:v.style+="outline=catching;symbol=multiple;";break;case 3:v.style+="outline=none;symbol=parallelGw;";break;case 4:v.style+="outline=end;symbol=general;";break;case 5:v.style+="outline=standard;symbol=multiple;";break;case 6:v.style+="outline=none;symbol=complexGw;";break;case 7:v.style+="outline=standard;symbol=parallelMultiple;"}v.style+=a(v.style,g,k,v);
+v.value=f(g.Text);v.style+=b(g,z);break;case "BPMNData":v.style+="shape=note;size=14;";switch(g.bpmnDataType){case 1:q=new mxCell("",new mxGeometry(.5,1,12,10),"shape=parallelMarker;part=1;");q.geometry.offset=new mxPoint(-6,-15);q.style+=X(g,k)+H(g,k);q.geometry.relative=!0;q.vertex=!0;v.insert(q);break;case 2:q=new mxCell("",new mxGeometry(0,0,12,10),"shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;");q.geometry.offset=new mxPoint(3,3);q.style+=X(g,k)+H(g,k);q.geometry.relative=!0;q.vertex=
+!0;v.insert(q);v.style+="verticalLabelPosition=bottom;verticalAlign=top;";W=new mxCell("",new mxGeometry(0,0,u,20),"strokeColor=none;fillColor=none;");W.geometry.offset=new mxPoint(0,14);W.geometry.relative=!0;W.vertex=!0;v.insert(W);W.value=f(g.Text);W.style+=b(g,z);break;case 3:q=new mxCell("",new mxGeometry(0,0,12,10),"shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;"),q.geometry.offset=new mxPoint(3,3),q.style+=H(g,k),q.geometry.relative=!0,q.vertex=!0,v.insert(q),J=H(g,k),J=J.replace("strokeColor",
+"fillColor"),""==J&&(J="fillColor=#000000;"),q.style+=J,W=new mxCell("",new mxGeometry(0,0,u,20),"strokeColor=none;fillColor=none;"),W.geometry.offset=new mxPoint(0,14),W.geometry.relative=!0,W.vertex=!0,v.insert(W),W.value=f(g.Text),W.style+=b(g,z)}v.style+=a(v.style,g,k,v);break;case "BPMNBlackPool":v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(0,0,u,t),"fillColor=#000000;strokeColor=none;opacity=30;");q.vertex=!0;v.insert(q);break;case "DFDExternalEntityBlock":v.style+=
+"strokeColor=none;fillColor=none;";v.style+=a(v.style,g,k,v);q=new mxCell("",new mxGeometry(0,0,.95*u,.95*t),"part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);x=new mxCell("",new mxGeometry(.05*u,.05*t,.95*u,.95*t),"part=1;");x.vertex=!0;v.insert(x);x.value=f(g.Text);x.style+=b(g.Text,z);x.style+=a(x.style,g,k,x,z);break;case "GSDFDDataStoreBlock":v.value=f(g.Text);v.style+="shape=partialRectangle;right=0;"+b(g.Text,z);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(0,0,.2*u,
+t),"part=1;");q.vertex=!0;v.insert(q);q.value=f(g.Number);q.style+=b(g.Number,z);q.style+=a(q.style,g,k,q,z);break;case "DefaultTableBlock":try{for(var Zb=g.RowHeights.length,$b=g.ColWidths.length,zd=[],id=[],m=0;m<Zb;m++)zd[m]=.75*g.RowHeights[m];for(P=0;P<$b;P++)id[P]=.75*g.ColWidths[P];v.style="group;dropTarget=0;";var Zd=g.BandedColor1,$d=g.BandedColor2,Rd=g.BandedRows,Ae=g.BandedCols,Ad=g.HideH,Sd=g.HideV,Be=g.TextVAlign,Ce=g.FillColor,De=g.StrokeStyle;delete g.StrokeStyle;for(var Td=ta(Ce,"fillOpacity"),
+Ee=g.LineColor,df=ta(Ee,"strokeOpacity"),l=0,jd={},m=0;m<Zb;m++){A=0;t=zd[m];for(P=0;P<$b;P++){var Za=m+","+P;if(jd[Za])A+=id[P];else{for(var Ba=g["CellFill_"+Za],ae=g["NoBand_"+Za],Bd=g["CellSize_"+Za],Db=g["Cell_"+Za],Fe=g["Cell_"+Za+"_VAlign"],ef=g["Cell_"+Za+"_TRotation"],ff=g["CellBorderWidthH_"+Za],gf=g["CellBorderColorH_"+Za],hf=g["CellBorderStrokeStyleH_"+Za],jf=g["CellBorderWidthV_"+Za],kf=g["CellBorderColorV_"+Za],lf=g["CellBorderStrokeStyleV_"+Za],Ge=Ad?kf:gf,He=ta(Ge,"strokeOpacity"),
+Ie=Ad?jf:ff,kc=Ad?lf:hf,Ba=Rd&&!ae?0==m%2?Zd:Ae&&!ae?0==P%2?Zd:$d:$d:Ae&&!ae?0==P%2?Zd:$d:Ba,mf=ta(Ba,"fillOpacity")||Td,u=id[P],Je=t,wc=u,$a=m+1;$a<m+Bd.h;$a++)if(null!=zd[$a]){Je+=zd[$a];jd[$a+","+P]=!0;for(var lc=P+1;lc<P+Bd.w;lc++)jd[$a+","+lc]=!0}for($a=P+1;$a<P+Bd.w;$a++)if(null!=id[$a])for(wc+=id[$a],jd[m+","+$a]=!0,lc=m+1;lc<m+Bd.h;lc++)jd[lc+","+$a]=!0;var R=new mxCell("",new mxGeometry(A,l,wc,Je),"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;"+(Sd?"left=0;right=0;":"")+(Ad?
+"top=0;bottom=0;":"")+X({FillColor:Ba||Ce})+lb(mxConstants.STYLE_STROKECOLOR,ka(Ge),ka(Ee))+(null!=Ie?lb(mxConstants.STYLE_STROKEWIDTH,Math.round(.75*parseFloat(Ie)),"1"):"")+(He?He:df)+mf+"verticalAlign="+(Fe?Fe:Be?Be:"middle")+";"+tc({StrokeStyle:kc?kc:De?De:"solid"})+(ef?"horizontal=0;":""));R.vertex=!0;R.value=f(Db);R.style+=a(R.style,g,k,R,z)+(z?"fontSize=13;":h(Db)+w(Db)+y(Db)+C(Db,R)+E(Db)+B(Db)+F(Db)+D(Db))+K(Db)+Z(Db);v.insert(R);A+=u}}l+=t}}catch(db){console.log(db)}break;case "VSMDedicatedProcessBlock":case "VSMProductionControlBlock":v.style+=
+"shape=mxgraph.lean_mapping.manufacturing_process;spacingTop=15;";"VSMDedicatedProcessBlock"==c.Class?v.value=f(g.Text):"VSMProductionControlBlock"==c.Class&&(v.value=f(g.Resources));v.style+=a(v.style,g,k,v,z);"VSMDedicatedProcessBlock"==c.Class&&(q=new mxCell("",new mxGeometry(0,1,11,9),"part=1;shape=mxgraph.lean_mapping.operator;"),q.geometry.relative=!0,q.geometry.offset=new mxPoint(4,-13),q.vertex=!0,v.insert(q),q.style+=a(q.style,g,k,q));W=new mxCell("",new mxGeometry(0,0,u,15),"strokeColor=none;fillColor=none;part=1;");
+W.vertex=!0;v.insert(W);W.value=f(g.Title);W.style+=b(g.Title,z);g.Text=null;break;case "VSMSharedProcessBlock":v.style+="shape=mxgraph.lean_mapping.manufacturing_process_shared;spacingTop=-5;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);W=new mxCell("",new mxGeometry(.1*u,.3*t,.8*u,.6*t),"part=1;");W.vertex=!0;v.insert(W);W.value=f(g.Resource);W.style+=b(g.Resource,z);W.style+=a(W.style,g,k,W,z);break;case "VSMWorkcellBlock":v.style+="shape=mxgraph.lean_mapping.work_cell;verticalAlign=top;spacingTop=-2;";
+v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);break;case "VSMSafetyBufferStockBlock":case "VSMDatacellBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,k,v);La=t;ob=parseInt(g.Cells);Q=a("part=1;",g,k,v);0<ob&&(La/=ob);I=[];ia=[];for(m=1;m<=ob;m++)I[m]=new mxCell("",new mxGeometry(0,(m-1)*La,u,La),Q),I[m].vertex=!0,v.insert(I[m]),I[m].value=f(g["cell_"+m]),I[m].style+=b(g["cell_"+m],z);break;case "VSMInventoryBlock":v.style+="shape=mxgraph.lean_mapping.inventory_box;verticalLabelPosition=bottom;verticalAlign=top;";
+v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);break;case "VSMSupermarketBlock":v.style+="strokeColor=none;";v.style+=a(v.style,g,k,v);La=t;ob=parseInt(g.Cells);Q=a("part=1;fillColor=none;",g,k,v);0<ob&&(La/=ob);I=[];gb=[];for(m=1;m<=ob;m++)I[m]=new mxCell("",new mxGeometry(.5*u,(m-1)*La,.5*u,La),"shape=partialRectangle;left=0;"+Q),I[m].vertex=!0,v.insert(I[m]),gb[m]=new mxCell("",new mxGeometry(0,(m-1)*La,u,La),"strokeColor=none;fillColor=none;part=1;"),gb[m].vertex=!0,v.insert(gb[m]),gb[m].value=
+f(g["cell_"+m]),gb[m].style+=b(g["cell_"+m],z);break;case "VSMFIFOLaneBlock":v.style+="shape=mxgraph.lean_mapping.fifo_sequence_flow;fontStyle=0;fontSize=18";v.style+=a(v.style,g,k,v);v.value="FIFO";break;case "VSMGoSeeProductionBlock":v.style+="shape=ellipse;perimeter=ellipsePerimeter;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(.17*u,.2*t,13,6),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;");q.vertex=!0;v.insert(q);
+q.style+=a(q.style,g,k,q);break;case "VSMProductionKanbanBatchBlock":v.style+="strokeColor=none;fillColor=none;";Q="shape=card;size=18;flipH=1;part=1;";q=new mxCell("",new mxGeometry(.1*u,0,.9*u,.8*t),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;"+Q);q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);x=new mxCell("",new mxGeometry(.05*u,.1*t,.9*u,.8*t),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;"+Q);x.vertex=!0;v.insert(x);x.style+=a(x.style,
+g,k,x);var G=new mxCell("",new mxGeometry(0,.2*t,.9*u,.8*t),"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;spacing=2;"+Q);G.vertex=!0;v.insert(G);G.value=f(g.Text);G.style+=a(G.style,g,k,G,z);break;case "VSMElectronicInformationArrow":v.style="group;";v.value=f(g.Title);v.style+=b(g.Title,z);var U=new mxCell("",new mxGeometry(0,0,u,t),"shape=mxgraph.lean_mapping.electronic_info_flow_edge;html=1;entryX=0;entryY=1;exitX=1;exitY=0;");U.edge=!0;U.geometry.relative=
+1;e.addCell(U,v,null,v,v);break;case "AWSRoundedRectangleContainerBlock2":v.style+="strokeColor=none;fillColor=none;";g.Spotfleet?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,k,q,z),x=new mxCell("",new mxGeometry(0,0,35,40),"strokeColor=none;shape=mxgraph.aws3.spot_instance;fillColor=#f58536;"),
+x.geometry.relative=!0,x.geometry.offset=new mxPoint(30,0),x.vertex=!0,v.insert(x)):g.Beanstalk?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,k,q,z),x=new mxCell("",new mxGeometry(0,0,30,40),"strokeColor=none;shape=mxgraph.aws3.elastic_beanstalk;fillColor=#759C3E;"),
+x.geometry.relative=!0,x.geometry.offset=new mxPoint(30,0),x.vertex=!0,v.insert(x)):g.EC2?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,k,q,z),x=new mxCell("",new mxGeometry(0,0,32,40),"strokeColor=none;shape=mxgraph.aws3.ec2;fillColor=#F58534;"),x.geometry.relative=
+!0,x.geometry.offset=new mxPoint(30,0),x.vertex=!0,v.insert(x)):g.Subnet?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,k,q,z),x=new mxCell("",new mxGeometry(0,0,32,40),"strokeColor=none;shape=mxgraph.aws3.permissions;fillColor=#146EB4;"),x.geometry.relative=!0,x.geometry.offset=
+new mxPoint(30,0),x.vertex=!0,v.insert(x)):g.VPC?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,k,q,z),x=new mxCell("",new mxGeometry(0,0,60,40),"strokeColor=none;shape=mxgraph.aws3.virtual_private_cloud;fillColor=#146EB4;"),x.geometry.relative=!0,x.geometry.offset=new mxPoint(30,
+0),x.vertex=!0,v.insert(x)):g.AWS?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,k,q,z),x=new mxCell("",new mxGeometry(0,0,60,40),"strokeColor=none;shape=mxgraph.aws3.cloud;fillColor=#F58534;"),x.geometry.relative=!0,x.geometry.offset=new mxPoint(30,0),x.vertex=!0,v.insert(x)):
+g.Corporate?(q=new mxCell("",new mxGeometry(0,0,u,t-20),"resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;"),q.geometry.offset=new mxPoint(0,20),q.geometry.relative=!0,q.vertex=!0,v.insert(q),q.value=f(g.Title),q.style+=a(q.style,g,k,q,z),x=new mxCell("",new mxGeometry(0,0,25,40),"strokeColor=none;shape=mxgraph.aws3.corporate_data_center;fillColor=#7D7C7C;"),x.geometry.relative=!0,x.geometry.offset=new mxPoint(30,0),x.vertex=!0,v.insert(x)):
+(v.style="resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;",v.value=f(g.Title),v.style+=a(v.style,g,k,v,z));break;case "AWSElasticComputeCloudBlock2":v.style+="strokeColor=none;shape=mxgraph.aws3.ec2;verticalLabelPosition=bottom;align=center;verticalAlign=top;";v.value=f(g.Title);v.style+=a(v.style,g,k,v,z);break;case "AWSRoute53Block2":v.style+="strokeColor=none;shape=mxgraph.aws3.route_53;verticalLabelPosition=bottom;align=center;verticalAlign=top;";
+v.value=f(g.Title);v.style+=a(v.style,g,k,v,z);break;case "AWSRDBSBlock2":v.style+="strokeColor=none;shape=mxgraph.aws3.rds;verticalLabelPosition=bottom;align=center;verticalAlign=top;";v.value=f(g.Title);v.style+=a(v.style,g,k,v,z);break;case "NET_RingNetwork":v.style+="strokeColor=none;fillColor=none;";R=new mxCell("",new mxGeometry(.25*u,.25*t,.5*u,.5*t),"ellipse;html=1;strokeColor=#29AAE1;strokeWidth=2;");R.vertex=!0;v.insert(R);var fa=[R];R.style+=X(g,k);U=new mxCell("",new mxGeometry(0,0,0,
+0),"edgeStyle=none;rounded=0;endArrow=none;dashed=0;html=1;strokeColor=#29AAE1;strokeWidth=2;");U.geometry.relative=!0;U.edge=!0;Eb(.5*u,0,U,d,e,fa,v,R);Eb(.855*u,.145*t,U,d,e,fa,v,R);Eb(u,.5*t,U,d,e,fa,v,R);Eb(.855*u,.855*t,U,d,e,fa,v,R);Eb(.5*u,t,U,d,e,fa,v,R);Eb(.145*u,.855*t,U,d,e,fa,v,R);Eb(0,.5*t,U,d,e,fa,v,R);Eb(.145*u,.145*t,U,d,e,fa,v,R);break;case "NET_Ethernet":v.style+="strokeColor=none;fillColor=none;";R=new mxCell("",new mxGeometry(0,.5*t-10,u,20),"shape=mxgraph.networks.bus;gradientColor=none;gradientDirection=north;fontColor=#ffffff;perimeter=backbonePerimeter;backboneSize=20;fillColor=#29AAE1;strokeColor=#29AAE1;");
+R.vertex=!0;v.insert(R);fa=[R];U=new mxCell("",new mxGeometry(0,0,0,0),"strokeColor=#29AAE1;edgeStyle=none;rounded=0;endArrow=none;html=1;strokeWidth=2;");U.geometry.relative=!0;U.edge=!0;for(var fa=[R],kd=u/g.NumTopNodes,m=0;m<g.NumTopNodes;m++)Eb(.5*kd+m*kd,0,U,d,e,fa,v,R);kd=u/g.NumBottomNodes;for(m=0;m<g.NumBottomNodes;m++)Eb(.5*kd+m*kd,t,U,d,e,fa,v,R);break;case "EE_OpAmp":v.style+="shape=mxgraph.electrical.abstract.operational_amp_1;";v.value=f(g.Title);v.style+=a(v.style,g,k,v,z);g.ToggleCharge&&
+(v.style+="flipV=1;");break;case "EIMessageChannelBlock":case "EIDatatypeChannelBlock":case "EIInvalidMessageChannelBlock":case "EIDeadLetterChannelBlock":case "EIGuaranteedDeliveryBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);"EIMessageChannelBlock"==c.Class?(q=new mxCell("",new mxGeometry(.5,.5,.9*u,20),"shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(.45*-u,0)):"EIDatatypeChannelBlock"==
c.Class?(q=new mxCell("",new mxGeometry(.5,.5,.9*u,20),"shape=mxgraph.eip.dataChannel;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(.45*-u,0)):"EIInvalidMessageChannelBlock"==c.Class?(q=new mxCell("",new mxGeometry(.5,.5,.9*u,20),"shape=mxgraph.eip.invalidMessageChannel;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(.45*-u,0)):"EIDeadLetterChannelBlock"==c.Class?(q=new mxCell("",new mxGeometry(.5,.5,.9*u,20),"shape=mxgraph.eip.deadLetterChannel;fillColor=#818181;part=1;"),q.geometry.offset=
-new mxPoint(.45*-u,0)):"EIGuaranteedDeliveryBlock"==c.Class&&(q=new mxCell("",new mxGeometry(.5,.5,20,27),"shape=cylinder;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(-10,-7));q.geometry.relative=!0;q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);U=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");U.geometry.relative=!0;U.edge=!0;xa(.15*u,.25*t,.85*u,.25*t,U,d,e,ga,v,R);break;case "EIChannelAdapterBlock":v.style+=
-"verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(0,.07*t,.21*u,.86*t),"fillColor=#FFFF33;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);y=new mxCell("",new mxGeometry(.26*u,.09*t,.2*u,.82*t),"shape=mxgraph.eip.channel_adapter;fillColor=#4CA3D9;part=1;");y.vertex=!0;v.insert(y);y.style+=a(y.style,g,l,y);G=new mxCell("",new mxGeometry(1,.5,.35*u,20),"shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;");
-G.geometry.relative=!0;G.geometry.offset=new mxPoint(.4*-u,-10);G.vertex=!0;v.insert(G);G.style+=a(G.style,g,l,G);M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=none;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=2;");M.geometry.relative=!0;M.edge=!0;q.insertEdge(M,!0);y.insertEdge(M,!1);M.style+=H(g,l);d.push(e.addCell(M,null,null,null,null));L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=block;startArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=2;startFill=1;startSize=2;");
-L.geometry.relative=!0;L.edge=!0;y.insertEdge(L,!0);G.insertEdge(L,!1);d.push(e.addCell(L,null,null,null,null));break;case "EIMessageBlock":case "EICommandMessageBlock":case "EIDocumentMessageBlock":case "EIEventMessageBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(0,0,17,17),"ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);for(var jd=
-g.Messages,$d=(t-17)/jd,y=[],U=[],m=0;m<jd;m++){var kd=$d*(m+1)-3;y[m]=new mxCell("",new mxGeometry(u-20,kd,20,20),"part=1;");y[m].vertex=!0;v.insert(y[m]);switch(c.Class){case "EIMessageBlock":y[m].value=f(g["message_"+(m+1)]);y.style+=b(g["message_"+(m+1)],z);break;case "EICommandMessageBlock":y[m].value="C";y[m].style+="fontStyle=1;fontSize=13;";break;case "EIDocumentMessageBlock":y[m].value="D";y[m].style+="fontStyle=1;fontSize=13;";break;case "EIEventMessageBlock":y[m].value="E",y[m].style+=
-"fontStyle=1;fontSize=13;"}y[m].style+=a(y[m].style,g,l,y[m]);U[m]=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");U[m].geometry.relative=!0;U[m].edge=!0;q.insertEdge(U[m],!1);y[m].insertEdge(U[m],!0);U[m].style+=a(U[m].style,g,l,U[m]);var Wb=[];Wb.push(new mxPoint(k+8.5,A+kd+10));U[m].geometry.points=Wb;d.push(e.addCell(U[m],null,null,null,null))}break;case "EIMessageEndpointBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
-v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(.45*u,.25*t,.3*u,.5*t),"part=1;fillColor=#ffffff");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);U=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");U.geometry.relative=!0;U.edge=!0;xa(0,.5*t,.4*u,.5*t,U,d,e,ga,v,R);break;case "EIPublishSubscribeChannelBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
-v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);var M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");M.geometry.relative=!0;M.edge=!0;xa(.05*u,.5*t,.85*u,.5*t,M,d,e,ga,v,R);var L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");L.geometry.relative=!0;L.edge=!0;xa(.05*u,.5*t,.85*u,.15*
-t,L,d,e,ga,v,R);var V=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");V.geometry.relative=!0;V.edge=!0;xa(.05*u,.5*t,.85*u,.85*t,V,d,e,ga,v,R);break;case "EIMessageBusBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");
-M.geometry.relative=!0;M.edge=!0;M.style+=H(g,l);xa(.05*u,.5*t,.95*u,.5*t,M,d,e,ga,v,R);L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");L.geometry.relative=!0;L.edge=!0;L.style+=H(g,l);xa(.3*u,.1*t,.3*u,.5*t,L,d,e,ga,v,R);V=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");
-V.geometry.relative=!0;V.edge=!0;V.style+=H(g,l);xa(.7*u,.1*t,.7*u,.5*t,V,d,e,ga,v,R);var qa=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");qa.geometry.relative=!0;qa.edge=!0;qa.style+=H(g,l);xa(.5*u,.5*t,.5*u,.9*t,qa,d,e,ga,v,R);break;case "EIRequestReplyBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,
-z);q=new mxCell("",new mxGeometry(.2*u,.21*t,.16*u,.24*t),"part=1;fillColor=#ffffff;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");M.geometry.relative=!0;M.edge=!0;xa(.45*u,.33*t,.8*u,.33*t,M,d,e,ga,v,R);y=new mxCell("",new mxGeometry(.64*u,.55*t,.16*u,.24*t),"part=1;fillColor=#ffffff;");y.vertex=!0;v.insert(y);y.style+=a(y.style,g,l,y);L=
-new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");L.geometry.relative=!0;L.edge=!0;xa(.55*u,.67*t,.2*u,.67*t,L,d,e,ga,v,R);break;case "EIReturnAddressBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(.1*u,.15*t,.8*u,.7*t),"part=1;shape=mxgraph.eip.retAddr;fillColor=#FFE040;");q.vertex=!0;v.insert(q);q.style+=
-a(q.style,g,l,q);break;case "EICorrelationIDBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(.04*u,.06*t,.18*u,.28*t),"ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);y=new mxCell("",new mxGeometry(.2*u,.56*t,.2*u,.32*t),"part=1;");y.vertex=!0;v.insert(y);y.value="A";y.style+="fontStyle=1;fontSize=13;";q.style+=a(q.style,g,l,q);M=new mxCell("",new mxGeometry(0,0,0,0),
-"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;");M.geometry.relative=!0;M.edge=!0;q.insertEdge(M,!1);y.insertEdge(M,!0);M.style+=a(M.style,g,l,M);Wb=[];Wb.push(new mxPoint(k+.13*u,A+.72*t));M.geometry.points=Wb;d.push(e.addCell(M,null,null,null,null));G=new mxCell("",new mxGeometry(.6*u,.06*t,.18*u,.28*t),"ellipse;fillColor=#808080;part=1;");G.vertex=!0;v.insert(G);G.style+=H(g,l)+$a(g);G.style+=a(G.style,g,l,G);T=new mxCell("",new mxGeometry(.76*
-u,.56*t,.2*u,.32*t),"part=1;");T.vertex=!0;v.insert(T);T.style+=H(g,l)+S(g,l,T)+$a(g)+rc(g);T.value="B";T.style+="fontStyle=1;fontSize=13;fillColor=#ffffff;";T.style+=a(T.style,g,l,T);L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;");L.geometry.relative=!0;L.edge=!0;G.insertEdge(L,!1);T.insertEdge(L,!0);L.style+=a(L.style,g,l,L);var Ie=[];Ie.push(new mxPoint(k+.69*u,A+.72*t));L.geometry.points=Ie;d.push(e.addCell(L,
-null,null,null,null));V=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;endSize=6;part=1;");V.geometry.relative=!0;V.edge=!0;q.insertEdge(V,!1);G.insertEdge(V,!0);V.style+=a(V.style,g,l,V);d.push(e.addCell(V,null,null,null,null));break;case "EIMessageSequenceBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("1",new mxGeometry(.2*u,.4*t,.1*u,.19*t),"fontStyle=1;fillColor=#ffffff;fontSize=13;part=1;");
-q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);y=new mxCell("2",new mxGeometry(.45*u,.4*t,.1*u,.19*t),"fontStyle=1;fillColor=#ffffff;fontSize=13;part=1;");y.vertex=!0;v.insert(y);y.style+=a(y.style,g,l,y);G=new mxCell("3",new mxGeometry(.7*u,.4*t,.1*u,.19*t),"fontStyle=1;fillColor=#ffffff;fontSize=13;part=1;");G.vertex=!0;v.insert(G);G.style+=a(G.style,g,l,G);M=new mxCell("",new mxGeometry(0,0,0,0),"curved=1;endArrow=block;html=1;endSize=3;part=1;");q.insertEdge(M,!1);y.insertEdge(M,!0);M.geometry.points=
-[new mxPoint(k+.375*u,A+.15*t)];M.geometry.relative=!0;M.edge=!0;M.style+=a(M.style,g,l,M);d.push(e.addCell(M,null,null,null,null));L=new mxCell("",new mxGeometry(0,0,0,0),"curved=1;endArrow=block;html=1;endSize=3;part=1;");y.insertEdge(L,!1);G.insertEdge(L,!0);L.geometry.points=[new mxPoint(k+.675*u,A+.15*t)];L.geometry.relative=!0;L.edge=!0;L.style+=a(L.style,g,l,L);d.push(e.addCell(L,null,null,null,null));break;case "EIMessageExpirationBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
-v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(.3*u,.2*t,.4*u,.6*t),"shape=mxgraph.ios7.icons.clock;fillColor=#ffffff;flipH=1;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);break;case "EIMessageBrokerBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(.38*u,.42*t,.24*u,.16*t),"part=1;fillColor=#aefe7d;");q.vertex=!0;v.insert(q);q.style+=
-a(q.style,g,l,q);y=new mxCell("",new mxGeometry(.38*u,0,.24*u,.16*t),"part=1;");y.vertex=!0;v.insert(y);y.style+=a(y.style,g,l,y);G=new mxCell("",new mxGeometry(.76*u,.23*t,.24*u,.16*t),"");G.vertex=!0;v.insert(G);G.style=y.style;var T=new mxCell("",new mxGeometry(.76*u,.61*t,.24*u,.16*t),"");T.vertex=!0;v.insert(T);T.style=y.style;var Bd=new mxCell("",new mxGeometry(.38*u,.84*t,.24*u,.16*t),"");Bd.vertex=!0;v.insert(Bd);Bd.style=y.style;var Cd=new mxCell("",new mxGeometry(0,.61*t,.24*u,.16*t),"");
-Cd.vertex=!0;v.insert(Cd);Cd.style=y.style;var Dd=new mxCell("",new mxGeometry(0,.23*t,.24*u,.16*t),"");Dd.vertex=!0;v.insert(Dd);Dd.style=y.style;M=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(M,!1);y.insertEdge(M,!0);M.edge=!0;M.style+=a(M.style,g,l,M);d.push(e.addCell(M,null,null,null,null));L=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(L,!1);G.insertEdge(L,!0);L.edge=!0;L.style+=a(L.style,g,l,L);d.push(e.addCell(L,null,null,null,null));
-V=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(V,!1);T.insertEdge(V,!0);V.edge=!0;V.style+=a(V.style,g,l,V);d.push(e.addCell(V,null,null,null,null));qa=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(qa,!1);Bd.insertEdge(qa,!0);qa.edge=!0;qa.style+=a(qa.style,g,l,qa);d.push(e.addCell(qa,null,null,null,null));var Xb=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(Xb,!1);Cd.insertEdge(Xb,!0);Xb.edge=!0;Xb.style+=
-a(Xb.style,g,l,Xb);d.push(e.addCell(Xb,null,null,null,null));var Yb=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(Yb,!1);Dd.insertEdge(Yb,!0);Yb.edge=!0;Yb.style+=a(Yb.style,g,l,Yb);d.push(e.addCell(Yb,null,null,null,null));break;case "EIDurableSubscriberBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;");
-M.geometry.relative=!0;M.edge=!0;xa(.05*u,.5*t,.6*u,.25*t,M,d,e,ga,v,R);L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;");L.geometry.relative=!0;L.edge=!0;xa(.05*u,.5*t,.6*u,.75*t,L,d,e,ga,v,R);q=new mxCell("",new mxGeometry(.7*u,.1*t,.15*u,.32*t),"shape=mxgraph.eip.durable_subscriber;part=1;fillColor=#818181;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);break;case "EIControlBusBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
-v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(.25*u,.25*t,.5*u,.5*t),"shape=mxgraph.eip.control_bus;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);break;case "EIMessageHistoryBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(0,0,17,17),"ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);G=new mxCell("",
-new mxGeometry(u-45,30,30,20),"shape=mxgraph.mockup.misc.mail2;fillColor=#FFE040;part=1;");G.vertex=!0;v.insert(G);G.style+=a(G.style,g,l,G);V=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");V.geometry.relative=!0;V.edge=!0;q.insertEdge(V,!1);G.insertEdge(V,!0);V.style+=a(V.style,g,l,V);V.geometry.points=[new mxPoint(k+8.5,A+40)];d.push(e.addCell(V,null,null,null,null));T=new mxCell("",new mxGeometry(u-45,t-20,20,20),
-"part=1;");T.vertex=!0;v.insert(T);T.value=f(g.message_0);T.style+=b(g.message_0,z);T.style+=a(T.style,g,l,T,z);qa=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");qa.geometry.relative=!0;qa.edge=!0;q.insertEdge(qa,!1);T.insertEdge(qa,!0);qa.style+=a(qa.style,g,l,qa);qa.geometry.points=[new mxPoint(k+8.5,A+t-10)];d.push(e.addCell(qa,null,null,null,null));jd=g.HistoryMessages;$d=(t-75)/jd;y=[];U=[];for(m=0;m<jd;m++)kd=
-$d*(m+1)+30,y[m]=new mxCell("",new mxGeometry(u-20,kd,20,20),"part=1;"),y[m].vertex=!0,y[m].value=f(g["message_"+(m+1)]),y.style+=b(g["message_"+(m+1)],z),v.insert(y[m]),y[m].style+=a(y[m].style,g,l,y[m],z),U[m]=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;"),U[m].geometry.relative=!0,U[m].edge=!0,G.insertEdge(U[m],!1),y[m].insertEdge(U[m],!0),U[m].style+=a(U[m].style,g,l,U[m]),Wb=[],Wb.push(new mxPoint(k+u-30,A+kd+
-10)),U[m].geometry.points=Wb,d.push(e.addCell(U[m],null,null,null,null));break;case "Equation":LucidImporter.hasMath=!0;v.style+="strokeColor=none;";v.style+=a(v.style,g,l,v);v.value="$$"+g.Latex+"$$";break;case "fpDoor":v.style+="shape=mxgraph.floorplan.doorRight;";0>g.DoorAngle&&(v.style+="flipV=1;");v.style+=a(v.style,g,l,v);break;case "fpWall":v.style+="labelPosition=center;verticalAlign=bottom;verticalLabelPosition=top;";v.value=f(g);v.style+=a(v.style,g,l,v,z);v.style=v.style.replace("rotation=180;",
-"");break;case "fpDoubleDoor":v.style+="shape=mxgraph.floorplan.doorDouble;";0<g.DoorAngle&&(v.style+="flipV=1;");v.style+=a(v.style,g,l,v);break;case "fpRestroomLights":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,l,v);q=new mxCell("",new mxGeometry(0,0,u,.25*t),"part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);for(var y=[],Je=.02*u,ae=(u-2*Je)/g.LightCount,Ke=.8*ae,m=0;m<g.LightCount;m++)y[m]=new mxCell("",new mxGeometry(Je+ae*m+(ae-Ke)/2,.25*t,Ke,.75*t),"ellipse;part=1;"),
-y[m].vertex=!0,v.insert(y[m]),y[m].style+=a(y[m].style,g,l,y[m]);break;case "fpRestroomSinks":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,l,v);for(var q=[],Le=u/g.SinkCount,m=0;m<g.SinkCount;m++)q[m]=new mxCell("",new mxGeometry(Le*m,0,Le,t),"part=1;shape=mxgraph.floorplan.sink_2;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=a(q[m].style,g,l,q[m]);break;case "fpRestroomStalls":v.style+="strokeColor=none;fillColor=none;";var Va=.1*u/g.StallCount,q=new mxCell("",new mxGeometry(0,
-0,Va,t),"fillColor=#000000;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);for(var cb=(u-Va)/g.StallCount,be=[],ld=[],md=[],nd=[],J=H(g,l),J=""==J?"#000000;":J.replace("stokreColor=",""),Ed="part=1;fillColor="+J,Ed=Ed+a(Ed,g,l,v),ce=a("",g,l,v),m=0;m<g.StallCount;m++)be[m]=new mxCell("",new mxGeometry((m+1)*cb,0,Va,t),Ed),be[m].vertex=!0,v.insert(be[m]),md[m]=new mxCell("",new mxGeometry(Va+m*cb+.05*(cb-Va),t-.92*(cb-Va),.9*(cb-Va),.92*(cb-Va)),"shape=mxgraph.floorplan.doorRight;flipV=1;part=1;"),
-md[m].vertex=!0,v.insert(md[m]),md[m].style+=ce,ld[m]=new mxCell("",new mxGeometry(Va+m*cb+.2*(cb-Va),0,.6*(cb-Va),.8*(cb-Va)),"shape=mxgraph.floorplan.toilet;part=1;"),ld[m].vertex=!0,v.insert(ld[m]),ld[m].style+=ce,nd[m]=new mxCell("",new mxGeometry(Va+m*cb,.42*t,.15*(cb-Va),.12*(cb-Va)),"part=1;"),nd[m].vertex=!0,v.insert(nd[m]),nd[m].style+=ce;break;case "PEOneToMany":v.style+="strokeColor=none;fillColor=none;";var Fd="edgeStyle=none;endArrow=none;part=1;",J=H(g,l),J=""==J?"#000000;":J.replace("strokeColor=",
-""),Zb="shape=triangle;part=1;fillColor="+J,Zb=Zb+a(Zb,g,l,v),M=new mxCell("",new mxGeometry(0,0,0,0),Fd);M.geometry.relative=!0;M.edge=!0;xa(0,.5*t,.65*u,.5*t,M,d,e,ga,v,R);for(var N=t/g.numLines,L=[],kc=[],m=0;m<g.numLines;m++)L[m]=new mxCell("",new mxGeometry(0,0,0,0),Fd),L[m].geometry.relative=!0,L[m].edge=!0,xa(.65*u,.5*t,.96*u,(m+.5)*N,L[m],d,e,ga,v,R),kc[m]=new mxCell("",new mxGeometry(.95*u,(m+.2)*N,.05*u,.6*N),Zb),kc[m].vertex=!0,v.insert(kc[m]);break;case "PEMultilines":v.style+="strokeColor=none;fillColor=none;";
-Fd="edgeStyle=none;endArrow=none;part=1;";J=H(g,l);J=""==J?"#000000;":J.replace("strokeColor=","");Zb="shape=triangle;part=1;fillColor="+J;Zb+=a(Zb,g,l,v);N=t/g.numLines;L=[];kc=[];for(m=0;m<g.numLines;m++)L[m]=new mxCell("",new mxGeometry(0,0,0,0),Fd),L[m].geometry.relative=!0,L[m].edge=!0,xa(0,(m+.5)*N,.96*u,(m+.5)*N,L[m],d,e,ga,v,R),kc[m]=new mxCell("",new mxGeometry(.95*u,(m+.2)*N,.05*u,.6*N),Zb),kc[m].vertex=!0,v.insert(kc[m]);break;case "PEVesselBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
-v.value=f(g.Text);switch(g.vesselType){case 1:v.style+="shape=mxgraph.pid.vessels.pressurized_vessel;";break;case 2:v.style+="shape=hexagon;perimeter=hexagonPerimeter2;size=0.10;direction=south;"}v.style+=a(v.style,g,l,v,z);break;case "PEClosedTankBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);1==g.peakedRoof&&0==g.stumpType?v.style+="shape=mxgraph.pid.vessels.tank_(conical_roof);":1==g.stumpType&&(v.style+="shape=mxgraph.pid.vessels.tank_(boot);");v.style+=a(v.style,
-g,l,v,z);break;case "PEColumnBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style=0==g.columnType?v.style+"shape=mxgraph.pid.vessels.pressurized_vessel;":v.style+"shape=mxgraph.pid.vessels.tank;";v.style+=a(v.style,g,l,v,z);break;case "PECompressorTurbineBlock":v.style+="strokeColor=none;fillColor=none;";v.value=f(g.Text);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(0,.2*t,u,.6*t),"part=1;shape=trapezoid;perimeter=trapezoidPerimeter;direction=south;");
-q.vertex=!0;v.insert(q);q.style+=Q;q.style+=a(q.style,g,l,q);Q="endSize=4;endArrow=block;endFill=1;";0==g.compressorType?(M=new mxCell("",new mxGeometry(0,0,0,0),""),M.geometry.relative=!0,M.edge=!0,M.style+=Q,M.style+=a(M.style,g,l,M),xa(0,0,0,.2*t,M,d,e,ga,v,R),L=new mxCell("",new mxGeometry(0,0,0,0),""),L.geometry.relative=!0,L.edge=!0,L.style+=Q,L.style+=a(L.style,g,l,L),xa(u,.67*t,u,t,L,d,e,ga,v,R)):(q.style+="flipH=1;",M=new mxCell("",new mxGeometry(0,0,0,0),""),M.geometry.relative=!0,M.edge=
-!0,M.style+=Q,M.style+=a(M.style,g,l,M),xa(0,0,0,.33*t,M,d,e,ga,v,R),L=new mxCell("",new mxGeometry(0,0,0,0),""),L.geometry.relative=!0,L.edge=!0,L.style+=Q,L.style+=a(L.style,g,l,L),xa(u,.8*t,u,t,L,d,e,ga,v,R));1==g.centerLineType&&(V=new mxCell("",new mxGeometry(0,0,0,0),""),V.geometry.relative=!0,V.edge=!0,V.style+=Q,V.style+=a(V.style,g,l,V),xa(.2*u,.5*t,.8*u,.5*t,V,d,e,ga,v,R));break;case "PEMotorDrivenTurbineBlock":v.style+="shape=ellipse;perimeter=ellipsePerimeter;";v.value=f(g.Text);v.style+=
-a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(.2*u,.2*t,.6*u,.6*t),"part=1;shape=trapezoid;perimeter=trapezoidPerimeter;direction=south;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,l,q);break;case "PEIndicatorBlock":case "PEIndicator2Block":case "PESharedIndicatorBlock":case "PEComputerIndicatorBlock":case "PESharedIndicator2Block":case "PEProgrammableIndicatorBlock":switch(c.Class){case "PEIndicatorBlock":v.style+="shape=mxgraph.pid2inst.discInst;";break;case "PEIndicator2Block":v.style+=
-"shape=mxgraph.pid2inst.indicator;indType=inst;";break;case "PESharedIndicatorBlock":v.style+="shape=mxgraph.pid2inst.sharedCont;";break;case "PEComputerIndicatorBlock":v.style+="shape=mxgraph.pid2inst.compFunc;";break;case "PESharedIndicator2Block":v.style+="shape=mxgraph.pid2inst.indicator;indType=ctrl;";break;case "PEProgrammableIndicatorBlock":v.style+="shape=mxgraph.pid2inst.progLogCont;"}v.style+=a(v.style,g,l,v);"PEIndicator2Block"==c.Class||"PESharedIndicator2Block"==c.Class?(q=new mxCell("",
-new mxGeometry(0,0,u,.5*u),"part=1;strokeColor=none;fillColor=none;"),q.vertex=!0,v.insert(q),q.value=f(g.TopText),q.style+=b(g.TopText,z),q.style+=a(q.style,g,l,q,z),y=new mxCell("",new mxGeometry(0,.5*u,u,.5*u),"part=1;strokeColor=none;fillColor=none;")):(q=new mxCell("",new mxGeometry(0,0,u,.5*t),"part=1;strokeColor=none;fillColor=none;"),q.vertex=!0,v.insert(q),q.value=f(g.TopText),q.style+=b(g.TopText,z),q.style+=a(q.style,g,l,q,z),y=new mxCell("",new mxGeometry(0,.5*t,u,.5*t),"part=1;strokeColor=none;fillColor=none;"));
-y.vertex=!0;v.insert(y);y.value=f(g.BotText);y.style+=b(g.BotText,z);y.style+=a(y.style,g,l,y,z);switch(g.instrumentLocation){case 0:v.style+="mounting=field;";break;case 1:v.style+="mounting=inaccessible;";break;case 2:v.style+="mounting=room;";break;case 3:v.style+="mounting=local;"}break;case "PEGateValveBlock":case "PEGlobeValveBlock":case "PEAngleValveBlock":case "PEAngleGlobeValveBlock":case "PEPoweredValveBlock":var de=!1;"PEPoweredValveBlock"==c.Class?1!=g.poweredHandOperated&&(de=!0):1!=
-g.handOperated&&(de=!0);if(de){var g=p(c).Properties,r=g.BoundingBox,mf=r.h;r.h="PEAngleValveBlock"==c.Class||"PEAngleGlobeValveBlock"==c.Class?.7*r.h:.6*r.h;v=new mxCell("",new mxGeometry(Math.round(.75*r.x+Sb),Math.round(.75*(r.y+mf-r.h)+Tb),Math.round(.75*r.w),Math.round(.75*r.h)),"");v.vertex=!0;ud(v,c,e)}if("PEPoweredValveBlock"==c.Class)v.style+="shape=mxgraph.pid2valves.valve;verticalLabelPosition=bottom;verticalAlign=top;",v.style+=a(v.style,g,l,v),1==g.poweredHandOperated?(v.style+="valveType=gate;actuator=powered;",
-q=new mxCell("",new mxGeometry(.325*u,0,.35*u,.35*t),"part=1;strokeColor=none;fillColor=none;spacingTop=2;"),q.vertex=!0,v.insert(q),q.value=f(g.PoweredText),q.style+=(z?"":x(g.PoweredText)+w(g.PoweredText)+B(g.PoweredText)+E(g.PoweredText)+C(g.PoweredText)+D(g.PoweredText)+K(g.PoweredText))+"fontSize=6;"+Z(g.PoweredText),q.style+=a(q.style,g,l,q,z)):v.style+="valveType=gate;";else{v.style+="verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.pid2valves.valve;";v.value=f(g.Text);switch(c.Class){case "PEGateValveBlock":v.style+=
-"valveType=gate;";break;case "PEGlobeValveBlock":v.style+="valveType=globe;";break;case "PEAngleValveBlock":v.style+="valveType=angle;";break;case "PEAngleGlobeValveBlock":v.style+="valveType=angleGlobe;flipH=1;"}1==g.handOperated&&(v.style+="actuator=man;")}v.style+=a(v.style,g,l,v,z);break;case "UI2BrowserBlock":v.style+="shape=mxgraph.mockup.containers.browserWindow;mainText=;";1==g.vScroll&&(G=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-130),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):
+new mxPoint(.45*-u,0)):"EIGuaranteedDeliveryBlock"==c.Class&&(q=new mxCell("",new mxGeometry(.5,.5,20,27),"shape=cylinder;fillColor=#818181;part=1;"),q.geometry.offset=new mxPoint(-10,-7));q.geometry.relative=!0;q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);U=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");U.geometry.relative=!0;U.edge=!0;xa(.15*u,.25*t,.85*u,.25*t,U,d,e,fa,v,R);break;case "EIChannelAdapterBlock":v.style+=
+"verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(0,.07*t,.21*u,.86*t),"fillColor=#FFFF33;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);x=new mxCell("",new mxGeometry(.26*u,.09*t,.2*u,.82*t),"shape=mxgraph.eip.channel_adapter;fillColor=#4CA3D9;part=1;");x.vertex=!0;v.insert(x);x.style+=a(x.style,g,k,x);G=new mxCell("",new mxGeometry(1,.5,.35*u,20),"shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;");
+G.geometry.relative=!0;G.geometry.offset=new mxPoint(.4*-u,-10);G.vertex=!0;v.insert(G);G.style+=a(G.style,g,k,G);M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=none;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=2;");M.geometry.relative=!0;M.edge=!0;q.insertEdge(M,!0);x.insertEdge(M,!1);M.style+=H(g,k);d.push(e.addCell(M,null,null,null,null));L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=block;startArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=2;startFill=1;startSize=2;");
+L.geometry.relative=!0;L.edge=!0;x.insertEdge(L,!0);G.insertEdge(L,!1);d.push(e.addCell(L,null,null,null,null));break;case "EIMessageBlock":case "EICommandMessageBlock":case "EIDocumentMessageBlock":case "EIEventMessageBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(0,0,17,17),"ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);for(var ld=
+g.Messages,be=(t-17)/ld,x=[],U=[],m=0;m<ld;m++){var md=be*(m+1)-3;x[m]=new mxCell("",new mxGeometry(u-20,md,20,20),"part=1;");x[m].vertex=!0;v.insert(x[m]);switch(c.Class){case "EIMessageBlock":x[m].value=f(g["message_"+(m+1)]);x.style+=b(g["message_"+(m+1)],z);break;case "EICommandMessageBlock":x[m].value="C";x[m].style+="fontStyle=1;fontSize=13;";break;case "EIDocumentMessageBlock":x[m].value="D";x[m].style+="fontStyle=1;fontSize=13;";break;case "EIEventMessageBlock":x[m].value="E",x[m].style+=
+"fontStyle=1;fontSize=13;"}x[m].style+=a(x[m].style,g,k,x[m]);U[m]=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");U[m].geometry.relative=!0;U[m].edge=!0;q.insertEdge(U[m],!1);x[m].insertEdge(U[m],!0);U[m].style+=a(U[m].style,g,k,U[m]);var Vb=[];Vb.push(new mxPoint(A+8.5,l+md+10));U[m].geometry.points=Vb;d.push(e.addCell(U[m],null,null,null,null))}break;case "EIMessageEndpointBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
+v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(.45*u,.25*t,.3*u,.5*t),"part=1;fillColor=#ffffff");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);U=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");U.geometry.relative=!0;U.edge=!0;xa(0,.5*t,.4*u,.5*t,U,d,e,fa,v,R);break;case "EIPublishSubscribeChannelBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
+v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);var M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");M.geometry.relative=!0;M.edge=!0;xa(.05*u,.5*t,.85*u,.5*t,M,d,e,fa,v,R);var L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");L.geometry.relative=!0;L.edge=!0;xa(.05*u,.5*t,.85*u,.15*
+t,L,d,e,fa,v,R);var V=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");V.geometry.relative=!0;V.edge=!0;xa(.05*u,.5*t,.85*u,.85*t,V,d,e,fa,v,R);break;case "EIMessageBusBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");
+M.geometry.relative=!0;M.edge=!0;M.style+=H(g,k);xa(.05*u,.5*t,.95*u,.5*t,M,d,e,fa,v,R);L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");L.geometry.relative=!0;L.edge=!0;L.style+=H(g,k);xa(.3*u,.1*t,.3*u,.5*t,L,d,e,fa,v,R);V=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");
+V.geometry.relative=!0;V.edge=!0;V.style+=H(g,k);xa(.7*u,.1*t,.7*u,.5*t,V,d,e,fa,v,R);var qa=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;");qa.geometry.relative=!0;qa.edge=!0;qa.style+=H(g,k);xa(.5*u,.5*t,.5*u,.9*t,qa,d,e,fa,v,R);break;case "EIRequestReplyBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,
+z);q=new mxCell("",new mxGeometry(.2*u,.21*t,.16*u,.24*t),"part=1;fillColor=#ffffff;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");M.geometry.relative=!0;M.edge=!0;xa(.45*u,.33*t,.8*u,.33*t,M,d,e,fa,v,R);x=new mxCell("",new mxGeometry(.64*u,.55*t,.16*u,.24*t),"part=1;fillColor=#ffffff;");x.vertex=!0;v.insert(x);x.style+=a(x.style,g,k,x);L=
+new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;");L.geometry.relative=!0;L.edge=!0;xa(.55*u,.67*t,.2*u,.67*t,L,d,e,fa,v,R);break;case "EIReturnAddressBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(.1*u,.15*t,.8*u,.7*t),"part=1;shape=mxgraph.eip.retAddr;fillColor=#FFE040;");q.vertex=!0;v.insert(q);q.style+=
+a(q.style,g,k,q);break;case "EICorrelationIDBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(.04*u,.06*t,.18*u,.28*t),"ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);x=new mxCell("",new mxGeometry(.2*u,.56*t,.2*u,.32*t),"part=1;");x.vertex=!0;v.insert(x);x.value="A";x.style+="fontStyle=1;fontSize=13;";q.style+=a(q.style,g,k,q);M=new mxCell("",new mxGeometry(0,0,0,0),
+"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;");M.geometry.relative=!0;M.edge=!0;q.insertEdge(M,!1);x.insertEdge(M,!0);M.style+=a(M.style,g,k,M);Vb=[];Vb.push(new mxPoint(A+.13*u,l+.72*t));M.geometry.points=Vb;d.push(e.addCell(M,null,null,null,null));G=new mxCell("",new mxGeometry(.6*u,.06*t,.18*u,.28*t),"ellipse;fillColor=#808080;part=1;");G.vertex=!0;v.insert(G);G.style+=H(g,k)+mb(g);G.style+=a(G.style,g,k,G);T=new mxCell("",new mxGeometry(.76*
+u,.56*t,.2*u,.32*t),"part=1;");T.vertex=!0;v.insert(T);T.style+=H(g,k)+S(g,k,T)+mb(g)+tc(g);T.value="B";T.style+="fontStyle=1;fontSize=13;fillColor=#ffffff;";T.style+=a(T.style,g,k,T);L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;");L.geometry.relative=!0;L.edge=!0;G.insertEdge(L,!1);T.insertEdge(L,!0);L.style+=a(L.style,g,k,L);var Ke=[];Ke.push(new mxPoint(A+.69*u,l+.72*t));L.geometry.points=Ke;d.push(e.addCell(L,
+null,null,null,null));V=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;endSize=6;part=1;");V.geometry.relative=!0;V.edge=!0;q.insertEdge(V,!1);G.insertEdge(V,!0);V.style+=a(V.style,g,k,V);d.push(e.addCell(V,null,null,null,null));break;case "EIMessageSequenceBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("1",new mxGeometry(.2*u,.4*t,.1*u,.19*t),"fontStyle=1;fillColor=#ffffff;fontSize=13;part=1;");
+q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);x=new mxCell("2",new mxGeometry(.45*u,.4*t,.1*u,.19*t),"fontStyle=1;fillColor=#ffffff;fontSize=13;part=1;");x.vertex=!0;v.insert(x);x.style+=a(x.style,g,k,x);G=new mxCell("3",new mxGeometry(.7*u,.4*t,.1*u,.19*t),"fontStyle=1;fillColor=#ffffff;fontSize=13;part=1;");G.vertex=!0;v.insert(G);G.style+=a(G.style,g,k,G);M=new mxCell("",new mxGeometry(0,0,0,0),"curved=1;endArrow=block;html=1;endSize=3;part=1;");q.insertEdge(M,!1);x.insertEdge(M,!0);M.geometry.points=
+[new mxPoint(A+.375*u,l+.15*t)];M.geometry.relative=!0;M.edge=!0;M.style+=a(M.style,g,k,M);d.push(e.addCell(M,null,null,null,null));L=new mxCell("",new mxGeometry(0,0,0,0),"curved=1;endArrow=block;html=1;endSize=3;part=1;");x.insertEdge(L,!1);G.insertEdge(L,!0);L.geometry.points=[new mxPoint(A+.675*u,l+.15*t)];L.geometry.relative=!0;L.edge=!0;L.style+=a(L.style,g,k,L);d.push(e.addCell(L,null,null,null,null));break;case "EIMessageExpirationBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
+v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(.3*u,.2*t,.4*u,.6*t),"shape=mxgraph.ios7.icons.clock;fillColor=#ffffff;flipH=1;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);break;case "EIMessageBrokerBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(.38*u,.42*t,.24*u,.16*t),"part=1;fillColor=#aefe7d;");q.vertex=!0;v.insert(q);q.style+=
+a(q.style,g,k,q);x=new mxCell("",new mxGeometry(.38*u,0,.24*u,.16*t),"part=1;");x.vertex=!0;v.insert(x);x.style+=a(x.style,g,k,x);G=new mxCell("",new mxGeometry(.76*u,.23*t,.24*u,.16*t),"");G.vertex=!0;v.insert(G);G.style=x.style;var T=new mxCell("",new mxGeometry(.76*u,.61*t,.24*u,.16*t),"");T.vertex=!0;v.insert(T);T.style=x.style;var Cd=new mxCell("",new mxGeometry(.38*u,.84*t,.24*u,.16*t),"");Cd.vertex=!0;v.insert(Cd);Cd.style=x.style;var Dd=new mxCell("",new mxGeometry(0,.61*t,.24*u,.16*t),"");
+Dd.vertex=!0;v.insert(Dd);Dd.style=x.style;var Ed=new mxCell("",new mxGeometry(0,.23*t,.24*u,.16*t),"");Ed.vertex=!0;v.insert(Ed);Ed.style=x.style;M=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(M,!1);x.insertEdge(M,!0);M.edge=!0;M.style+=a(M.style,g,k,M);d.push(e.addCell(M,null,null,null,null));L=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(L,!1);G.insertEdge(L,!0);L.edge=!0;L.style+=a(L.style,g,k,L);d.push(e.addCell(L,null,null,null,null));
+V=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(V,!1);T.insertEdge(V,!0);V.edge=!0;V.style+=a(V.style,g,k,V);d.push(e.addCell(V,null,null,null,null));qa=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(qa,!1);Cd.insertEdge(qa,!0);qa.edge=!0;qa.style+=a(qa.style,g,k,qa);d.push(e.addCell(qa,null,null,null,null));var Wb=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(Wb,!1);Dd.insertEdge(Wb,!0);Wb.edge=!0;Wb.style+=
+a(Wb.style,g,k,Wb);d.push(e.addCell(Wb,null,null,null,null));var Xb=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=none;part=1;");q.insertEdge(Xb,!1);Ed.insertEdge(Xb,!0);Xb.edge=!0;Xb.style+=a(Xb.style,g,k,Xb);d.push(e.addCell(Xb,null,null,null,null));break;case "EIDurableSubscriberBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);M=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;");
+M.geometry.relative=!0;M.edge=!0;xa(.05*u,.5*t,.6*u,.25*t,M,d,e,fa,v,R);L=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;");L.geometry.relative=!0;L.edge=!0;xa(.05*u,.5*t,.6*u,.75*t,L,d,e,fa,v,R);q=new mxCell("",new mxGeometry(.7*u,.1*t,.15*u,.32*t),"shape=mxgraph.eip.durable_subscriber;part=1;fillColor=#818181;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);break;case "EIControlBusBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
+v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(.25*u,.25*t,.5*u,.5*t),"shape=mxgraph.eip.control_bus;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);break;case "EIMessageHistoryBlock":v.style+="strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(0,0,17,17),"ellipse;fillColor=#808080;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);G=new mxCell("",
+new mxGeometry(u-45,30,30,20),"shape=mxgraph.mockup.misc.mail2;fillColor=#FFE040;part=1;");G.vertex=!0;v.insert(G);G.style+=a(G.style,g,k,G);V=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");V.geometry.relative=!0;V.edge=!0;q.insertEdge(V,!1);G.insertEdge(V,!0);V.style+=a(V.style,g,k,V);V.geometry.points=[new mxPoint(A+8.5,l+40)];d.push(e.addCell(V,null,null,null,null));T=new mxCell("",new mxGeometry(u-45,t-20,20,20),
+"part=1;");T.vertex=!0;v.insert(T);T.value=f(g.message_0);T.style+=b(g.message_0,z);T.style+=a(T.style,g,k,T,z);qa=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;");qa.geometry.relative=!0;qa.edge=!0;q.insertEdge(qa,!1);T.insertEdge(qa,!0);qa.style+=a(qa.style,g,k,qa);qa.geometry.points=[new mxPoint(A+8.5,l+t-10)];d.push(e.addCell(qa,null,null,null,null));ld=g.HistoryMessages;be=(t-75)/ld;x=[];U=[];for(m=0;m<ld;m++)md=
+be*(m+1)+30,x[m]=new mxCell("",new mxGeometry(u-20,md,20,20),"part=1;"),x[m].vertex=!0,x[m].value=f(g["message_"+(m+1)]),x.style+=b(g["message_"+(m+1)],z),v.insert(x[m]),x[m].style+=a(x[m].style,g,k,x[m],z),U[m]=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;"),U[m].geometry.relative=!0,U[m].edge=!0,G.insertEdge(U[m],!1),x[m].insertEdge(U[m],!0),U[m].style+=a(U[m].style,g,k,U[m]),Vb=[],Vb.push(new mxPoint(A+u-30,l+md+
+10)),U[m].geometry.points=Vb,d.push(e.addCell(U[m],null,null,null,null));break;case "Equation":LucidImporter.hasMath=!0;v.style+="strokeColor=none;";v.style+=a(v.style,g,k,v);v.value="$$"+g.Latex+"$$";break;case "fpDoor":v.style+="shape=mxgraph.floorplan.doorRight;";0>g.DoorAngle&&(v.style+="flipV=1;");v.style+=a(v.style,g,k,v);break;case "fpWall":v.style+="labelPosition=center;verticalAlign=bottom;verticalLabelPosition=top;";v.value=f(g);v.style+=a(v.style,g,k,v,z);v.style=v.style.replace("rotation=180;",
+"");break;case "fpDoubleDoor":v.style+="shape=mxgraph.floorplan.doorDouble;";0<g.DoorAngle&&(v.style+="flipV=1;");v.style+=a(v.style,g,k,v);break;case "fpRestroomLights":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,k,v);q=new mxCell("",new mxGeometry(0,0,u,.25*t),"part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);for(var x=[],Le=.02*u,ce=(u-2*Le)/g.LightCount,Me=.8*ce,m=0;m<g.LightCount;m++)x[m]=new mxCell("",new mxGeometry(Le+ce*m+(ce-Me)/2,.25*t,Me,.75*t),"ellipse;part=1;"),
+x[m].vertex=!0,v.insert(x[m]),x[m].style+=a(x[m].style,g,k,x[m]);break;case "fpRestroomSinks":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,k,v);for(var q=[],Ne=u/g.SinkCount,m=0;m<g.SinkCount;m++)q[m]=new mxCell("",new mxGeometry(Ne*m,0,Ne,t),"part=1;shape=mxgraph.floorplan.sink_2;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=a(q[m].style,g,k,q[m]);break;case "fpRestroomStalls":v.style+="strokeColor=none;fillColor=none;";var Ta=.1*u/g.StallCount,q=new mxCell("",new mxGeometry(0,
+0,Ta,t),"fillColor=#000000;part=1;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);for(var ab=(u-Ta)/g.StallCount,de=[],nd=[],od=[],pd=[],J=H(g,k),J=""==J?"#000000;":J.replace("stokreColor=",""),Fd="part=1;fillColor="+J,Fd=Fd+a(Fd,g,k,v),ee=a("",g,k,v),m=0;m<g.StallCount;m++)de[m]=new mxCell("",new mxGeometry((m+1)*ab,0,Ta,t),Fd),de[m].vertex=!0,v.insert(de[m]),od[m]=new mxCell("",new mxGeometry(Ta+m*ab+.05*(ab-Ta),t-.92*(ab-Ta),.9*(ab-Ta),.92*(ab-Ta)),"shape=mxgraph.floorplan.doorRight;flipV=1;part=1;"),
+od[m].vertex=!0,v.insert(od[m]),od[m].style+=ee,nd[m]=new mxCell("",new mxGeometry(Ta+m*ab+.2*(ab-Ta),0,.6*(ab-Ta),.8*(ab-Ta)),"shape=mxgraph.floorplan.toilet;part=1;"),nd[m].vertex=!0,v.insert(nd[m]),nd[m].style+=ee,pd[m]=new mxCell("",new mxGeometry(Ta+m*ab,.42*t,.15*(ab-Ta),.12*(ab-Ta)),"part=1;"),pd[m].vertex=!0,v.insert(pd[m]),pd[m].style+=ee;break;case "PEOneToMany":v.style+="strokeColor=none;fillColor=none;";var Gd="edgeStyle=none;endArrow=none;part=1;",J=H(g,k),J=""==J?"#000000;":J.replace("strokeColor=",
+""),Yb="shape=triangle;part=1;fillColor="+J,Yb=Yb+a(Yb,g,k,v),M=new mxCell("",new mxGeometry(0,0,0,0),Gd);M.geometry.relative=!0;M.edge=!0;xa(0,.5*t,.65*u,.5*t,M,d,e,fa,v,R);for(var N=t/g.numLines,L=[],mc=[],m=0;m<g.numLines;m++)L[m]=new mxCell("",new mxGeometry(0,0,0,0),Gd),L[m].geometry.relative=!0,L[m].edge=!0,xa(.65*u,.5*t,.96*u,(m+.5)*N,L[m],d,e,fa,v,R),mc[m]=new mxCell("",new mxGeometry(.95*u,(m+.2)*N,.05*u,.6*N),Yb),mc[m].vertex=!0,v.insert(mc[m]);break;case "PEMultilines":v.style+="strokeColor=none;fillColor=none;";
+Gd="edgeStyle=none;endArrow=none;part=1;";J=H(g,k);J=""==J?"#000000;":J.replace("strokeColor=","");Yb="shape=triangle;part=1;fillColor="+J;Yb+=a(Yb,g,k,v);N=t/g.numLines;L=[];mc=[];for(m=0;m<g.numLines;m++)L[m]=new mxCell("",new mxGeometry(0,0,0,0),Gd),L[m].geometry.relative=!0,L[m].edge=!0,xa(0,(m+.5)*N,.96*u,(m+.5)*N,L[m],d,e,fa,v,R),mc[m]=new mxCell("",new mxGeometry(.95*u,(m+.2)*N,.05*u,.6*N),Yb),mc[m].vertex=!0,v.insert(mc[m]);break;case "PEVesselBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";
+v.value=f(g.Text);switch(g.vesselType){case 1:v.style+="shape=mxgraph.pid.vessels.pressurized_vessel;";break;case 2:v.style+="shape=hexagon;perimeter=hexagonPerimeter2;size=0.10;direction=south;"}v.style+=a(v.style,g,k,v,z);break;case "PEClosedTankBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);1==g.peakedRoof&&0==g.stumpType?v.style+="shape=mxgraph.pid.vessels.tank_(conical_roof);":1==g.stumpType&&(v.style+="shape=mxgraph.pid.vessels.tank_(boot);");v.style+=a(v.style,
+g,k,v,z);break;case "PEColumnBlock":v.style+="verticalLabelPosition=bottom;verticalAlign=top;";v.value=f(g.Text);v.style=0==g.columnType?v.style+"shape=mxgraph.pid.vessels.pressurized_vessel;":v.style+"shape=mxgraph.pid.vessels.tank;";v.style+=a(v.style,g,k,v,z);break;case "PECompressorTurbineBlock":v.style+="strokeColor=none;fillColor=none;";v.value=f(g.Text);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(0,.2*t,u,.6*t),"part=1;shape=trapezoid;perimeter=trapezoidPerimeter;direction=south;");
+q.vertex=!0;v.insert(q);q.style+=Q;q.style+=a(q.style,g,k,q);Q="endSize=4;endArrow=block;endFill=1;";0==g.compressorType?(M=new mxCell("",new mxGeometry(0,0,0,0),""),M.geometry.relative=!0,M.edge=!0,M.style+=Q,M.style+=a(M.style,g,k,M),xa(0,0,0,.2*t,M,d,e,fa,v,R),L=new mxCell("",new mxGeometry(0,0,0,0),""),L.geometry.relative=!0,L.edge=!0,L.style+=Q,L.style+=a(L.style,g,k,L),xa(u,.67*t,u,t,L,d,e,fa,v,R)):(q.style+="flipH=1;",M=new mxCell("",new mxGeometry(0,0,0,0),""),M.geometry.relative=!0,M.edge=
+!0,M.style+=Q,M.style+=a(M.style,g,k,M),xa(0,0,0,.33*t,M,d,e,fa,v,R),L=new mxCell("",new mxGeometry(0,0,0,0),""),L.geometry.relative=!0,L.edge=!0,L.style+=Q,L.style+=a(L.style,g,k,L),xa(u,.8*t,u,t,L,d,e,fa,v,R));1==g.centerLineType&&(V=new mxCell("",new mxGeometry(0,0,0,0),""),V.geometry.relative=!0,V.edge=!0,V.style+=Q,V.style+=a(V.style,g,k,V),xa(.2*u,.5*t,.8*u,.5*t,V,d,e,fa,v,R));break;case "PEMotorDrivenTurbineBlock":v.style+="shape=ellipse;perimeter=ellipsePerimeter;";v.value=f(g.Text);v.style+=
+a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(.2*u,.2*t,.6*u,.6*t),"part=1;shape=trapezoid;perimeter=trapezoidPerimeter;direction=south;");q.vertex=!0;v.insert(q);q.style+=a(q.style,g,k,q);break;case "PEIndicatorBlock":case "PEIndicator2Block":case "PESharedIndicatorBlock":case "PEComputerIndicatorBlock":case "PESharedIndicator2Block":case "PEProgrammableIndicatorBlock":switch(c.Class){case "PEIndicatorBlock":v.style+="shape=mxgraph.pid2inst.discInst;";break;case "PEIndicator2Block":v.style+=
+"shape=mxgraph.pid2inst.indicator;indType=inst;";break;case "PESharedIndicatorBlock":v.style+="shape=mxgraph.pid2inst.sharedCont;";break;case "PEComputerIndicatorBlock":v.style+="shape=mxgraph.pid2inst.compFunc;";break;case "PESharedIndicator2Block":v.style+="shape=mxgraph.pid2inst.indicator;indType=ctrl;";break;case "PEProgrammableIndicatorBlock":v.style+="shape=mxgraph.pid2inst.progLogCont;"}v.style+=a(v.style,g,k,v);"PEIndicator2Block"==c.Class||"PESharedIndicator2Block"==c.Class?(q=new mxCell("",
+new mxGeometry(0,0,u,.5*u),"part=1;strokeColor=none;fillColor=none;"),q.vertex=!0,v.insert(q),q.value=f(g.TopText),q.style+=b(g.TopText,z),q.style+=a(q.style,g,k,q,z),x=new mxCell("",new mxGeometry(0,.5*u,u,.5*u),"part=1;strokeColor=none;fillColor=none;")):(q=new mxCell("",new mxGeometry(0,0,u,.5*t),"part=1;strokeColor=none;fillColor=none;"),q.vertex=!0,v.insert(q),q.value=f(g.TopText),q.style+=b(g.TopText,z),q.style+=a(q.style,g,k,q,z),x=new mxCell("",new mxGeometry(0,.5*t,u,.5*t),"part=1;strokeColor=none;fillColor=none;"));
+x.vertex=!0;v.insert(x);x.value=f(g.BotText);x.style+=b(g.BotText,z);x.style+=a(x.style,g,k,x,z);switch(g.instrumentLocation){case 0:v.style+="mounting=field;";break;case 1:v.style+="mounting=inaccessible;";break;case 2:v.style+="mounting=room;";break;case 3:v.style+="mounting=local;"}break;case "PEGateValveBlock":case "PEGlobeValveBlock":case "PEAngleValveBlock":case "PEAngleGlobeValveBlock":case "PEPoweredValveBlock":var fe=!1;"PEPoweredValveBlock"==c.Class?1!=g.poweredHandOperated&&(fe=!0):1!=
+g.handOperated&&(fe=!0);if(fe){var g=p(c).Properties,r=g.BoundingBox,nf=r.h;r.h="PEAngleValveBlock"==c.Class||"PEAngleGlobeValveBlock"==c.Class?.7*r.h:.6*r.h;v=new mxCell("",new mxGeometry(Math.round(.75*r.x+Rb),Math.round(.75*(r.y+nf-r.h)+Sb),Math.round(.75*r.w),Math.round(.75*r.h)),"");v.vertex=!0;vd(v,c,e)}if("PEPoweredValveBlock"==c.Class)v.style+="shape=mxgraph.pid2valves.valve;verticalLabelPosition=bottom;verticalAlign=top;",v.style+=a(v.style,g,k,v),1==g.poweredHandOperated?(v.style+="valveType=gate;actuator=powered;",
+q=new mxCell("",new mxGeometry(.325*u,0,.35*u,.35*t),"part=1;strokeColor=none;fillColor=none;spacingTop=2;"),q.vertex=!0,v.insert(q),q.value=f(g.PoweredText),q.style+=(z?"":w(g.PoweredText)+y(g.PoweredText)+C(g.PoweredText)+E(g.PoweredText)+B(g.PoweredText)+D(g.PoweredText)+K(g.PoweredText))+"fontSize=6;"+Z(g.PoweredText),q.style+=a(q.style,g,k,q,z)):v.style+="valveType=gate;";else{v.style+="verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.pid2valves.valve;";v.value=f(g.Text);switch(c.Class){case "PEGateValveBlock":v.style+=
+"valveType=gate;";break;case "PEGlobeValveBlock":v.style+="valveType=globe;";break;case "PEAngleValveBlock":v.style+="valveType=angle;";break;case "PEAngleGlobeValveBlock":v.style+="valveType=angleGlobe;flipH=1;"}1==g.handOperated&&(v.style+="actuator=man;")}v.style+=a(v.style,g,k,v,z);break;case "UI2BrowserBlock":v.style+="shape=mxgraph.mockup.containers.browserWindow;mainText=;";1==g.vScroll&&(G=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-130),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):
new mxCell("",new mxGeometry(1,0,20,t-110),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(-20,110),G.vertex=!0,v.insert(G),v.style+="spacingRight=20;");1==g.hScroll&&(T=1==g.vScroll?new mxCell("",new mxGeometry(0,1,u-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),
-T.geometry.relative=!0,T.geometry.offset=new mxPoint(0,-20),T.vertex=!0,v.insert(T));v.style+=a(v.style,g,l,v);break;case "UI2WindowBlock":v.value=f(g.Title);v.style+="shape=mxgraph.mockup.containers.window;mainText=;align=center;verticalAlign=top;spacing=5;"+(z?"fontSize=13;":h(g.Title)+x(g.Title)+w(g.Title));1==g.vScroll&&(G=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-50),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,
+T.geometry.relative=!0,T.geometry.offset=new mxPoint(0,-20),T.vertex=!0,v.insert(T));v.style+=a(v.style,g,k,v);break;case "UI2WindowBlock":v.value=f(g.Title);v.style+="shape=mxgraph.mockup.containers.window;mainText=;align=center;verticalAlign=top;spacing=5;"+(z?"fontSize=13;":h(g.Title)+w(g.Title)+y(g.Title));1==g.vScroll&&(G=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-50),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,
0,20,t-30),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(-20,30),G.vertex=!0,v.insert(G),v.style+="spacingRight=20;");1==g.hScroll&&(T=1==g.vScroll?new mxCell("",new mxGeometry(0,1,u-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),T.geometry.relative=
-!0,T.geometry.offset=new mxPoint(0,-20),T.vertex=!0,v.insert(T));v.style+=a(v.style,g,l,v,z);break;case "UI2DialogBlock":v.value=f(g.Text);v.style+=b(g.Text,z);q=new mxCell("",new mxGeometry(0,0,u,30),"part=1;resizeHeight=0;");q.vertex=!0;v.insert(q);q.value=f(g.Title);q.style+=b(g.Title,z);q.style+=a(q.style,g,l,q,z);y=new mxCell("",new mxGeometry(1,.5,20,20),"ellipse;part=1;strokeColor=#008cff;resizable=0;fillColor=none;html=1;");y.geometry.relative=!0;y.geometry.offset=new mxPoint(-25,-10);y.vertex=
-!0;q.insert(y);1==g.vScroll&&(G=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-50),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,t-30),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(-20,30),G.vertex=!0,v.insert(G),v.style+="spacingRight=20;");1==g.hScroll&&(T=1==g.vScroll?new mxCell("",new mxGeometry(0,1,u-20,20),
-"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),T.geometry.relative=!0,T.geometry.offset=new mxPoint(0,-20),T.vertex=!0,v.insert(T));v.style+=a(v.style,g,l,v);g.Text=null;break;case "UI2AccordionBlock":q=[];N=25;for(m=0;m<=g.Panels-1;m++)q[m]=m<g.Selected-1?new mxCell("",new mxGeometry(0,m*N,u,N),"part=1;fillColor=#000000;fillOpacity=25;"):m==g.Selected-1?
-new mxCell("",new mxGeometry(0,m*N,u,N),"part=1;fillColor=none;"):new mxCell("",new mxGeometry(0,t-(g.Panels-g.Selected)*N+(m-g.Selected)*N,u,N),"part=1;fillColor=#000000;fillOpacity=25;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Panel_"+(m+1)]),q[m].style+=b(g["Panel_"+(m+1)],z),0>q[m].style.indexOf(";align=")&&(q[m].style+="align=left;spacingLeft=5;");var oa=H(g,l),oa=oa.replace("strokeColor","fillColor2");""==oa&&(oa="fillColor2=#000000;");1==g.vScroll&&(y=1==g.hScroll?new mxCell("",new mxGeometry(1,
-0,20,t-g.Selected*N-20-(g.Panels-g.Selected)*N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,t-g.Selected*N-(g.Panels-g.Selected)*N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),y.geometry.relative=!0,y.geometry.offset=new mxPoint(-20,g.Selected*N),y.vertex=!0,v.insert(y),v.style+="spacingRight=20;",y.style+=oa,y.style+=a(y.style,g,l,y));1==g.hScroll&&(G=1==g.vScroll?
-new mxCell("",new mxGeometry(0,1,u-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(0,-20-(g.Panels-g.Selected)*N),G.vertex=!0,v.insert(G),G.style+=oa,G.style+=a(G.style,g,l,G));T=1==g.vScroll?new mxCell("",new mxGeometry(0,g.Selected*N,u-20,t-g.Selected*N-20-(g.Panels-g.Selected)*N),"part=1;fillColor=none;strokeColor=none;"):
-new mxCell("",new mxGeometry(0,g.Selected*N,u-20,t-g.Selected*N-(g.Panels-g.Selected)*N),"part=1;fillColor=none;strokeColor=none;");T.vertex=!0;v.insert(T);T.value=f(g.Content_1);T.style+=b(g.Content_1,z);!z&&0>T.style.indexOf(";align=")&&(T.style+="align=left;spacingLeft=5;");v.style+=a(v.style,g,l,v);break;case "UI2TabBarContainerBlock":v.style+="strokeColor=none;fillColor=none;";var q=[],y=[],N=25,Xa=3,ba=(u+Xa)/(g.Tabs+1),ya=new mxCell("",new mxGeometry(0,N,u,t-N),"part=1;");ya.vertex=!0;v.insert(ya);
-ya.style+=a(ya.style,g,l,ya);for(m=0;m<=g.Tabs-1;m++)m==g.Selected-1?(y[m]=new mxCell("",new mxGeometry(10+m*ba,0,ba-Xa,N),""),y[m].vertex=!0,v.insert(y[m])):(q[m]=new mxCell("",new mxGeometry(10+m*ba,0,ba-Xa,N),"strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=q[m].style+=a(q[m].style,g,l,q[m]),y[m]=new mxCell("",new mxGeometry(0,0,ba-Xa,N),"fillColor=#000000;fillOpacity=25;"),y[m].vertex=!0,q[m].insert(y[m])),y[m].value=f(g["Tab_"+(m+1)]),y[m].style+=b(g["Tab_"+(m+1)],z),0>y[m].style.indexOf(";align=")&&
-(y[m].style+="align=left;spacingLeft=2;"),y[m].style+=a(y[m].style,g,l,y[m]);oa=H(g,l);oa=oa.replace("strokeColor","fillColor2");""==oa&&(oa="fillColor2=#000000;");1==g.vScroll&&(y=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-20-N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,t-N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),y.geometry.relative=!0,y.geometry.offset=
-new mxPoint(-20,N),y.vertex=!0,v.insert(y),v.style+="spacingRight=20;",y.style+=oa,y.style+=a(y.style,g,l,y));1==g.hScroll&&(G=1==g.vScroll?new mxCell("",new mxGeometry(0,1,u-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(0,-20),G.vertex=!0,v.insert(G),G.style+=oa,G.style+=a(G.style,g,l,G));break;
-case "UI2TabBar2ContainerBlock":v.style+="strokeColor=none;fillColor=none;";q=[];y=[];N=25;Xa=3;ba=(u+Xa)/g.Tabs;ya=new mxCell("",new mxGeometry(0,N,u,t-N),"part=1;");ya.vertex=!0;v.insert(ya);ya.style+=a(ya.style,g,l,ya);for(m=0;m<=g.Tabs-1;m++)m==g.Selected-1?(y[m]=new mxCell("",new mxGeometry(m*ba,0,ba-Xa,N),""),y[m].vertex=!0,v.insert(y[m])):(q[m]=new mxCell("",new mxGeometry(m*ba,0,ba-Xa,N),"strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=a(q[m].style,g,l,q[m]),y[m]=new mxCell("",
-new mxGeometry(0,0,ba-Xa,N),"fillColor=#000000;fillOpacity=25;"),y[m].vertex=!0,q[m].insert(y[m])),y[m].value=f(g["Tab_"+(m+1)]),y[m].style+=b(g["Tab_"+(m+1)],z),y[m].style+=a(y[m].style,g,l,y[m],z),0>y[m].style.indexOf(";align=")&&(y[m].style+="align=left;spacingLeft=2;");oa=H(g,l);oa=oa.replace("strokeColor","fillColor2");""==oa&&(oa="fillColor2=#000000;");1==g.vScroll&&(y=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-20-N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):
-new mxCell("",new mxGeometry(1,0,20,t-N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),y.geometry.relative=!0,y.geometry.offset=new mxPoint(-20,N),y.vertex=!0,v.insert(y),v.style+="spacingRight=20;",y.style+=oa,y.style+=a(y.style,g,l,y));1==g.hScroll&&(G=1==g.vScroll?new mxCell("",new mxGeometry(0,1,u-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),
-G.geometry.relative=!0,G.geometry.offset=new mxPoint(0,-20),G.vertex=!0,v.insert(G),G.style+=oa,G.style+=a(G.style,g,l,G));break;case "UI2VTabBarContainerBlock":v.style+="strokeColor=none;fillColor=none;";q=[];y=[];Xa=3;N=25+Xa;ba=80;Mb=10;ya=new mxCell("",new mxGeometry(ba,0,u-ba,t),"part=1;");ya.vertex=!0;v.insert(ya);ya.style+=a(ya.style,g,l,ya);for(m=0;m<=g.Tabs-1;m++)m==g.Selected-1?(y[m]=new mxCell("",new mxGeometry(0,Mb+m*N,ba,N-Xa),""),y[m].vertex=!0,v.insert(y[m]),y[m].value=f(g["Tab_"+(m+
-1)]),y[m].style+=b(g["Tab_"+(m+1)],z),y[m].style+=a(y[m].style,g,l,y[m],z)):(q[m]=new mxCell("",new mxGeometry(0,Mb+m*N,ba,N-Xa),"strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=a(q[m].style,g,l,q[m]),y[m]=new mxCell("",new mxGeometry(0,0,ba,N-Xa),"fillColor=#000000;fillOpacity=25;"),y[m].vertex=!0,q[m].insert(y[m]),y[m].value=f(g["Tab_"+(m+1)]),y[m].style+=b(g["Tab_"+(m+1)],z)),0>y[m].style.indexOf(";align=")&&(y[m].style+="align=left;spacingLeft=2;"),y[m].style+=a(y[m].style,g,l,y[m]);
-oa=H(g,l);oa=oa.replace("strokeColor","fillColor2");""==oa&&(oa="fillColor2=#000000;");1==g.vScroll&&(y=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,t),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),y.geometry.relative=!0,y.geometry.offset=new mxPoint(-20,0),y.vertex=!0,v.insert(y),v.style+="spacingRight=20;",y.style+=
-oa,y.style+=a(y.style,g,l,y));1==g.hScroll&&(G=1==g.vScroll?new mxCell("",new mxGeometry(ba,1,u-20-ba,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(ba,1,u-ba,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(0,-20),G.vertex=!0,v.insert(G),G.style+=oa,G.style+=a(G.style,g,l,G));break;case "UI2CheckBoxBlock":v.style+="strokeColor=none;fillColor=none;";N=t/
-g.Options;q=[];y=[];for(m=0;m<g.Options;m++)q[m]=new mxCell("",new mxGeometry(0,m*N+.5*N-5,10,10),"labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Option_"+(m+1)]),q[m].style+=b(g["Option_"+(m+1)],z),q[m].style+=a(q[m].style,g,l,q[m],z),null!=g.Selected[m+1]&&1==g.Selected[m+1]&&(J=H(g,l),J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),y[m]=new mxCell("",new mxGeometry(2,2,
-6,6),"shape=mxgraph.mscae.general.checkmark;part=1;"),y[m].vertex=!0,q[m].insert(y[m]),y[m].style+=J,y[m].style+=a(y[m].style,g,l,y[m]));break;case "UI2HorizontalCheckBoxBlock":v.style+="strokeColor=none;fillColor=none;";ba=u/g.Options;q=[];y=[];for(m=0;m<g.Options;m++)q[m]=new mxCell("",new mxGeometry(m*ba,.5*t-5,10,10),"labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Option_"+(m+1)]),q[m].style+=
-b(g["Option_"+(m+1)],z),q[m].style+=a(q[m].style,g,l,q[m],z),null!=g.Selected[m+1]&&1==g.Selected[m+1]&&(J=H(g,l),J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),y[m]=new mxCell("",new mxGeometry(2,2,6,6),"shape=mxgraph.mscae.general.checkmark;part=1;"),y[m].vertex=!0,q[m].insert(y[m]),y[m].style+=J,y[m].style+=a(y[m].style,g,l,y[m]));break;case "UI2RadioBlock":v.style+="strokeColor=none;fillColor=none;";N=t/g.Options;q=[];y=[];for(m=0;m<g.Options;m++)q[m]=new mxCell("",new mxGeometry(0,
-m*N+.5*N-5,10,10),"ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Option_"+(m+1)]),q[m].style+=b(g["Option_"+(m+1)],z),q[m].style+=a(q[m].style,g,l,q[m],z),null!=g.Selected&&g.Selected==m+1&&(J=H(g,l),J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),y[m]=new mxCell("",new mxGeometry(2.5,2.5,5,5),"ellipse;"),y[m].vertex=!0,q[m].insert(y[m]),y[m].style+=J,y[m].style+=
-a(y[m].style,g,l,y[m]));break;case "UI2HorizontalRadioBlock":v.style+="strokeColor=none;fillColor=none;";ba=u/g.Options;q=[];y=[];for(m=0;m<g.Options;m++)q[m]=new mxCell("",new mxGeometry(m*ba,.5*t-5,10,10),"ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Option_"+(m+1)]),q[m].style+=b(g["Option_"+(m+1)],z),q[m].style+=a(q[m].style,g,l,q[m],z),null!=g.Selected&&g.Selected==m+1&&(J=H(g,l),
-J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),y[m]=new mxCell("",new mxGeometry(2,2,6,6),"ellipse;part=1;"),y[m].vertex=!0,q[m].insert(y[m]),y[m].style+=J,y[m].style+=a(y[m].style,g,l,y[m]));break;case "UI2SelectBlock":v.style+="shape=mxgraph.mockup.forms.comboBox;strokeColor=#999999;fillColor=#ddeeff;align=left;fillColor2=#aaddff;mainText=;fontColor=#666666";v.value=f(g.Selected);break;case "UI2HSliderBlock":case "UI2VSliderBlock":v.style+="shape=mxgraph.mockup.forms.horSlider;sliderStyle=basic;handleStyle=handle;";
-"UI2VSliderBlock"==c.Class&&(v.style+="direction=south;");v.style+="sliderPos="+100*g.ScrollVal+";";v.style+=a(v.style,g,l,v);break;case "UI2DatePickerBlock":v.style+="strokeColor=none;fillColor=none;";q=new mxCell("",new mxGeometry(0,0,.6*u,t),"part=1;");q.vertex=!0;v.insert(q);q.value=f(g.Date);q.style+=b(g.Date,z);v.style+=a(v.style,g,l,v);J=H(g,l);J=J.replace("strokeColor","fillColor");""==J&&(J="fillColor=#000000;");y=new mxCell("",new mxGeometry(.75*u,0,.25*u,t),"part=1;shape=mxgraph.gmdl.calendar;");
-y.vertex=!0;v.insert(y);y.style+=J;y.style+=a(y.style,g,l,y);break;case "UI2SearchBlock":v.value=f(g.Search);v.style+="shape=mxgraph.mockup.forms.searchBox;mainText=;flipH=1;align=left;spacingLeft=26;"+b(g.Search,z);v.style+=a(v.style,g,l,v,z);break;case "UI2NumericStepperBlock":J=H(g,l);J=J.replace("strokeColor","fillColor");""==J&&(J="fillColor=#000000;");v.value=f(g.Number);v.style+="shape=mxgraph.mockup.forms.spinner;spinLayout=right;spinStyle=normal;adjStyle=triangle;mainText=;align=left;spacingLeft=8;"+
-J+b(g.Number,z);v.style+=a(v.style,g,l,v,z);break;case "UI2TableBlock":try{var Ba=la(g.FillColor),od=la(g.LineColor),ee,ic="",Gd=20;v.style="html=1;overflow=fill;verticalAlign=top;spacing=0;";var lc='<table style="width:100%;height:100%;border-collapse: collapse;border: 1px solid '+od+';">',Gb=g.Data.split("\n");ee=g.AltRow&&"default"!=g.AltRow?"none"==g.AltRow?Ba:la(g.AltRow):Sd(Ba,.95);ec=g.Header&&"default"!=g.Header?"none"==g.Header?ee:la(g.Header):Sd(Ba,.8);if("full"==g.GridLines)ic="border: 1px solid "+
-od,Gd=19;else if("row"==g.GridLines)ic="border-bottom: 1px solid "+od,Gd=19;else if("default"==g.GridLines||"column"==g.GridLines)ic="border-right: 1px solid "+od;Gb=Gb.filter(function(a){return a});/^\{[^}]*\}$/.test(Gb[Gb.length-1])&&Gb.pop();for(var Uc=Gb[0].split(",").length,Me="",P=0;P<Uc-1;P++)Me+=" , ";for(m=Gb.length;m<Math.ceil(t/20);m++)Gb.push(Me);for(m=0;m<Gb.length;m++){for(var lc=lc+('<tr style="height: '+Gd+"px;background:"+(0==m?ec:m%2?Ba:ee)+'">'),Ne=Gb[m].split(","),P=0;P<Ne.length;P++)var pd=
-g["Cell_"+m+"_"+P],nf=pd&&pd.m&&pd.m[0]&&"c"==pd.m[0].n?la(pd.m[0].v):od,lc=lc+('<td style="height: '+Gd+"px;color:"+nf+";"+ic+'">'+mxUtils.htmlEntities(Ne[P])+"</td>");lc+="</tr>"}lc+="</table>";v.value=lc}catch(fb){console.log(fb)}break;case "UI2ButtonBarBlock":v.style+=a(v.style,g,l,v);q=[];y=[];ba=u/g.Buttons;for(m=0;m<=g.Buttons-1;m++)m==g.Selected-1?(y[m]=new mxCell("",new mxGeometry(m*ba,0,ba,t),""),y[m].vertex=!0,v.insert(y[m])):(q[m]=new mxCell("",new mxGeometry(m*ba,0,ba,t),"strokeColor=none;"),
-q[m].vertex=!0,v.insert(q[m]),q[m].style+=q[m].style+=a(q[m].style,g,l,q[m]),y[m]=new mxCell("",new mxGeometry(0,0,ba,t),"fillColor=#000000;fillOpacity=25;"),y[m].vertex=!0,q[m].insert(y[m])),y[m].value=f(g["Button_"+(m+1)]),y[m].style+=b(g["Button_"+(m+1)],z),y[m].style+=a(y[m].style,g,l,y[m],z);break;case "UI2VerticalButtonBarBlock":v.style+=a(v.style,g,l,v);q=[];y=[];N=t/g.Buttons;for(m=0;m<=g.Buttons-1;m++)m==g.Selected-1?(y[m]=new mxCell("",new mxGeometry(0,m*N,u,N),""),y[m].vertex=!0,v.insert(y[m])):
-(q[m]=new mxCell("",new mxGeometry(0,m*N,u,N),"strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=a(q[m].style,g,l,q[m]),y[m]=new mxCell("",new mxGeometry(0,0,u,N),"fillColor=#000000;fillOpacity=25;"),y[m].vertex=!0,q[m].insert(y[m])),y[m].value=f(g["Button_"+(m+1)]),y[m].style+=b(g["Button_"+(m+1)],z),y[m].style+=a(y[m].style,g,l,y[m],z);break;case "UI2LinkBarBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,l,v);q=[];y=[];ba=u/g.Links;for(m=0;m<g.Links;m++)0!=m?
-(y[m]=new mxCell("",new mxGeometry(m*ba,0,ba,t),"shape=partialRectangle;top=0;bottom=0;right=0;fillColor=none;"),y[m].style+=a(y[m].style,g,l,y[m])):y[m]=new mxCell("",new mxGeometry(m*ba,0,ba,t),"fillColor=none;strokeColor=none;"),y[m].vertex=!0,v.insert(y[m]),y[m].value=f(g["Link_"+(m+1)]),y[m].style+=b(g["Link_"+(m+1)],z);break;case "UI2BreadCrumbsBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,l,v);q=[];y=[];ba=u/g.Links;for(m=0;m<g.Links;m++)q[m]=new mxCell("",new mxGeometry(m*
-ba,0,ba,t),"fillColor=none;strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Link_"+(m+1)]),q[m].style+=b(g["Link_"+(m+1)],z);for(m=1;m<g.Links;m++)y[m]=new mxCell("",new mxGeometry(m/g.Links,.5,6,10),"shape=mxgraph.ios7.misc.right;"),y[m].geometry.relative=!0,y[m].geometry.offset=new mxPoint(-3,-5),y[m].vertex=!0,v.insert(y[m]);break;case "UI2MenuBarBlock":v.style+="strokeColor=none;";v.style+=a(v.style,g,l,v);q=[];ba=u/(g.Buttons+1);for(m=0;m<=g.Buttons-1;m++)q[m]=m!=g.Selected-
+!0,T.geometry.offset=new mxPoint(0,-20),T.vertex=!0,v.insert(T));v.style+=a(v.style,g,k,v,z);break;case "UI2DialogBlock":v.value=f(g.Text);v.style+=b(g.Text,z);q=new mxCell("",new mxGeometry(0,0,u,30),"part=1;resizeHeight=0;");q.vertex=!0;v.insert(q);q.value=f(g.Title);q.style+=b(g.Title,z);q.style+=a(q.style,g,k,q,z);x=new mxCell("",new mxGeometry(1,.5,20,20),"ellipse;part=1;strokeColor=#008cff;resizable=0;fillColor=none;html=1;");x.geometry.relative=!0;x.geometry.offset=new mxPoint(-25,-10);x.vertex=
+!0;q.insert(x);1==g.vScroll&&(G=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-50),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,t-30),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(-20,30),G.vertex=!0,v.insert(G),v.style+="spacingRight=20;");1==g.hScroll&&(T=1==g.vScroll?new mxCell("",new mxGeometry(0,1,u-20,20),
+"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),T.geometry.relative=!0,T.geometry.offset=new mxPoint(0,-20),T.vertex=!0,v.insert(T));v.style+=a(v.style,g,k,v);g.Text=null;break;case "UI2AccordionBlock":q=[];N=25;for(m=0;m<=g.Panels-1;m++)q[m]=m<g.Selected-1?new mxCell("",new mxGeometry(0,m*N,u,N),"part=1;fillColor=#000000;fillOpacity=25;"):m==g.Selected-1?
+new mxCell("",new mxGeometry(0,m*N,u,N),"part=1;fillColor=none;"):new mxCell("",new mxGeometry(0,t-(g.Panels-g.Selected)*N+(m-g.Selected)*N,u,N),"part=1;fillColor=#000000;fillOpacity=25;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Panel_"+(m+1)]),q[m].style+=b(g["Panel_"+(m+1)],z),0>q[m].style.indexOf(";align=")&&(q[m].style+="align=left;spacingLeft=5;");var oa=H(g,k),oa=oa.replace("strokeColor","fillColor2");""==oa&&(oa="fillColor2=#000000;");1==g.vScroll&&(x=1==g.hScroll?new mxCell("",new mxGeometry(1,
+0,20,t-g.Selected*N-20-(g.Panels-g.Selected)*N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,t-g.Selected*N-(g.Panels-g.Selected)*N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),x.geometry.relative=!0,x.geometry.offset=new mxPoint(-20,g.Selected*N),x.vertex=!0,v.insert(x),v.style+="spacingRight=20;",x.style+=oa,x.style+=a(x.style,g,k,x));1==g.hScroll&&(G=1==g.vScroll?
+new mxCell("",new mxGeometry(0,1,u-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(0,-20-(g.Panels-g.Selected)*N),G.vertex=!0,v.insert(G),G.style+=oa,G.style+=a(G.style,g,k,G));T=1==g.vScroll?new mxCell("",new mxGeometry(0,g.Selected*N,u-20,t-g.Selected*N-20-(g.Panels-g.Selected)*N),"part=1;fillColor=none;strokeColor=none;"):
+new mxCell("",new mxGeometry(0,g.Selected*N,u-20,t-g.Selected*N-(g.Panels-g.Selected)*N),"part=1;fillColor=none;strokeColor=none;");T.vertex=!0;v.insert(T);T.value=f(g.Content_1);T.style+=b(g.Content_1,z);!z&&0>T.style.indexOf(";align=")&&(T.style+="align=left;spacingLeft=5;");v.style+=a(v.style,g,k,v);break;case "UI2TabBarContainerBlock":v.style+="strokeColor=none;fillColor=none;";var q=[],x=[],N=25,Wa=3,ba=(u+Wa)/(g.Tabs+1),ya=new mxCell("",new mxGeometry(0,N,u,t-N),"part=1;");ya.vertex=!0;v.insert(ya);
+ya.style+=a(ya.style,g,k,ya);for(m=0;m<=g.Tabs-1;m++)m==g.Selected-1?(x[m]=new mxCell("",new mxGeometry(10+m*ba,0,ba-Wa,N),""),x[m].vertex=!0,v.insert(x[m])):(q[m]=new mxCell("",new mxGeometry(10+m*ba,0,ba-Wa,N),"strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=q[m].style+=a(q[m].style,g,k,q[m]),x[m]=new mxCell("",new mxGeometry(0,0,ba-Wa,N),"fillColor=#000000;fillOpacity=25;"),x[m].vertex=!0,q[m].insert(x[m])),x[m].value=f(g["Tab_"+(m+1)]),x[m].style+=b(g["Tab_"+(m+1)],z),0>x[m].style.indexOf(";align=")&&
+(x[m].style+="align=left;spacingLeft=2;"),x[m].style+=a(x[m].style,g,k,x[m]);oa=H(g,k);oa=oa.replace("strokeColor","fillColor2");""==oa&&(oa="fillColor2=#000000;");1==g.vScroll&&(x=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-20-N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,t-N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),x.geometry.relative=!0,x.geometry.offset=
+new mxPoint(-20,N),x.vertex=!0,v.insert(x),v.style+="spacingRight=20;",x.style+=oa,x.style+=a(x.style,g,k,x));1==g.hScroll&&(G=1==g.vScroll?new mxCell("",new mxGeometry(0,1,u-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(0,-20),G.vertex=!0,v.insert(G),G.style+=oa,G.style+=a(G.style,g,k,G));break;
+case "UI2TabBar2ContainerBlock":v.style+="strokeColor=none;fillColor=none;";q=[];x=[];N=25;Wa=3;ba=(u+Wa)/g.Tabs;ya=new mxCell("",new mxGeometry(0,N,u,t-N),"part=1;");ya.vertex=!0;v.insert(ya);ya.style+=a(ya.style,g,k,ya);for(m=0;m<=g.Tabs-1;m++)m==g.Selected-1?(x[m]=new mxCell("",new mxGeometry(m*ba,0,ba-Wa,N),""),x[m].vertex=!0,v.insert(x[m])):(q[m]=new mxCell("",new mxGeometry(m*ba,0,ba-Wa,N),"strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=a(q[m].style,g,k,q[m]),x[m]=new mxCell("",
+new mxGeometry(0,0,ba-Wa,N),"fillColor=#000000;fillOpacity=25;"),x[m].vertex=!0,q[m].insert(x[m])),x[m].value=f(g["Tab_"+(m+1)]),x[m].style+=b(g["Tab_"+(m+1)],z),x[m].style+=a(x[m].style,g,k,x[m],z),0>x[m].style.indexOf(";align=")&&(x[m].style+="align=left;spacingLeft=2;");oa=H(g,k);oa=oa.replace("strokeColor","fillColor2");""==oa&&(oa="fillColor2=#000000;");1==g.vScroll&&(x=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-20-N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):
+new mxCell("",new mxGeometry(1,0,20,t-N),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),x.geometry.relative=!0,x.geometry.offset=new mxPoint(-20,N),x.vertex=!0,v.insert(x),v.style+="spacingRight=20;",x.style+=oa,x.style+=a(x.style,g,k,x));1==g.hScroll&&(G=1==g.vScroll?new mxCell("",new mxGeometry(0,1,u-20,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(0,1,u,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),
+G.geometry.relative=!0,G.geometry.offset=new mxPoint(0,-20),G.vertex=!0,v.insert(G),G.style+=oa,G.style+=a(G.style,g,k,G));break;case "UI2VTabBarContainerBlock":v.style+="strokeColor=none;fillColor=none;";q=[];x=[];Wa=3;N=25+Wa;ba=80;Lb=10;ya=new mxCell("",new mxGeometry(ba,0,u-ba,t),"part=1;");ya.vertex=!0;v.insert(ya);ya.style+=a(ya.style,g,k,ya);for(m=0;m<=g.Tabs-1;m++)m==g.Selected-1?(x[m]=new mxCell("",new mxGeometry(0,Lb+m*N,ba,N-Wa),""),x[m].vertex=!0,v.insert(x[m]),x[m].value=f(g["Tab_"+(m+
+1)]),x[m].style+=b(g["Tab_"+(m+1)],z),x[m].style+=a(x[m].style,g,k,x[m],z)):(q[m]=new mxCell("",new mxGeometry(0,Lb+m*N,ba,N-Wa),"strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=a(q[m].style,g,k,q[m]),x[m]=new mxCell("",new mxGeometry(0,0,ba,N-Wa),"fillColor=#000000;fillOpacity=25;"),x[m].vertex=!0,q[m].insert(x[m]),x[m].value=f(g["Tab_"+(m+1)]),x[m].style+=b(g["Tab_"+(m+1)],z)),0>x[m].style.indexOf(";align=")&&(x[m].style+="align=left;spacingLeft=2;"),x[m].style+=a(x[m].style,g,k,x[m]);
+oa=H(g,k);oa=oa.replace("strokeColor","fillColor2");""==oa&&(oa="fillColor2=#000000;");1==g.vScroll&&(x=1==g.hScroll?new mxCell("",new mxGeometry(1,0,20,t-20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"):new mxCell("",new mxGeometry(1,0,20,t),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;"),x.geometry.relative=!0,x.geometry.offset=new mxPoint(-20,0),x.vertex=!0,v.insert(x),v.style+="spacingRight=20;",x.style+=
+oa,x.style+=a(x.style,g,k,x));1==g.hScroll&&(G=1==g.vScroll?new mxCell("",new mxGeometry(ba,1,u-20-ba,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"):new mxCell("",new mxGeometry(ba,1,u-ba,20),"part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;"),G.geometry.relative=!0,G.geometry.offset=new mxPoint(0,-20),G.vertex=!0,v.insert(G),G.style+=oa,G.style+=a(G.style,g,k,G));break;case "UI2CheckBoxBlock":v.style+="strokeColor=none;fillColor=none;";N=t/
+g.Options;q=[];x=[];for(m=0;m<g.Options;m++)q[m]=new mxCell("",new mxGeometry(0,m*N+.5*N-5,10,10),"labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Option_"+(m+1)]),q[m].style+=b(g["Option_"+(m+1)],z),q[m].style+=a(q[m].style,g,k,q[m],z),null!=g.Selected[m+1]&&1==g.Selected[m+1]&&(J=H(g,k),J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),x[m]=new mxCell("",new mxGeometry(2,2,
+6,6),"shape=mxgraph.mscae.general.checkmark;part=1;"),x[m].vertex=!0,q[m].insert(x[m]),x[m].style+=J,x[m].style+=a(x[m].style,g,k,x[m]));break;case "UI2HorizontalCheckBoxBlock":v.style+="strokeColor=none;fillColor=none;";ba=u/g.Options;q=[];x=[];for(m=0;m<g.Options;m++)q[m]=new mxCell("",new mxGeometry(m*ba,.5*t-5,10,10),"labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Option_"+(m+1)]),q[m].style+=
+b(g["Option_"+(m+1)],z),q[m].style+=a(q[m].style,g,k,q[m],z),null!=g.Selected[m+1]&&1==g.Selected[m+1]&&(J=H(g,k),J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),x[m]=new mxCell("",new mxGeometry(2,2,6,6),"shape=mxgraph.mscae.general.checkmark;part=1;"),x[m].vertex=!0,q[m].insert(x[m]),x[m].style+=J,x[m].style+=a(x[m].style,g,k,x[m]));break;case "UI2RadioBlock":v.style+="strokeColor=none;fillColor=none;";N=t/g.Options;q=[];x=[];for(m=0;m<g.Options;m++)q[m]=new mxCell("",new mxGeometry(0,
+m*N+.5*N-5,10,10),"ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Option_"+(m+1)]),q[m].style+=b(g["Option_"+(m+1)],z),q[m].style+=a(q[m].style,g,k,q[m],z),null!=g.Selected&&g.Selected==m+1&&(J=H(g,k),J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),x[m]=new mxCell("",new mxGeometry(2.5,2.5,5,5),"ellipse;"),x[m].vertex=!0,q[m].insert(x[m]),x[m].style+=J,x[m].style+=
+a(x[m].style,g,k,x[m]));break;case "UI2HorizontalRadioBlock":v.style+="strokeColor=none;fillColor=none;";ba=u/g.Options;q=[];x=[];for(m=0;m<g.Options;m++)q[m]=new mxCell("",new mxGeometry(m*ba,.5*t-5,10,10),"ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Option_"+(m+1)]),q[m].style+=b(g["Option_"+(m+1)],z),q[m].style+=a(q[m].style,g,k,q[m],z),null!=g.Selected&&g.Selected==m+1&&(J=H(g,k),
+J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),x[m]=new mxCell("",new mxGeometry(2,2,6,6),"ellipse;part=1;"),x[m].vertex=!0,q[m].insert(x[m]),x[m].style+=J,x[m].style+=a(x[m].style,g,k,x[m]));break;case "UI2SelectBlock":v.style+="shape=mxgraph.mockup.forms.comboBox;strokeColor=#999999;fillColor=#ddeeff;align=left;fillColor2=#aaddff;mainText=;fontColor=#666666";v.value=f(g.Selected);break;case "UI2HSliderBlock":case "UI2VSliderBlock":v.style+="shape=mxgraph.mockup.forms.horSlider;sliderStyle=basic;handleStyle=handle;";
+"UI2VSliderBlock"==c.Class&&(v.style+="direction=south;");v.style+="sliderPos="+100*g.ScrollVal+";";v.style+=a(v.style,g,k,v);break;case "UI2DatePickerBlock":v.style+="strokeColor=none;fillColor=none;";q=new mxCell("",new mxGeometry(0,0,.6*u,t),"part=1;");q.vertex=!0;v.insert(q);q.value=f(g.Date);q.style+=b(g.Date,z);v.style+=a(v.style,g,k,v);J=H(g,k);J=J.replace("strokeColor","fillColor");""==J&&(J="fillColor=#000000;");x=new mxCell("",new mxGeometry(.75*u,0,.25*u,t),"part=1;shape=mxgraph.gmdl.calendar;");
+x.vertex=!0;v.insert(x);x.style+=J;x.style+=a(x.style,g,k,x);break;case "UI2SearchBlock":v.value=f(g.Search);v.style+="shape=mxgraph.mockup.forms.searchBox;mainText=;flipH=1;align=left;spacingLeft=26;"+b(g.Search,z);v.style+=a(v.style,g,k,v,z);break;case "UI2NumericStepperBlock":J=H(g,k);J=J.replace("strokeColor","fillColor");""==J&&(J="fillColor=#000000;");v.value=f(g.Number);v.style+="shape=mxgraph.mockup.forms.spinner;spinLayout=right;spinStyle=normal;adjStyle=triangle;mainText=;align=left;spacingLeft=8;"+
+J+b(g.Number,z);v.style+=a(v.style,g,k,v,z);break;case "UI2TableBlock":try{var Ba=ka(g.FillColor),qd=ka(g.LineColor),ge,kc="",Hd=20;v.style="html=1;overflow=fill;verticalAlign=top;spacing=0;";var nc='<table style="width:100%;height:100%;border-collapse: collapse;border: 1px solid '+qd+';">',Fb=g.Data.split("\n");ge=g.AltRow&&"default"!=g.AltRow?"none"==g.AltRow?Ba:ka(g.AltRow):Ud(Ba,.95);gc=g.Header&&"default"!=g.Header?"none"==g.Header?ge:ka(g.Header):Ud(Ba,.8);if("full"==g.GridLines)kc="border: 1px solid "+
+qd,Hd=19;else if("row"==g.GridLines)kc="border-bottom: 1px solid "+qd,Hd=19;else if("default"==g.GridLines||"column"==g.GridLines)kc="border-right: 1px solid "+qd;Fb=Fb.filter(function(a){return a});/^\{[^}]*\}$/.test(Fb[Fb.length-1])&&Fb.pop();for(var Wc=Fb[0].split(",").length,Oe="",P=0;P<Wc-1;P++)Oe+=" , ";for(m=Fb.length;m<Math.ceil(t/20);m++)Fb.push(Oe);for(m=0;m<Fb.length;m++){for(var nc=nc+('<tr style="height: '+Hd+"px;background:"+(0==m?gc:m%2?Ba:ge)+'">'),Pe=Fb[m].split(","),P=0;P<Pe.length;P++)var rd=
+g["Cell_"+m+"_"+P],of=rd&&rd.m&&rd.m[0]&&"c"==rd.m[0].n?ka(rd.m[0].v):qd,nc=nc+('<td style="height: '+Hd+"px;color:"+of+";"+kc+'">'+mxUtils.htmlEntities(Pe[P])+"</td>");nc+="</tr>"}nc+="</table>";v.value=nc}catch(db){console.log(db)}break;case "UI2ButtonBarBlock":v.style+=a(v.style,g,k,v);q=[];x=[];ba=u/g.Buttons;for(m=0;m<=g.Buttons-1;m++)m==g.Selected-1?(x[m]=new mxCell("",new mxGeometry(m*ba,0,ba,t),""),x[m].vertex=!0,v.insert(x[m])):(q[m]=new mxCell("",new mxGeometry(m*ba,0,ba,t),"strokeColor=none;"),
+q[m].vertex=!0,v.insert(q[m]),q[m].style+=q[m].style+=a(q[m].style,g,k,q[m]),x[m]=new mxCell("",new mxGeometry(0,0,ba,t),"fillColor=#000000;fillOpacity=25;"),x[m].vertex=!0,q[m].insert(x[m])),x[m].value=f(g["Button_"+(m+1)]),x[m].style+=b(g["Button_"+(m+1)],z),x[m].style+=a(x[m].style,g,k,x[m],z);break;case "UI2VerticalButtonBarBlock":v.style+=a(v.style,g,k,v);q=[];x=[];N=t/g.Buttons;for(m=0;m<=g.Buttons-1;m++)m==g.Selected-1?(x[m]=new mxCell("",new mxGeometry(0,m*N,u,N),""),x[m].vertex=!0,v.insert(x[m])):
+(q[m]=new mxCell("",new mxGeometry(0,m*N,u,N),"strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].style+=a(q[m].style,g,k,q[m]),x[m]=new mxCell("",new mxGeometry(0,0,u,N),"fillColor=#000000;fillOpacity=25;"),x[m].vertex=!0,q[m].insert(x[m])),x[m].value=f(g["Button_"+(m+1)]),x[m].style+=b(g["Button_"+(m+1)],z),x[m].style+=a(x[m].style,g,k,x[m],z);break;case "UI2LinkBarBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,k,v);q=[];x=[];ba=u/g.Links;for(m=0;m<g.Links;m++)0!=m?
+(x[m]=new mxCell("",new mxGeometry(m*ba,0,ba,t),"shape=partialRectangle;top=0;bottom=0;right=0;fillColor=none;"),x[m].style+=a(x[m].style,g,k,x[m])):x[m]=new mxCell("",new mxGeometry(m*ba,0,ba,t),"fillColor=none;strokeColor=none;"),x[m].vertex=!0,v.insert(x[m]),x[m].value=f(g["Link_"+(m+1)]),x[m].style+=b(g["Link_"+(m+1)],z);break;case "UI2BreadCrumbsBlock":v.style+="strokeColor=none;fillColor=none;";v.style+=a(v.style,g,k,v);q=[];x=[];ba=u/g.Links;for(m=0;m<g.Links;m++)q[m]=new mxCell("",new mxGeometry(m*
+ba,0,ba,t),"fillColor=none;strokeColor=none;"),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["Link_"+(m+1)]),q[m].style+=b(g["Link_"+(m+1)],z);for(m=1;m<g.Links;m++)x[m]=new mxCell("",new mxGeometry(m/g.Links,.5,6,10),"shape=mxgraph.ios7.misc.right;"),x[m].geometry.relative=!0,x[m].geometry.offset=new mxPoint(-3,-5),x[m].vertex=!0,v.insert(x[m]);break;case "UI2MenuBarBlock":v.style+="strokeColor=none;";v.style+=a(v.style,g,k,v);q=[];ba=u/(g.Buttons+1);for(m=0;m<=g.Buttons-1;m++)q[m]=m!=g.Selected-
1?new mxCell("",new mxGeometry(0,0,ba,t),"strokeColor=none;fillColor=none;resizeHeight=1;"):new mxCell("",new mxGeometry(0,0,ba,t),"fillColor=#000000;fillOpacity=25;strokeColor=none;resizeHeight=1;"),q[m].geometry.relative=!0,q[m].geometry.offset=new mxPoint(m*ba,0),q[m].vertex=!0,v.insert(q[m]),q[m].value=f(g["MenuItem_"+(m+1)]),q[m].style+=b(g["MenuItem_"+(m+1)],z);break;case "UI2AtoZBlock":v.style+="fillColor=none;strokeColor=none;"+b(g.Text_0);v.value="0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z";
-break;case "UI2PaginationBlock":v.style+="fillColor=none;strokeColor=none;"+b(g.Text_prev);v.value=f(g.Text_prev)+" ";for(m=0;m<g.Links;m++)v.value+=f(g["Link_"+(m+1)])+" ";v.value+=f(g.Text_next);break;case "UI2ContextMenuBlock":v.style+=a(v.style,g,l,v);for(var I=[],Ea=[],Gc=[],N=t/g.Lines,Q=null,m=0;m<g.Lines;m++)null!=g["Item_"+(m+1)]&&(null==Q&&(Q=""+h(g["Item_"+(m+1)])+x(g["Item_"+(m+1)])+w(g["Item_"+(m+1)])),I[m]=new mxCell("",new mxGeometry(0,m*t/g.Lines,u,N),"strokeColor=none;fillColor=none;spacingLeft=20;align=left;html=1;"),
-I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q,I[m].value=f(g["Item_"+(m+1)])),null!=g.Icons[m+1]&&null!=I[m]&&("dot"==g.Icons[m+1]?(Ea[m]=new mxCell("",new mxGeometry(0,.5,8,8),"ellipse;strokeColor=none;"),Ea[m].geometry.offset=new mxPoint(6,-4)):"check"==g.Icons[m+1]&&(Ea[m]=new mxCell("",new mxGeometry(0,.5,7,8),"shape=mxgraph.mscae.general.checkmark;strokeColor=none;"),Ea[m].geometry.offset=new mxPoint(6.5,-4)),null!=Ea[m]&&(Ea[m].geometry.relative=!0,Ea[m].vertex=!0,I[m].insert(Ea[m]),J=H(g,l),
-J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),Ea[m].style+=J)),null!=g["Shortcut_"+(m+1)]&&(null==Q&&(Q=""+h(g["Shortcut_"+(m+1)])+x(g["Shortcut_"+(m+1)])+w(g["Shortcut_"+(m+1)])),Gc[m]=new mxCell("",new mxGeometry(.6*u,m*t/g.Lines,.4*u,N),"strokeColor=none;fillColor=none;spacingRight=3;align=right;html=1;"),Gc[m].vertex=!0,v.insert(Gc[m]),Gc[m].style+=Q,Gc[m].value=f(g["Shortcut_"+(m+1)])),null!=g.Dividers[m+1]&&(I[m]=new mxCell("",new mxGeometry(.05*u,m*t/g.Lines,.9*u,N),
-"shape=line;strokeWidth=1;"),I[m].vertex=!0,v.insert(I[m]),I[m].style+=H(g,l));break;case "UI2ProgressBarBlock":v.style+="shape=mxgraph.mockup.misc.progressBar;fillColor2=#888888;barPos="+100*g.ScrollVal+";";break;case "CalloutSquareBlock":case "UI2TooltipSquareBlock":v.value=f(g.Tip||g.Text);v.style+="html=1;shape=callout;flipV=1;base=13;size=7;position=0.5;position2=0.66;rounded=1;arcSize="+g.RoundCorners+";"+b(g.Tip||g.Text,z);v.style+=a(v.style,g,l,v,z);v.geometry.height+=10;break;case "UI2CalloutBlock":v.value=
-f(g.Txt);v.style+="shape=ellipse;perimeter=ellipsePerimeter;"+b(g.Txt,z);v.style+=a(v.style,g,l,v,z);break;case "UI2AlertBlock":v.value=f(g.Txt);v.style+=b(g.Txt,z);v.style+=a(v.style,g,l,v,z);q=new mxCell("",new mxGeometry(0,0,u,30),"part=1;resizeHeight=0;");q.vertex=!0;v.insert(q);q.value=f(g.Title);q.style+=b(g.Title,z);q.style+=a(q.style,g,l,q,z);y=new mxCell("",new mxGeometry(1,.5,20,20),"ellipse;part=1;strokeColor=#008cff;resizable=0;fillColor=none;html=1;");y.geometry.relative=!0;y.geometry.offset=
-new mxPoint(-25,-10);y.vertex=!0;q.insert(y);for(var of=45*g.Buttons+(10*g.Buttons-1),G=[],m=0;m<g.Buttons;m++)G[m]=new mxCell("",new mxGeometry(.5,1,45,20),"part=1;html=1;"),G[m].geometry.relative=!0,G[m].geometry.offset=new mxPoint(.5*-of+55*m,-40),G[m].vertex=!0,v.insert(G[m]),G[m].value=f(g["Button_"+(m+1)]),G[m].style+=b(g["Button_"+(m+1)],z),G[m].style+=a(G[m].style,g,l,G[m],z);break;case "UMLClassBlock":if(0==g.Simple){Q=X(g,l);va=Math.round(.75*g.TitleHeight)||25;Q=Q.replace("fillColor","swimlaneFillColor");
-""==Q&&(Q="swimlaneFillColor=#ffffff;");v.value=f(g.Title);v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;fontStyle=0;marginBottom=0;"+Q+"startSize="+va+";"+b(g.Title,z);v.style+=a(v.style,g,l,v,z);for(var I=[],fe=[],Oa=va/t,kb=va,m=0;m<=g.Attributes;m++)0<m&&(fe[m]=new mxCell("",new mxGeometry(0,kb,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),
-kb+=8,fe[m].vertex=!0,v.insert(fe[m])),N=0,0==g.Attributes?N=m=1:m<g.Attributes?(N=g["Text"+(m+1)+"Percent"],Oa+=N):N=1-Oa,Db=Math.round((t-va)*N)+(g.ExtraHeightSet&&1==m?.75*g.ExtraHeight:0),I[m]=new mxCell("",new mxGeometry(0,kb,u,Db),"part=1;html=1;whiteSpace=wrap;resizeHeight=0;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),kb+=Db,I[m].vertex=!0,v.insert(I[m]),I[m].style+=
-Q+S(g,l,I[m])+b(g["Text"+(m+1)],z),I[m].value=f(g["Text"+(m+1)])}else v.value=f(g.Title),v.style+=b(g.Title,z),v.style+=a(v.style,g,l,v,z);break;case "ERDEntityBlock":Q=X(g,l);va=.75*g.Name_h;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.value=f(g.Name);v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;fontStyle=0;marginBottom=0;"+Q+"startSize="+va+";"+b(g.Name,z);v.style+=
-a(v.style,g,l,v,z);v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+X(g,l);I=[];Oa=va/t;kb=va;for(m=0;m<g.Fields;m++)N=0,Db=.75*g["Field"+(m+1)+"_h"],I[m]=new mxCell("",new mxGeometry(0,kb,u,Db),"part=1;resizeHeight=0;strokeColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;whiteSpace=wrap;"),kb+=Db,I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q+b(g["Field"+(m+1)],z),I[m].style=1==g.AltRows&&
-0!=m%2?I[m].style+"fillColor=#000000;opacity=5;":I[m].style+("fillColor=none;"+S(g,l,I[m])),I[m].value=f(g["Field"+(m+1)]);break;case "ERDEntityBlock2":Q=X(g,l);va=.75*g.Name_h;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.value=f(g.Name);v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;fontStyle=0;"+Q+"startSize="+va+";"+b(g.Name,z);v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+X(g,l);v.style+=a(v.style,
-g,l,v,z);var I=[],da=[],Oa=va,Ya=30;null!=g.Column1&&(Ya=.75*g.Column1);for(m=0;m<g.Fields;m++)N=0,da[m]=new mxCell("",new mxGeometry(0,Oa,Ya,.75*g["Key"+(m+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;whiteSpace=wrap;"),da[m].vertex=!0,v.insert(da[m]),da[m].style+=Q+b(g["Key"+(m+1)],z),da[m].style=1==g.AltRows&&0!=m%2?da[m].style+"fillColor=#000000;fillOpacity=5;":
-da[m].style+("fillColor=none;"+S(g,l,da[m])),da[m].value=f(g["Key"+(m+1)]),I[m]=new mxCell("",new mxGeometry(Ya,Oa,u-Ya,.75*g["Field"+(m+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;whiteSpace=wrap;"),I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q+b(g["Field"+(m+1)],z),v.style+=a(v.style,g,l,v),I[m].style=1==g.AltRows&&0!=m%2?
-I[m].style+"fillColor=#000000;fillOpacity=5;":I[m].style+("fillColor=none;"+S(g,l,I[m])),I[m].value=f(g["Field"+(m+1)]),Oa+=.75*g["Key"+(m+1)+"_h"];break;case "ERDEntityBlock3":Q=X(g,l);va=.75*g.Name_h;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;fontStyle=0;"+Q+"startSize="+va+";"+b(g.Name);v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+X(g,l);v.value=
-f(g.Name);v.style+=a(v.style,g,l,v,z);I=[];da=[];Oa=va;Ya=30;null!=g.Column1&&(Ya=.75*g.Column1);for(m=0;m<g.Fields;m++)N=0,da[m]=new mxCell("",new mxGeometry(0,Oa,Ya,.75*g["Field"+(m+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),da[m].vertex=!0,v.insert(da[m]),da[m].style+=Q+b(g["Field"+(m+1)],z),da[m].style=1==g.AltRows&&0!=m%2?da[m].style+
-"fillColor=#000000;fillOpacity=5;":da[m].style+("fillColor=none;"+S(g,l,da[m])),da[m].value=f(g["Field"+(m+1)]),da[m].style+=a(da[m].style,g,l,da[m],z),I[m]=new mxCell("",new mxGeometry(Ya,Oa,u-Ya,.75*g["Type"+(m+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q+b(g["Type"+
-(m+1)],z),I[m].style=1==g.AltRows&&0!=m%2?I[m].style+"fillColor=#000000;fillOpacity=5;":I[m].style+("fillColor=none;"+S(g,l,I[m])),I[m].value=f(g["Type"+(m+1)]),I[m].style+=a(I[m].style,g,l,I[m],z),Oa+=.75*g["Field"+(m+1)+"_h"];break;case "ERDEntityBlock4":Q=X(g,l);va=.75*g.Name_h;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;fontStyle=0;"+Q+"startSize="+va+";"+b(g.Name);
-v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+X(g,l);v.value=f(g.Name);v.style+=a(v.style,g,l,v,z);var I=[],da=[],Za=[],Oa=va,Ya=30,Hd=40;null!=g.Column1&&(Ya=.75*g.Column1);null!=g.Column2&&(Hd=.75*g.Column2);for(m=0;m<g.Fields;m++)N=0,da[m]=new mxCell("",new mxGeometry(0,Oa,Ya,.75*g["Key"+(m+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),
-da[m].vertex=!0,v.insert(da[m]),da[m].style+=Q+b(g["Key"+(m+1)],z),da[m].style=1==g.AltRows&&0!=m%2?da[m].style+"fillColor=#000000;fillOpacity=5;":da[m].style+("fillColor=none;"+S(g,l,da[m])),da[m].value=f(g["Key"+(m+1)]),da[m].style+=a(da[m].style,g,l,da[m],z),I[m]=new mxCell("",new mxGeometry(Ya,Oa,u-Ya-Hd,.75*g["Field"+(m+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),
-I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q+b(g["Field"+(m+1)],z),I[m].style=1==g.AltRows&&0!=m%2?I[m].style+"fillColor=#000000;fillOpacity=5;":I[m].style+("fillColor=none;"+S(g,l,I[m])),I[m].value=f(g["Field"+(m+1)]),I[m].style+=a(I[m].style,g,l,I[m],z),Za[m]=new mxCell("",new mxGeometry(u-Hd,Oa,Hd,.75*g["Type"+(m+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),
-Za[m].vertex=!0,v.insert(Za[m]),Za[m].style+=Q+b(g["Type"+(m+1)],z),Za[m].style=1==g.AltRows&&0!=m%2?Za[m].style+"fillColor=#000000;fillOpacity=5;":Za[m].style+("fillColor=none;"+S(g,l,Za[m])),Za[m].value=f(g["Type"+(m+1)]),Za[m].style+=a(Za[m].style,g,l,Za[m],z),Oa+=.75*g["Key"+(m+1)+"_h"];break;case "GCPServiceCardApplicationSystemBlock":fa("application_system",u,t,v,g,l);break;case "GCPServiceCardAuthorizationBlock":fa("internal_payment_authorization",u,t,v,g,l);break;case "GCPServiceCardBlankBlock":fa("blank",
-u,t,v,g,l);break;case "GCPServiceCardReallyBlankBlock":fa("blank",u,t,v,g,l);break;case "GCPServiceCardBucketBlock":fa("bucket",u,t,v,g,l);break;case "GCPServiceCardCDNInterconnectBlock":fa("google_network_edge_cache",u,t,v,g,l);break;case "GCPServiceCardCloudDNSBlock":fa("blank",u,t,v,g,l);break;case "GCPServiceCardClusterBlock":fa("cluster",u,t,v,g,l);break;case "GCPServiceCardDiskSnapshotBlock":fa("persistent_disk_snapshot",u,t,v,g,l);break;case "GCPServiceCardEdgePopBlock":fa("google_network_edge_cache",
-u,t,v,g,l);break;case "GCPServiceCardFrontEndPlatformServicesBlock":fa("frontend_platform_services",u,t,v,g,l);break;case "GCPServiceCardGatewayBlock":fa("gateway",u,t,v,g,l);break;case "GCPServiceCardGoogleNetworkBlock":fa("google_network_edge_cache",u,t,v,g,l);break;case "GCPServiceCardImageServicesBlock":fa("image_services",u,t,v,g,l);break;case "GCPServiceCardLoadBalancerBlock":fa("network_load_balancer",u,t,v,g,l);break;case "GCPServiceCardLocalComputeBlock":fa("dedicated_game_server",u,t,v,
-g,l);break;case "GCPServiceCardLocalStorageBlock":fa("persistent_disk_snapshot",u,t,v,g,l);break;case "GCPServiceCardLogsAPIBlock":fa("logs_api",u,t,v,g,l);break;case "GCPServiceCardMemcacheBlock":fa("memcache",u,t,v,g,l);break;case "GCPServiceCardNATBlock":fa("nat",u,t,v,g,l);break;case "GCPServiceCardPaymentFormBlock":fa("external_payment_form",u,t,v,g,l);break;case "GCPServiceCardPushNotificationsBlock":fa("push_notification_service",u,t,v,g,l);break;case "GCPServiceCardScheduledTasksBlock":fa("scheduled_tasks",
-u,t,v,g,l);break;case "GCPServiceCardServiceDiscoveryBlock":fa("service_discovery",u,t,v,g,l);break;case "GCPServiceCardSquidProxyBlock":fa("squid_proxy",u,t,v,g,l);break;case "GCPServiceCardTaskQueuesBlock":fa("task_queues",u,t,v,g,l);break;case "GCPServiceCardVirtualFileSystemBlock":fa("virtual_file_system",u,t,v,g,l);break;case "GCPServiceCardVPNGatewayBlock":fa("gateway",u,t,v,g,l);break;case "GCPInputDatabase":pa("database",1,.9,u,t,v,g,l);break;case "GCPInputRecord":pa("record",1,.66,u,t,v,
-g,l);break;case "GCPInputPayment":pa("payment",1,.8,u,t,v,g,l);break;case "GCPInputGateway":pa("gateway_icon",1,.44,u,t,v,g,l);break;case "GCPInputLocalCompute":pa("compute_engine_icon",1,.89,u,t,v,g,l);break;case "GCPInputBeacon":pa("beacon",.73,1,u,t,v,g,l);break;case "GCPInputStorage":pa("storage",1,.8,u,t,v,g,l);break;case "GCPInputList":pa("list",.89,1,u,t,v,g,l);break;case "GCPInputStream":pa("stream",1,.82,u,t,v,g,l);break;case "GCPInputMobileDevices":pa("mobile_devices",1,.73,u,t,v,g,l);break;
-case "GCPInputCircuitBoard":pa("circuit_board",1,.9,u,t,v,g,l);break;case "GCPInputLive":pa("live",.74,1,u,t,v,g,l);break;case "GCPInputUsers":pa("users",1,.63,u,t,v,g,l);break;case "GCPInputLaptop":pa("laptop",1,.66,u,t,v,g,l);break;case "GCPInputApplication":pa("application",1,.8,u,t,v,g,l);break;case "GCPInputLightbulb":pa("lightbulb",.7,1,u,t,v,g,l);break;case "GCPInputGame":pa("game",1,.54,u,t,v,g,l);break;case "GCPInputDesktop":pa("desktop",1,.9,u,t,v,g,l);break;case "GCPInputDesktopAndMobile":pa("desktop_and_mobile",
-1,.66,u,t,v,g,l);break;case "GCPInputWebcam":pa("webcam",.5,1,u,t,v,g,l);break;case "GCPInputSpeaker":pa("speaker",.7,1,u,t,v,g,l);break;case "GCPInputRetail":pa("retail",1,.89,u,t,v,g,l);break;case "GCPInputReport":pa("report",1,1,u,t,v,g,l);break;case "GCPInputPhone":pa("phone",.64,1,u,t,v,g,l);break;case "GCPInputBlank":pa("transparent",1,1,u,t,v,g,l);break;case "PresentationFrameBlock":0==g.ZOrder?v.style+="strokeColor=none;fillColor=none;":(v.style+=b(g.Text),v.value=f(g.Text),v.style+=a(v.style,
-g,l,v,z));break;case "SVGPathBlock2":try{for(var pf=g.LineWidth,qf=g.LineColor,Oe=g.FillColor,Pe=g.DrawData.Data,Id='<svg viewBox="0 0 1 1" xmlns="http://www.w3.org/2000/svg">',m=0;m<Pe.length;m++){var Hb=Pe[m],rf=Hb.a,sf=("prop"==Hb.w||null==Hb.w?pf:Hb.w)/Math.min(u,t)*.75,hc="prop"==Hb.s||null==Hb.s?qf:Hb.s,J="prop"==Hb.f||null==Hb.f?Oe:Hb.f;"object"==typeof J&&(J=Array.isArray(J.cs)?J.cs[0].c:Oe);Id+='<path d="'+rf+'" fill="'+J+'" stroke="'+hc+'" stroke-width="'+sf+'"/>'}Id+="</svg>";v.style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,"+
-(window.btoa?btoa(Id):Base64.encode(Id,!0))+";"}catch(fb){}break;case "BraceBlock":case "BraceBlockRotated":case "BracketBlock":case "BracketBlockRotated":var Qe=0==ea.indexOf("Bracket")?"size=0;arcSize=50;":"",Re=a(v.style,g,l,v,z),Da=aa(g,l,v);v.style="group;"+Da;var ge=Math.min(.14*(Da?u:t),100),he=new mxCell("",new mxGeometry(0,0,ge,t),"shape=curlyBracket;rounded=1;"+Qe+Re);he.vertex=!0;he.geometry.relative=!0;var ie=new mxCell("",new mxGeometry(1-ge/u,0,ge,t),"shape=curlyBracket;rounded=1;flipH=1;"+
-Qe+Re);ie.vertex=!0;ie.geometry.relative=!0;v.insert(he);v.insert(ie);break;case "BPMNTextAnnotation":case "NoteBlock":g.InsetMargin=null;v.value=f(g.Text);v.style="group;spacingLeft=8;align=left;spacing=0;strokeColor=none;";v.style+=a(v.style,g,l,v,z);0>v.style.indexOf("verticalAlign")&&(v.style+="verticalAlign=middle;");var Hc=new mxCell("",new mxGeometry(0,0,8,t),"shape=partialRectangle;right=0;fillColor=none;");Hc.geometry.relative=!0;Hc.vertex=!0;Hc.style+=a(Hc.style,g,l,v,z);v.insert(Hc);break;
-case "VSMTimelineBlock":case "TimelineBlock":case "TimelineMilestoneBlock":case "TimelineIntervalBlock":LucidImporter.hasTimeLine=!0;LucidImporter.hasUnknownShapes=!0;break;case "FreehandBlock":try{Da=aa(g,l,v);v.style="group;"+Da;if(null!=g.Stencil){null==g.Stencil.id&&(g.Stencil.id="$$tmpId$$",ue(g.Stencil.id,g.Stencil));for(var mc=LucidImporter.stencilsMap[g.Stencil.id],m=0;m<mc.stencils.length;m++){var Fa=mc.stencils[m],R=new mxCell("",new mxGeometry(0,0,u,t),"shape="+Fa.shapeStencil+";"),tf=
-Fa.FillColor,uf=Fa.LineColor,vf=Fa.LineWidth;"prop"==Fa.FillColor&&(Fa.FillColor=g.FillColor);null==Fa.FillColor&&(Fa.FillColor="#ffffff00");"prop"==Fa.LineColor&&(Fa.LineColor=g.LineColor);null==Fa.LineColor&&(Fa.LineColor="#ffffff00");"prop"==Fa.LineWidth&&(Fa.LineWidth=g.LineWidth);R.style+=a(R.style,Fa,l,R,z);Fa.FillColor=tf;Fa.LineColor=uf;Fa.LineWidth=vf;var J=g.FillColor,wf=g.LineColor,xf=g.LineWidth;g.FillColor=null;g.LineColor=null;g.LineWidth=null;R.style+=a(R.style,g,l,R,z);g.FillColor=
-J;g.LineColor=wf;g.LineWidth=xf;R.vertex=!0;R.geometry.relative=!0;v.insert(R)}for(var lb=0,Da=g.Rotation;g["t"+lb];){var Se=g["t"+lb],Te=f(Se);if(Te){var Pa=new mxCell(Te,new mxGeometry(0,0,u,t),"strokeColor=none;fillColor=none;overflow=visible;");g.Rotation=0;Pa.style+=a(Pa.style,Se,l,Pa,z);Pa.style+=a(Pa.style,g,l,Pa,z);g.Rotation=Da;if(null!=mc.text&&null!=mc.text["t"+lb]){var wa=mc.text["t"+lb];wa.Rotation=Da+(wa.rotation?wa.rotation:0)+(g["t"+lb+"_TRotation"]?g["t"+lb+"_TRotation"]:0)+(g["t"+
-lb+"_TAngle"]?g["t"+lb+"_TAngle"]:0);Pa.style+=a(Pa.style,wa,l,Pa,z);var mb=Pa.geometry;wa.w&&(mb.width*=wa.w);wa.h&&(mb.height*=wa.h);wa.x&&(mb.x=wa.x/mc.w);wa.y&&(mb.y=wa.y/mc.h);wa.fw&&(mb.width*=.75*wa.fw/u);wa.fh&&(mb.height*=.75*wa.fh/t);wa.fx&&(mb.x=(0<wa.fx?1:0)+.75*wa.fx/u);wa.fy&&(mb.y=(0<wa.fy?1:0)+.75*wa.fy/t)}Pa.vertex=!0;Pa.geometry.relative=!0;v.insert(Pa)}lb++}}if(g.FillColor&&g.FillColor.url){var qd=new mxCell("",new mxGeometry(0,0,u,t),"shape=image;html=1;");qd.style+=td({},{},g.FillColor.url);
-qd.vertex=!0;qd.geometry.relative=!0;v.insert(qd)}}catch(fb){console.log("Freehand error",fb)}break;case "RightArrowBlock":var je=g.Head*t/u;v.style="shape=singleArrow;arrowWidth="+(1-2*g.Notch)+";arrowSize="+je;v.value=f(g);v.style+=a(v.style,g,l,v,z);break;case "DoubleArrowBlock":je=g.Head*t/u;v.style="shape=doubleArrow;arrowWidth="+(1-2*g.Notch)+";arrowSize="+je;v.value=f(g);v.style+=a(v.style,g,l,v,z);break;case "VPCSubnet2017":case "VirtualPrivateCloudContainer2017":case "ElasticBeanStalkContainer2017":case "EC2InstanceContents2017":case "AWSCloudContainer2017":case "CorporateDataCenterContainer2017":var nc,
-oc,pc;switch(ea){case "VPCSubnet2017":nc="shape=mxgraph.aws3.permissions;fillColor=#D9A741;";oc=30;pc=35;break;case "VirtualPrivateCloudContainer2017":nc="shape=mxgraph.aws3.virtual_private_cloud;fillColor=#F58536;";oc=52;pc=36;break;case "ElasticBeanStalkContainer2017":nc="shape=mxgraph.aws3.elastic_beanstalk;fillColor=#F58536;";oc=30;pc=41;break;case "EC2InstanceContents2017":nc="shape=mxgraph.aws3.instance;fillColor=#F58536;";oc=40;pc=41;break;case "AWSCloudContainer2017":nc="shape=mxgraph.aws3.cloud;fillColor=#F58536;";
-oc=52;pc=36;break;case "CorporateDataCenterContainer2017":nc="shape=mxgraph.aws3.corporate_data_center;fillColor=#7D7C7C;",oc=30,pc=42}v.style="rounded=1;arcSize=10;dashed=0;verticalAlign=bottom;";v.value=f(g);v.style+=a(v.style,g,l,v,z);v.geometry.y+=20;v.geometry.height-=20;Ea=new mxCell("",new mxGeometry(20,-20,oc,pc),nc);Ea.vertex=!0;v.insert(Ea);break;case "FlexiblePolygonBlock":var qc=['<shape strokewidth="inherit"><foreground>'];qc.push("<path>");for(P=0;P<g.Vertices.length;P++)ka=g.Vertices[P],
-0==P?qc.push('<move x="'+100*ka.x+'" y="'+100*ka.y+'"/>'):qc.push('<line x="'+100*ka.x+'" y="'+100*ka.y+'"/>');qc.push("</path>");qc.push("<fillstroke/>");qc.push("</foreground></shape>");v.style="shape=stencil("+Graph.compress(qc.join(""))+");";v.value=f(g);v.style+=a(v.style,g,l,v,z);break;case "InfographicsBlock":var Ue=g.ShapeData_1.Value,ke=g.ShapeData_2.Value-Ue,le=g.ShapeData_3.Value-Ue,Jd=g.ShapeData_4.Value*u/200,lb="ProgressBar"==g.InternalStencilId?4:5,Ba=g["ShapeData_"+lb].Value,Ba="=fillColor()"==
-Ba?g.FillColor:Ba,Ic=g["ShapeData_"+(lb+1)].Value;switch(g.InternalStencilId){case "ProgressDonut":v.style="shape=mxgraph.basic.donut;dx="+Jd+";strokeColor=none;fillColor="+la(Ic)+";"+ta(Ic,"fillOpacity");v.style+=a(v.style,g,l,v,z);var sa=new mxCell("",new mxGeometry(0,0,u,t),"shape=mxgraph.basic.partConcEllipse;startAngle=0;endAngle="+le/ke+";arcWidth="+Jd/u*2+";strokeColor=none;fillColor="+la(Ba)+";"+ta(Ba,"fillOpacity"));sa.style+=a(sa.style,g,l,sa,z);sa.vertex=!0;sa.geometry.relative=1;v.insert(sa);
-break;case "ProgressHalfDonut":v.geometry.height*=2;v.geometry.rotate90();var Ve=le/ke/2;v.style="shape=mxgraph.basic.partConcEllipse;startAngle=0;endAngle="+Ve+";arcWidth="+2*Jd/u+";strokeColor=none;fillColor="+la(Ba)+";"+ta(Ba,"fillOpacity");g.Rotation-=Math.PI/2;v.style+=a(v.style,g,l,v,z);sa=new mxCell("",new mxGeometry(0,0,v.geometry.width,v.geometry.height),"shape=mxgraph.basic.partConcEllipse;startAngle=0;endAngle="+(.5-Ve)+";arcWidth="+2*Jd/u+";strokeColor=none;flipH=1;fillColor="+la(Ic)+
-";"+ta(Ic,"fillOpacity"));g.Rotation+=Math.PI;sa.style+=a(sa.style,g,l,sa,z);sa.vertex=!0;sa.geometry.relative=1;v.insert(sa);break;case "ProgressBar":v.style="strokeColor=none;fillColor="+la(Ic)+";"+ta(Ic,"fillOpacity"),v.style+=a(v.style,g,l,v,z),sa=new mxCell("",new mxGeometry(0,0,u*le/ke,t),"strokeColor=none;fillColor="+la(Ba)+";"+ta(Ba,"fillOpacity")),sa.style+=a(sa.style,g,l,sa,z),sa.vertex=!0,sa.geometry.relative=1,v.insert(sa)}break;case "InternalStorageBlock":v.style+="shape=internalStorage;dx=10;dy=10";
-if(g.Text&&g.Text.m){for(var Kd=g.Text.m,me=!1,ne=!1,m=0;m<Kd.length;m++){var Jc=Kd[m];me||"mt"!=Jc.n?ne||"il"!=Jc.n||(Jc.v=17+(Jc.v||0),ne=!0):(Jc.v=17+(Jc.v||0),me=!0)}me||Kd.push({s:0,n:"mt",v:17});ne||Kd.push({s:0,n:"il",v:17})}v.value=f(g);v.style+=a(v.style,g,l,v,z);break;case "PersonRoleBlock":try{Q=X(g,l);va=t/2;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.value=f(g.Role);v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;"+
-Q+"startSize="+va+";spacingLeft=3;spacingRight=3;fontStyle=0;"+b(g.Role,z);v.style+=a(v.style,g,l,v,z);var Rb=new mxCell("",new mxGeometry(0,t/2,u,t/2),"part=1;html=1;resizeHeight=0;spacingTop=-1;spacingLeft=3;spacingRight=3;");Rb.value=f(g.Name);Rb.vertex=!0;v.insert(Rb);Rb.style+=b(g.Name,z);Rb.style+=a(Rb.style,g,l,Rb,z)}catch(fb){console.log(fb)}}v.style&&0>v.style.indexOf("html")&&(v.style+="html=1;");if(g.Title&&g.Title.t&&g.Text&&g.Text.t)try{var We=v.geometry,Xe=new mxCell(f(g.Title),new mxGeometry(0,
-We.height,We.width,10),"strokeColor=none;fillColor=none;");Xe.vertex=!0;v.insert(Xe);v.style+=b(g.Title,z)}catch(fb){console.log(fb)}te(v,g);g.Hidden&&(v.visible=!1);return v}function te(a,b){if(b.Text_TRotation||b.TextRotation)try{var c=mxUtils.toDegree(b.Text_TRotation||0)+mxUtils.toDegree(b.TextRotation||0);if(!isNaN(c)&&0!=c&&a.value){var h=a.geometry.width,n=a.geometry.height,l=h,d=n,e=0,w=0;if(-90==c||-270==c)var l=n,d=h,x=(n-h)/2,e=-x/h,w=x/n;var c=c+mxUtils.toDegree(b.Rotation),f=a.style.split(";").filter(function(a){return 0>
-a.indexOf("fillColor=")&&0>a.indexOf("strokeColor=")&&0>a.indexOf("rotation=")}).join(";"),p=new mxCell(a.value,new mxGeometry(e,w,l,d),f+"fillColor=none;strokeColor=none;rotation="+c+";");a.value=null;p.geometry.relative=!0;p.vertex=!0;a.insert(p)}}catch(Ze){console.log(Ze)}}function Sc(b,c,h,n,l){function g(a,b){var c="";try{for(var h=0;h<a.text.length;h++){var n=a.text[h];if(n[0]=="t_"+b){for(var l in n[1]){var g=n[1][l];if(g)switch(l){case "font":c+=e(g);break;case "bold":c+="font-weight: bold;";
-break;case "italic":c+="font-style: italic;";break;case "underline":c+="text-decoration: underline;";break;case "size":c+="font-size:"+k(.75*g)+"px;";break;case "color":c+="color:"+ea(g).substring(0,7)+";";break;case "fill":c+="background-color:"+ea(g).substring(0,7)+";";break;case "align":c+="text-align:"+g+";"}}break}}}catch(Kb){}return c}try{var d=function(a,b,c){a=H+a;C[a]=b;b="";for(var h=0;h<r.length;h++)b+='<div style="'+z[h]+'">'+(c[r[h]]||"&nbsp;")+"</div>";h=mxUtils.getSizeForString(b);
-c=c.Image||c["018__ImageUrl__"]||w;if(null!=LucidImporter.imgSrcRepl)for(var g=0;g<LucidImporter.imgSrcRepl.length;g++){var d=LucidImporter.imgSrcRepl[g];c=c.replace(d.searchVal,d.replVal)}b=new mxCell(b,new mxGeometry(0,0,h.width+F,h.height+K),Y+(O?c:""));b.vertex=!0;l[a]=b;n.addCell(b,p)},w="https://cdn4.iconfinder.com/data/icons/basic-user-interface-elements/700/user-account-profile-human-avatar-face-head--128.png",x=c.OrgChartBlockType,f=c.Location,p=new mxCell("",new mxGeometry(.75*f.x,.75*f.y,
-200,100),"group");p.vertex=!0;n.addCell(p);var r=c.FieldNames,A=c.LayoutSettings,B=c.BlockItemDefaultStyle||{props:{}},E=c.EdgeItemDefaultStyle||{props:{}},C={},H=(b||Date.now())+"_";4==x&&(B.props.LineWidth=0);var z=[],F=25,K=40,O=!0,Y=a("",B.props,{},p,!0);0==x?(Y+="spacingTop=54;imageWidth=54;imageHeight=54;imageAlign=center;imageVerticalAlign=top;image=",K+=54):1==x||2==x?(Y+="spacingLeft=54;imageWidth=50;imageHeight=50;imageAlign=left;imageVerticalAlign=top;image=",F+=54):3<=x&&(O=!1);for(b=
-0;b<r.length;b++)z.push(g(B,r[b]));if(h.Items)for(var m=h.Items.n,D=0;D<m.length;D++){var S=m[D];d(S.pk,S.ie[0]?S.ie[0].nf:null,S.f)}else{for(var aa,la=c.ContractMap.derivative,D=0;D<la.length;D++)if("ForeignKeyGraph"==la[D].type)aa=la[D].c[0].id,aa=aa.substr(0,aa.lastIndexOf("_"));else if("MappedGraph"==la[D].type)for(b=0;b<r.length;b++)r[b]=la[D].nfs[r[b]]||r[b];var Z,ta,X;for(X in h){var S=h[X].Collections,ja;for(ja in S)ja==aa?m=S[ja].Items:S[ja].Properties.ForeignKeys&&S[ja].Properties.ForeignKeys[0]&&
-(Z=S[ja].Properties.ForeignKeys[0].SourceFields[0],ta=S[ja].Properties.Schema.PrimaryKey[0]);if(m)break}c={};for(var td in m){var S=m[td],P=S[ta],$a=S[Z];P==$a?(c[P]=P+Date.now(),P=c[P],S[ta]=P,d(P,$a,S)):d(P,c[$a]||$a,S)}}for(X in C){var rc=C[X];if(null!=rc){var ha=l[H+rc],Ma=l[X];if(null!=ha&&null!=Ma){var ia=new mxCell("",new mxGeometry(0,0,100,100),"");ia.geometry.relative=!0;ia.edge=!0;ud(ia,E.props,n,null,null,!0);n.addCell(ia,p,null,ha,Ma)}}}var eb=.75*A.NodeSpacing.LevelSeparation;(new mxOrgChartLayout(n,
-0,eb,.75*A.NodeSpacing.NeighborSeparation)).execute(p);for(D=A=d=0;p.children&&D<p.children.length;D++)var ma=p.children[D].geometry,d=Math.max(d,ma.x+ma.width),A=Math.max(A,ma.y+ma.height);var fa=p.geometry;fa.y-=eb;fa.width=d;fa.height=A}catch(dc){LucidImporter.hasUnknownShapes=!0,LucidImporter.hasOrgChart=!0,console.log(dc)}}var Sb=0,Tb=0,cc="text;html=1;resizable=0;labelBackgroundColor=#ffffff;align=center;verticalAlign=middle;",z=!1,Ca="",Nd=["AEUSBBlock","AGSCutandpasteBlock","iOSDeviceiPadLandscape",
-"iOSDeviceiPadProLandscape"],Od=["fpDoor"],Oc={None:"none;",Arrow:"block;xyzFill=1;","Hollow Arrow":"block;xyzFill=0;","Open Arrow":"open;","CFN ERD Zero Or More Arrow":"ERzeroToMany;xyzSize=10;","CFN ERD One Or More Arrow":"ERoneToMany;xyzSize=10;","CFN ERD Many Arrow":"ERmany;xyzSize=10;","CFN ERD Exactly One Arrow":"ERmandOne;xyzSize=10;","CFN ERD Zero Or One Arrow":"ERzeroToOne;xyzSize=10;","CFN ERD One Arrow":"ERone;xyzSize=16;",Generalization:"block;xyzFill=0;xyzSize=12;","Big Open Arrow":"open;xyzSize=10;",
-Asynch1:"openAsync;flipV=1;xyzSize=10;",Asynch2:"openAsync;xyzSize=10;",Aggregation:"diamond;xyzFill=0;xyzSize=16;",Composition:"diamond;xyzFill=1;xyzSize=16;",BlockEnd:"box;xyzFill=0;xyzSize=16;",Measure:"ERone;xyzSize=10;",CircleOpen:"oval;xyzFill=0;xyzSize=16;",CircleClosed:"oval;xyzFill=1;xyzSize=16;",BlockEndFill:"box;xyzFill=1;xyzSize=16;",Nesting:"circlePlus;xyzSize=7;xyzFill=0;","BPMN Conditional":"diamond;xyzFill=0;","BPMN Default":"dash;"},sc={DefaultTextBlockNew:"strokeColor=none;fillColor=none",
+break;case "UI2PaginationBlock":v.style+="fillColor=none;strokeColor=none;"+b(g.Text_prev);v.value=f(g.Text_prev)+" ";for(m=0;m<g.Links;m++)v.value+=f(g["Link_"+(m+1)])+" ";v.value+=f(g.Text_next);break;case "UI2ContextMenuBlock":v.style+=a(v.style,g,k,v);for(var I=[],Ea=[],Ic=[],N=t/g.Lines,Q=null,m=0;m<g.Lines;m++)null!=g["Item_"+(m+1)]&&(null==Q&&(Q=""+h(g["Item_"+(m+1)])+w(g["Item_"+(m+1)])+y(g["Item_"+(m+1)])),I[m]=new mxCell("",new mxGeometry(0,m*t/g.Lines,u,N),"strokeColor=none;fillColor=none;spacingLeft=20;align=left;html=1;"),
+I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q,I[m].value=f(g["Item_"+(m+1)])),null!=g.Icons[m+1]&&null!=I[m]&&("dot"==g.Icons[m+1]?(Ea[m]=new mxCell("",new mxGeometry(0,.5,8,8),"ellipse;strokeColor=none;"),Ea[m].geometry.offset=new mxPoint(6,-4)):"check"==g.Icons[m+1]&&(Ea[m]=new mxCell("",new mxGeometry(0,.5,7,8),"shape=mxgraph.mscae.general.checkmark;strokeColor=none;"),Ea[m].geometry.offset=new mxPoint(6.5,-4)),null!=Ea[m]&&(Ea[m].geometry.relative=!0,Ea[m].vertex=!0,I[m].insert(Ea[m]),J=H(g,k),
+J=J.replace("strokeColor","fillColor"),""==J&&(J="fillColor=#000000;"),Ea[m].style+=J)),null!=g["Shortcut_"+(m+1)]&&(null==Q&&(Q=""+h(g["Shortcut_"+(m+1)])+w(g["Shortcut_"+(m+1)])+y(g["Shortcut_"+(m+1)])),Ic[m]=new mxCell("",new mxGeometry(.6*u,m*t/g.Lines,.4*u,N),"strokeColor=none;fillColor=none;spacingRight=3;align=right;html=1;"),Ic[m].vertex=!0,v.insert(Ic[m]),Ic[m].style+=Q,Ic[m].value=f(g["Shortcut_"+(m+1)])),null!=g.Dividers[m+1]&&(I[m]=new mxCell("",new mxGeometry(.05*u,m*t/g.Lines,.9*u,N),
+"shape=line;strokeWidth=1;"),I[m].vertex=!0,v.insert(I[m]),I[m].style+=H(g,k));break;case "UI2ProgressBarBlock":v.style+="shape=mxgraph.mockup.misc.progressBar;fillColor2=#888888;barPos="+100*g.ScrollVal+";";break;case "CalloutSquareBlock":case "UI2TooltipSquareBlock":v.value=f(g.Tip||g.Text);v.style+="html=1;shape=callout;flipV=1;base=13;size=7;position=0.5;position2=0.66;rounded=1;arcSize="+g.RoundCorners+";"+b(g.Tip||g.Text,z);v.style+=a(v.style,g,k,v,z);v.geometry.height+=10;break;case "UI2CalloutBlock":v.value=
+f(g.Txt);v.style+="shape=ellipse;perimeter=ellipsePerimeter;"+b(g.Txt,z);v.style+=a(v.style,g,k,v,z);break;case "UI2AlertBlock":v.value=f(g.Txt);v.style+=b(g.Txt,z);v.style+=a(v.style,g,k,v,z);q=new mxCell("",new mxGeometry(0,0,u,30),"part=1;resizeHeight=0;");q.vertex=!0;v.insert(q);q.value=f(g.Title);q.style+=b(g.Title,z);q.style+=a(q.style,g,k,q,z);x=new mxCell("",new mxGeometry(1,.5,20,20),"ellipse;part=1;strokeColor=#008cff;resizable=0;fillColor=none;html=1;");x.geometry.relative=!0;x.geometry.offset=
+new mxPoint(-25,-10);x.vertex=!0;q.insert(x);for(var pf=45*g.Buttons+(10*g.Buttons-1),G=[],m=0;m<g.Buttons;m++)G[m]=new mxCell("",new mxGeometry(.5,1,45,20),"part=1;html=1;"),G[m].geometry.relative=!0,G[m].geometry.offset=new mxPoint(.5*-pf+55*m,-40),G[m].vertex=!0,v.insert(G[m]),G[m].value=f(g["Button_"+(m+1)]),G[m].style+=b(g["Button_"+(m+1)],z),G[m].style+=a(G[m].style,g,k,G[m],z);break;case "UMLClassBlock":if(0==g.Simple){Q=X(g,k);va=Math.round(.75*g.TitleHeight)||25;Q=Q.replace("fillColor","swimlaneFillColor");
+""==Q&&(Q="swimlaneFillColor=#ffffff;");v.value=f(g.Title);v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;fontStyle=0;marginBottom=0;"+Q+"startSize="+va+";"+b(g.Title,z);v.style+=a(v.style,g,k,v,z);for(var I=[],he=[],Ma=va/t,ib=va,m=0;m<=g.Attributes;m++)0<m&&(he[m]=new mxCell("",new mxGeometry(0,ib,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),
+ib+=8,he[m].vertex=!0,v.insert(he[m])),N=0,0==g.Attributes?N=m=1:m<g.Attributes?(N=g["Text"+(m+1)+"Percent"],Ma+=N):N=1-Ma,Cb=Math.round((t-va)*N)+(g.ExtraHeightSet&&1==m?.75*g.ExtraHeight:0),I[m]=new mxCell("",new mxGeometry(0,ib,u,Cb),"part=1;html=1;whiteSpace=wrap;resizeHeight=0;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),ib+=Cb,I[m].vertex=!0,v.insert(I[m]),I[m].style+=
+Q+S(g,k,I[m])+b(g["Text"+(m+1)],z),I[m].value=f(g["Text"+(m+1)])}else v.value=f(g.Title),v.style+=b(g.Title,z),v.style+=a(v.style,g,k,v,z);break;case "ERDEntityBlock":Q=X(g,k);va=.75*g.Name_h;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.value=f(g.Name);v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;fontStyle=0;marginBottom=0;"+Q+"startSize="+va+";"+b(g.Name,z);v.style+=
+a(v.style,g,k,v,z);v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+X(g,k);I=[];Ma=va/t;ib=va;for(m=0;m<g.Fields;m++)N=0,Cb=.75*g["Field"+(m+1)+"_h"],I[m]=new mxCell("",new mxGeometry(0,ib,u,Cb),"part=1;resizeHeight=0;strokeColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;whiteSpace=wrap;"),ib+=Cb,I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q+b(g["Field"+(m+1)],z),I[m].style=1==g.AltRows&&
+0!=m%2?I[m].style+"fillColor=#000000;opacity=5;":I[m].style+("fillColor=none;"+S(g,k,I[m])),I[m].value=f(g["Field"+(m+1)]);break;case "ERDEntityBlock2":Q=X(g,k);va=.75*g.Name_h;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.value=f(g.Name);v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;fontStyle=0;"+Q+"startSize="+va+";"+b(g.Name,z);v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+X(g,k);v.style+=a(v.style,
+g,k,v,z);var I=[],da=[],Ma=va,Xa=30;null!=g.Column1&&(Xa=.75*g.Column1);for(m=0;m<g.Fields;m++)N=0,da[m]=new mxCell("",new mxGeometry(0,Ma,Xa,.75*g["Key"+(m+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;whiteSpace=wrap;"),da[m].vertex=!0,v.insert(da[m]),da[m].style+=Q+b(g["Key"+(m+1)],z),da[m].style=1==g.AltRows&&0!=m%2?da[m].style+"fillColor=#000000;fillOpacity=5;":
+da[m].style+("fillColor=none;"+S(g,k,da[m])),da[m].value=f(g["Key"+(m+1)]),I[m]=new mxCell("",new mxGeometry(Xa,Ma,u-Xa,.75*g["Field"+(m+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;whiteSpace=wrap;"),I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q+b(g["Field"+(m+1)],z),v.style+=a(v.style,g,k,v),I[m].style=1==g.AltRows&&0!=m%2?
+I[m].style+"fillColor=#000000;fillOpacity=5;":I[m].style+("fillColor=none;"+S(g,k,I[m])),I[m].value=f(g["Field"+(m+1)]),Ma+=.75*g["Key"+(m+1)+"_h"];break;case "ERDEntityBlock3":Q=X(g,k);va=.75*g.Name_h;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;fontStyle=0;"+Q+"startSize="+va+";"+b(g.Name);v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+X(g,k);v.value=
+f(g.Name);v.style+=a(v.style,g,k,v,z);I=[];da=[];Ma=va;Xa=30;null!=g.Column1&&(Xa=.75*g.Column1);for(m=0;m<g.Fields;m++)N=0,da[m]=new mxCell("",new mxGeometry(0,Ma,Xa,.75*g["Field"+(m+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),da[m].vertex=!0,v.insert(da[m]),da[m].style+=Q+b(g["Field"+(m+1)],z),da[m].style=1==g.AltRows&&0!=m%2?da[m].style+
+"fillColor=#000000;fillOpacity=5;":da[m].style+("fillColor=none;"+S(g,k,da[m])),da[m].value=f(g["Field"+(m+1)]),da[m].style+=a(da[m].style,g,k,da[m],z),I[m]=new mxCell("",new mxGeometry(Xa,Ma,u-Xa,.75*g["Type"+(m+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q+b(g["Type"+
+(m+1)],z),I[m].style=1==g.AltRows&&0!=m%2?I[m].style+"fillColor=#000000;fillOpacity=5;":I[m].style+("fillColor=none;"+S(g,k,I[m])),I[m].value=f(g["Type"+(m+1)]),I[m].style+=a(I[m].style,g,k,I[m],z),Ma+=.75*g["Field"+(m+1)+"_h"];break;case "ERDEntityBlock4":Q=X(g,k);va=.75*g.Name_h;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.style+="swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;fontStyle=0;"+Q+"startSize="+va+";"+b(g.Name);
+v.style=g.ShadedHeader?v.style+"fillColor=#e0e0e0;":v.style+X(g,k);v.value=f(g.Name);v.style+=a(v.style,g,k,v,z);var I=[],da=[],Ya=[],Ma=va,Xa=30,Id=40;null!=g.Column1&&(Xa=.75*g.Column1);null!=g.Column2&&(Id=.75*g.Column2);for(m=0;m<g.Fields;m++)N=0,da[m]=new mxCell("",new mxGeometry(0,Ma,Xa,.75*g["Key"+(m+1)+"_h"]),"strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),
+da[m].vertex=!0,v.insert(da[m]),da[m].style+=Q+b(g["Key"+(m+1)],z),da[m].style=1==g.AltRows&&0!=m%2?da[m].style+"fillColor=#000000;fillOpacity=5;":da[m].style+("fillColor=none;"+S(g,k,da[m])),da[m].value=f(g["Key"+(m+1)]),da[m].style+=a(da[m].style,g,k,da[m],z),I[m]=new mxCell("",new mxGeometry(Xa,Ma,u-Xa-Id,.75*g["Field"+(m+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),
+I[m].vertex=!0,v.insert(I[m]),I[m].style+=Q+b(g["Field"+(m+1)],z),I[m].style=1==g.AltRows&&0!=m%2?I[m].style+"fillColor=#000000;fillOpacity=5;":I[m].style+("fillColor=none;"+S(g,k,I[m])),I[m].value=f(g["Field"+(m+1)]),I[m].style+=a(I[m].style,g,k,I[m],z),Ya[m]=new mxCell("",new mxGeometry(u-Id,Ma,Id,.75*g["Type"+(m+1)+"_h"]),"shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;"),
+Ya[m].vertex=!0,v.insert(Ya[m]),Ya[m].style+=Q+b(g["Type"+(m+1)],z),Ya[m].style=1==g.AltRows&&0!=m%2?Ya[m].style+"fillColor=#000000;fillOpacity=5;":Ya[m].style+("fillColor=none;"+S(g,k,Ya[m])),Ya[m].value=f(g["Type"+(m+1)]),Ya[m].style+=a(Ya[m].style,g,k,Ya[m],z),Ma+=.75*g["Key"+(m+1)+"_h"];break;case "GCPServiceCardApplicationSystemBlock":ma("application_system",u,t,v,g,k);break;case "GCPServiceCardAuthorizationBlock":ma("internal_payment_authorization",u,t,v,g,k);break;case "GCPServiceCardBlankBlock":ma("blank",
+u,t,v,g,k);break;case "GCPServiceCardReallyBlankBlock":ma("blank",u,t,v,g,k);break;case "GCPServiceCardBucketBlock":ma("bucket",u,t,v,g,k);break;case "GCPServiceCardCDNInterconnectBlock":ma("google_network_edge_cache",u,t,v,g,k);break;case "GCPServiceCardCloudDNSBlock":ma("blank",u,t,v,g,k);break;case "GCPServiceCardClusterBlock":ma("cluster",u,t,v,g,k);break;case "GCPServiceCardDiskSnapshotBlock":ma("persistent_disk_snapshot",u,t,v,g,k);break;case "GCPServiceCardEdgePopBlock":ma("google_network_edge_cache",
+u,t,v,g,k);break;case "GCPServiceCardFrontEndPlatformServicesBlock":ma("frontend_platform_services",u,t,v,g,k);break;case "GCPServiceCardGatewayBlock":ma("gateway",u,t,v,g,k);break;case "GCPServiceCardGoogleNetworkBlock":ma("google_network_edge_cache",u,t,v,g,k);break;case "GCPServiceCardImageServicesBlock":ma("image_services",u,t,v,g,k);break;case "GCPServiceCardLoadBalancerBlock":ma("network_load_balancer",u,t,v,g,k);break;case "GCPServiceCardLocalComputeBlock":ma("dedicated_game_server",u,t,v,
+g,k);break;case "GCPServiceCardLocalStorageBlock":ma("persistent_disk_snapshot",u,t,v,g,k);break;case "GCPServiceCardLogsAPIBlock":ma("logs_api",u,t,v,g,k);break;case "GCPServiceCardMemcacheBlock":ma("memcache",u,t,v,g,k);break;case "GCPServiceCardNATBlock":ma("nat",u,t,v,g,k);break;case "GCPServiceCardPaymentFormBlock":ma("external_payment_form",u,t,v,g,k);break;case "GCPServiceCardPushNotificationsBlock":ma("push_notification_service",u,t,v,g,k);break;case "GCPServiceCardScheduledTasksBlock":ma("scheduled_tasks",
+u,t,v,g,k);break;case "GCPServiceCardServiceDiscoveryBlock":ma("service_discovery",u,t,v,g,k);break;case "GCPServiceCardSquidProxyBlock":ma("squid_proxy",u,t,v,g,k);break;case "GCPServiceCardTaskQueuesBlock":ma("task_queues",u,t,v,g,k);break;case "GCPServiceCardVirtualFileSystemBlock":ma("virtual_file_system",u,t,v,g,k);break;case "GCPServiceCardVPNGatewayBlock":ma("gateway",u,t,v,g,k);break;case "GCPInputDatabase":pa("database",1,.9,u,t,v,g,k);break;case "GCPInputRecord":pa("record",1,.66,u,t,v,
+g,k);break;case "GCPInputPayment":pa("payment",1,.8,u,t,v,g,k);break;case "GCPInputGateway":pa("gateway_icon",1,.44,u,t,v,g,k);break;case "GCPInputLocalCompute":pa("compute_engine_icon",1,.89,u,t,v,g,k);break;case "GCPInputBeacon":pa("beacon",.73,1,u,t,v,g,k);break;case "GCPInputStorage":pa("storage",1,.8,u,t,v,g,k);break;case "GCPInputList":pa("list",.89,1,u,t,v,g,k);break;case "GCPInputStream":pa("stream",1,.82,u,t,v,g,k);break;case "GCPInputMobileDevices":pa("mobile_devices",1,.73,u,t,v,g,k);break;
+case "GCPInputCircuitBoard":pa("circuit_board",1,.9,u,t,v,g,k);break;case "GCPInputLive":pa("live",.74,1,u,t,v,g,k);break;case "GCPInputUsers":pa("users",1,.63,u,t,v,g,k);break;case "GCPInputLaptop":pa("laptop",1,.66,u,t,v,g,k);break;case "GCPInputApplication":pa("application",1,.8,u,t,v,g,k);break;case "GCPInputLightbulb":pa("lightbulb",.7,1,u,t,v,g,k);break;case "GCPInputGame":pa("game",1,.54,u,t,v,g,k);break;case "GCPInputDesktop":pa("desktop",1,.9,u,t,v,g,k);break;case "GCPInputDesktopAndMobile":pa("desktop_and_mobile",
+1,.66,u,t,v,g,k);break;case "GCPInputWebcam":pa("webcam",.5,1,u,t,v,g,k);break;case "GCPInputSpeaker":pa("speaker",.7,1,u,t,v,g,k);break;case "GCPInputRetail":pa("retail",1,.89,u,t,v,g,k);break;case "GCPInputReport":pa("report",1,1,u,t,v,g,k);break;case "GCPInputPhone":pa("phone",.64,1,u,t,v,g,k);break;case "GCPInputBlank":pa("transparent",1,1,u,t,v,g,k);break;case "PresentationFrameBlock":0==g.ZOrder?v.style+="strokeColor=none;fillColor=none;":(v.style+=b(g.Text),v.value=f(g.Text),v.style+=a(v.style,
+g,k,v,z));break;case "SVGPathBlock2":try{for(var qf=g.LineWidth,rf=g.LineColor,Qe=g.FillColor,Re=g.DrawData.Data,Jd='<svg viewBox="0 0 1 1" xmlns="http://www.w3.org/2000/svg">',m=0;m<Re.length;m++){var Gb=Re[m],sf=Gb.a,tf=("prop"==Gb.w||null==Gb.w?qf:Gb.w)/Math.min(u,t)*.75,jc="prop"==Gb.s||null==Gb.s?rf:Gb.s,J="prop"==Gb.f||null==Gb.f?Qe:Gb.f;"object"==typeof J&&(J=Array.isArray(J.cs)?J.cs[0].c:Qe);Jd+='<path d="'+sf+'" fill="'+J+'" stroke="'+jc+'" stroke-width="'+tf+'"/>'}Jd+="</svg>";v.style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/svg+xml,"+
+(window.btoa?btoa(Jd):Base64.encode(Jd,!0))+";"}catch(db){}break;case "BraceBlock":case "BraceBlockRotated":case "BracketBlock":case "BracketBlockRotated":var Se=0==ea.indexOf("Bracket")?"size=0;arcSize=50;":"",Te=a(v.style,g,k,v,z),Da=aa(g,k,v);v.style="group;"+Da;var ie=Math.min(.14*(Da?u:t),100),je=new mxCell("",new mxGeometry(0,0,ie,t),"shape=curlyBracket;rounded=1;"+Se+Te);je.vertex=!0;je.geometry.relative=!0;var ke=new mxCell("",new mxGeometry(1-ie/u,0,ie,t),"shape=curlyBracket;rounded=1;flipH=1;"+
+Se+Te);ke.vertex=!0;ke.geometry.relative=!0;v.insert(je);v.insert(ke);break;case "BPMNTextAnnotation":case "NoteBlock":g.InsetMargin=null;v.value=f(g.Text);v.style="group;spacingLeft=8;align=left;spacing=0;strokeColor=none;";v.style+=a(v.style,g,k,v,z);0>v.style.indexOf("verticalAlign")&&(v.style+="verticalAlign=middle;");var Jc=new mxCell("",new mxGeometry(0,0,8,t),"shape=partialRectangle;right=0;fillColor=none;");Jc.geometry.relative=!0;Jc.vertex=!0;Jc.style+=a(Jc.style,g,k,v,z);v.insert(Jc);break;
+case "VSMTimelineBlock":case "TimelineBlock":case "TimelineMilestoneBlock":case "TimelineIntervalBlock":LucidImporter.hasTimeLine=!0;LucidImporter.hasUnknownShapes=!0;break;case "FreehandBlock":try{Da=aa(g,k,v);v.style="group;"+Da;if(null!=g.Stencil){null==g.Stencil.id&&(g.Stencil.id="$$tmpId$$",we(g.Stencil.id,g.Stencil));for(var oc=LucidImporter.stencilsMap[g.Stencil.id],m=0;m<oc.stencils.length;m++){var Fa=oc.stencils[m],R=new mxCell("",new mxGeometry(0,0,u,t),"shape="+Fa.shapeStencil+";"),uf=
+Fa.FillColor,vf=Fa.LineColor,wf=Fa.LineWidth;"prop"==Fa.FillColor&&(Fa.FillColor=g.FillColor);null==Fa.FillColor&&(Fa.FillColor="#ffffff00");"prop"==Fa.LineColor&&(Fa.LineColor=g.LineColor);null==Fa.LineColor&&(Fa.LineColor="#ffffff00");"prop"==Fa.LineWidth&&(Fa.LineWidth=g.LineWidth);R.style+=a(R.style,Fa,k,R,z);Fa.FillColor=uf;Fa.LineColor=vf;Fa.LineWidth=wf;var J=g.FillColor,xf=g.LineColor,yf=g.LineWidth;g.FillColor=null;g.LineColor=null;g.LineWidth=null;R.style+=a(R.style,g,k,R,z);g.FillColor=
+J;g.LineColor=xf;g.LineWidth=yf;R.vertex=!0;R.geometry.relative=!0;v.insert(R)}for(var jb=0,Da=g.Rotation;g["t"+jb];){var Ue=g["t"+jb],Ve=f(Ue);if(Ve){var Na=new mxCell(Ve,new mxGeometry(0,0,u,t),"strokeColor=none;fillColor=none;overflow=visible;");g.Rotation=0;Na.style+=a(Na.style,Ue,k,Na,z);Na.style+=a(Na.style,g,k,Na,z);g.Rotation=Da;if(null!=oc.text&&null!=oc.text["t"+jb]){var wa=oc.text["t"+jb];wa.Rotation=Da+(wa.rotation?wa.rotation:0)+(g["t"+jb+"_TRotation"]?g["t"+jb+"_TRotation"]:0)+(g["t"+
+jb+"_TAngle"]?g["t"+jb+"_TAngle"]:0);Na.style+=a(Na.style,wa,k,Na,z);var kb=Na.geometry;wa.w&&(kb.width*=wa.w);wa.h&&(kb.height*=wa.h);wa.x&&(kb.x=wa.x/oc.w);wa.y&&(kb.y=wa.y/oc.h);wa.fw&&(kb.width*=.75*wa.fw/u);wa.fh&&(kb.height*=.75*wa.fh/t);wa.fx&&(kb.x=(0<wa.fx?1:0)+.75*wa.fx/u);wa.fy&&(kb.y=(0<wa.fy?1:0)+.75*wa.fy/t)}Na.vertex=!0;Na.geometry.relative=!0;v.insert(Na)}jb++}}if(g.FillColor&&g.FillColor.url){var sd=new mxCell("",new mxGeometry(0,0,u,t),"shape=image;html=1;");sd.style+=bc({},{},g.FillColor.url);
+sd.vertex=!0;sd.geometry.relative=!0;v.insert(sd)}}catch(db){console.log("Freehand error",db)}break;case "RightArrowBlock":var le=g.Head*t/u;v.style="shape=singleArrow;arrowWidth="+(1-2*g.Notch)+";arrowSize="+le;v.value=f(g);v.style+=a(v.style,g,k,v,z);break;case "DoubleArrowBlock":le=g.Head*t/u;v.style="shape=doubleArrow;arrowWidth="+(1-2*g.Notch)+";arrowSize="+le;v.value=f(g);v.style+=a(v.style,g,k,v,z);break;case "VPCSubnet2017":case "VirtualPrivateCloudContainer2017":case "ElasticBeanStalkContainer2017":case "EC2InstanceContents2017":case "AWSCloudContainer2017":case "CorporateDataCenterContainer2017":var pc,
+qc,rc;switch(ea){case "VPCSubnet2017":pc="shape=mxgraph.aws3.permissions;fillColor=#D9A741;";qc=30;rc=35;break;case "VirtualPrivateCloudContainer2017":pc="shape=mxgraph.aws3.virtual_private_cloud;fillColor=#F58536;";qc=52;rc=36;break;case "ElasticBeanStalkContainer2017":pc="shape=mxgraph.aws3.elastic_beanstalk;fillColor=#F58536;";qc=30;rc=41;break;case "EC2InstanceContents2017":pc="shape=mxgraph.aws3.instance;fillColor=#F58536;";qc=40;rc=41;break;case "AWSCloudContainer2017":pc="shape=mxgraph.aws3.cloud;fillColor=#F58536;";
+qc=52;rc=36;break;case "CorporateDataCenterContainer2017":pc="shape=mxgraph.aws3.corporate_data_center;fillColor=#7D7C7C;",qc=30,rc=42}v.style="rounded=1;arcSize=10;dashed=0;verticalAlign=bottom;";v.value=f(g);v.style+=a(v.style,g,k,v,z);v.geometry.y+=20;v.geometry.height-=20;Ea=new mxCell("",new mxGeometry(20,-20,qc,rc),pc);Ea.vertex=!0;v.insert(Ea);break;case "FlexiblePolygonBlock":var sc=['<shape strokewidth="inherit"><foreground>'];sc.push("<path>");for(P=0;P<g.Vertices.length;P++)ia=g.Vertices[P],
+0==P?sc.push('<move x="'+100*ia.x+'" y="'+100*ia.y+'"/>'):sc.push('<line x="'+100*ia.x+'" y="'+100*ia.y+'"/>');sc.push("</path>");sc.push("<fillstroke/>");sc.push("</foreground></shape>");v.style="shape=stencil("+Graph.compress(sc.join(""))+");";v.value=f(g);v.style+=a(v.style,g,k,v,z);break;case "InfographicsBlock":var We=g.ShapeData_1.Value,me=g.ShapeData_2.Value-We,ne=g.ShapeData_3.Value-We,Kd=g.ShapeData_4.Value*u/200,jb="ProgressBar"==g.InternalStencilId?4:5,Ba=g["ShapeData_"+jb].Value,Ba="=fillColor()"==
+Ba?g.FillColor:Ba,Kc=g["ShapeData_"+(jb+1)].Value;switch(g.InternalStencilId){case "ProgressDonut":v.style="shape=mxgraph.basic.donut;dx="+Kd+";strokeColor=none;fillColor="+ka(Kc)+";"+ta(Kc,"fillOpacity");v.style+=a(v.style,g,k,v,z);var sa=new mxCell("",new mxGeometry(0,0,u,t),"shape=mxgraph.basic.partConcEllipse;startAngle=0;endAngle="+ne/me+";arcWidth="+Kd/u*2+";strokeColor=none;fillColor="+ka(Ba)+";"+ta(Ba,"fillOpacity"));sa.style+=a(sa.style,g,k,sa,z);sa.vertex=!0;sa.geometry.relative=1;v.insert(sa);
+break;case "ProgressHalfDonut":v.geometry.height*=2;v.geometry.rotate90();var Xe=ne/me/2;v.style="shape=mxgraph.basic.partConcEllipse;startAngle=0;endAngle="+Xe+";arcWidth="+2*Kd/u+";strokeColor=none;fillColor="+ka(Ba)+";"+ta(Ba,"fillOpacity");g.Rotation-=Math.PI/2;v.style+=a(v.style,g,k,v,z);sa=new mxCell("",new mxGeometry(0,0,v.geometry.width,v.geometry.height),"shape=mxgraph.basic.partConcEllipse;startAngle=0;endAngle="+(.5-Xe)+";arcWidth="+2*Kd/u+";strokeColor=none;flipH=1;fillColor="+ka(Kc)+
+";"+ta(Kc,"fillOpacity"));g.Rotation+=Math.PI;sa.style+=a(sa.style,g,k,sa,z);sa.vertex=!0;sa.geometry.relative=1;v.insert(sa);break;case "ProgressBar":v.style="strokeColor=none;fillColor="+ka(Kc)+";"+ta(Kc,"fillOpacity"),v.style+=a(v.style,g,k,v,z),sa=new mxCell("",new mxGeometry(0,0,u*ne/me,t),"strokeColor=none;fillColor="+ka(Ba)+";"+ta(Ba,"fillOpacity")),sa.style+=a(sa.style,g,k,sa,z),sa.vertex=!0,sa.geometry.relative=1,v.insert(sa)}break;case "InternalStorageBlock":v.style+="shape=internalStorage;dx=10;dy=10";
+if(g.Text&&g.Text.m){for(var Ld=g.Text.m,oe=!1,pe=!1,m=0;m<Ld.length;m++){var Lc=Ld[m];oe||"mt"!=Lc.n?pe||"il"!=Lc.n||(Lc.v=17+(Lc.v||0),pe=!0):(Lc.v=17+(Lc.v||0),oe=!0)}oe||Ld.push({s:0,n:"mt",v:17});pe||Ld.push({s:0,n:"il",v:17})}v.value=f(g);v.style+=a(v.style,g,k,v,z);break;case "PersonRoleBlock":try{Q=X(g,k);va=t/2;Q=Q.replace("fillColor","swimlaneFillColor");""==Q&&(Q="swimlaneFillColor=#ffffff;");v.value=f(g.Role);v.style+="swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;"+
+Q+"startSize="+va+";spacingLeft=3;spacingRight=3;fontStyle=0;"+b(g.Role,z);v.style+=a(v.style,g,k,v,z);var Qb=new mxCell("",new mxGeometry(0,t/2,u,t/2),"part=1;html=1;resizeHeight=0;spacingTop=-1;spacingLeft=3;spacingRight=3;");Qb.value=f(g.Name);Qb.vertex=!0;v.insert(Qb);Qb.style+=b(g.Name,z);Qb.style+=a(Qb.style,g,k,Qb,z)}catch(db){console.log(db)}}v.style&&0>v.style.indexOf("html")&&(v.style+="html=1;");if(g.Title&&g.Title.t&&g.Text&&g.Text.t)try{var Ye=v.geometry,Ze=new mxCell(f(g.Title),new mxGeometry(0,
+Ye.height,Ye.width,10),"strokeColor=none;fillColor=none;");Ze.vertex=!0;v.insert(Ze);v.style+=b(g.Title,z)}catch(db){console.log(db)}ve(v,g);Ib(v,g,e);g.Hidden&&(v.visible=!1);return v}function ve(a,b){if(b.Text_TRotation||b.TextRotation)try{var c=mxUtils.toDegree(b.Text_TRotation||0)+mxUtils.toDegree(b.TextRotation||0);if(!isNaN(c)&&0!=c&&a.value){var h=a.geometry.width,n=a.geometry.height,k=h,d=n,e=0,w=0;if(-90==c||-270==c)var k=n,d=h,y=(n-h)/2,e=-y/h,w=y/n;var c=c+mxUtils.toDegree(b.Rotation),
+f=a.style.split(";").filter(function(a){return 0>a.indexOf("fillColor=")&&0>a.indexOf("strokeColor=")&&0>a.indexOf("rotation=")}).join(";"),p=new mxCell(a.value,new mxGeometry(e,w,k,d),f+"fillColor=none;strokeColor=none;rotation="+c+";");a.value=null;p.geometry.relative=!0;p.vertex=!0;a.insert(p)}}catch(Md){console.log(Md)}}function Uc(b,c,h,n,k){function g(a,b){var c="";try{for(var h=0;h<a.text.length;h++){var n=a.text[h];if(n[0]=="t_"+b){for(var k in n[1]){var g=n[1][k];if(g)switch(k){case "font":c+=
+e(g);break;case "bold":c+="font-weight: bold;";break;case "italic":c+="font-style: italic;";break;case "underline":c+="text-decoration: underline;";break;case "size":c+="font-size:"+l(.75*g)+"px;";break;case "color":c+="color:"+ea(g).substring(0,7)+";";break;case "fill":c+="background-color:"+ea(g).substring(0,7)+";";break;case "align":c+="text-align:"+g+";"}}break}}}catch(Jb){}return c}try{var d=function(a,b,c){a=H+a;B[a]=b;b="";for(var h=0;h<r.length;h++)b+='<div style="'+z[h]+'">'+(c[r[h]]||"&nbsp;")+
+"</div>";h=mxUtils.getSizeForString(b);c=c.Image||c["018__ImageUrl__"]||w;if(null!=LucidImporter.imgSrcRepl)for(var g=0;g<LucidImporter.imgSrcRepl.length;g++){var d=LucidImporter.imgSrcRepl[g];c=c.replace(d.searchVal,d.replVal)}b=new mxCell(b,new mxGeometry(0,0,h.width+F,h.height+K),Y+(O?c:""));b.vertex=!0;k[a]=b;n.addCell(b,p)},w="https://cdn4.iconfinder.com/data/icons/basic-user-interface-elements/700/user-account-profile-human-avatar-face-head--128.png",y=c.OrgChartBlockType,f=c.Location,p=new mxCell("",
+new mxGeometry(.75*f.x,.75*f.y,200,100),"group");p.vertex=!0;n.addCell(p);var r=c.FieldNames,A=c.LayoutSettings,C=c.BlockItemDefaultStyle||{props:{}},E=c.EdgeItemDefaultStyle||{props:{}},B={},H=(b||Date.now())+"_";4==y&&(C.props.LineWidth=0);var z=[],F=25,K=40,O=!0,Y=a("",C.props,{},p,!0);0==y?(Y+="spacingTop=54;imageWidth=54;imageHeight=54;imageAlign=center;imageVerticalAlign=top;image=",K+=54):1==y||2==y?(Y+="spacingLeft=54;imageWidth=50;imageHeight=50;imageAlign=left;imageVerticalAlign=top;image=",
+F+=54):3<=y&&(O=!1);for(b=0;b<r.length;b++)z.push(g(C,r[b]));if(h.Items)for(var m=h.Items.n,D=0;D<m.length;D++){var S=m[D];d(S.pk,S.ie[0]?S.ie[0].nf:null,S.f)}else{for(var aa,ka=c.ContractMap.derivative,D=0;D<ka.length;D++)if("ForeignKeyGraph"==ka[D].type)aa=ka[D].c[0].id,aa=aa.substr(0,aa.lastIndexOf("_"));else if("MappedGraph"==ka[D].type)for(b=0;b<r.length;b++)r[b]=ka[D].nfs[r[b]]||r[b];var Z,ta,X;for(X in h){var S=h[X].Collections,ha;for(ha in S)ha==aa?m=S[ha].Items:S[ha].Properties.ForeignKeys&&
+S[ha].Properties.ForeignKeys[0]&&(Z=S[ha].Properties.ForeignKeys[0].SourceFields[0],ta=S[ha].Properties.Schema.PrimaryKey[0]);if(m)break}c={};for(var cc in m){var S=m[cc],P=S[ta],bc=S[Z];P==bc?(c[P]=P+Date.now(),P=c[P],S[ta]=P,d(P,bc,S)):d(P,c[bc]||bc,S)}}for(X in B){var mb=B[X];if(null!=mb){var tc=k[H+mb],ga=k[X];if(null!=tc&&null!=ga){var Ib=new mxCell("",new mxGeometry(0,0,100,100),"");Ib.geometry.relative=!0;Ib.edge=!0;vd(Ib,E.props,n,null,null,!0);n.addCell(Ib,p,null,tc,ga)}}}var ja=.75*A.NodeSpacing.LevelSeparation;
+(new mxOrgChartLayout(n,0,ja,.75*A.NodeSpacing.NeighborSeparation)).execute(p);for(D=A=d=0;p.children&&D<p.children.length;D++)var la=p.children[D].geometry,d=Math.max(d,la.x+la.width),A=Math.max(A,la.y+la.height);var Ua=p.geometry;Ua.y-=ja;Ua.width=d;Ua.height=A}catch(fc){LucidImporter.hasUnknownShapes=!0,LucidImporter.hasOrgChart=!0,console.log(fc)}}var Rb=0,Sb=0,ec="text;html=1;resizable=0;labelBackgroundColor=#ffffff;align=center;verticalAlign=middle;",z=!1,Ca="",Pd=["AEUSBBlock","AGSCutandpasteBlock",
+"iOSDeviceiPadLandscape","iOSDeviceiPadProLandscape"],Qd=["fpDoor"],Qc={None:"none;",Arrow:"block;xyzFill=1;","Hollow Arrow":"block;xyzFill=0;","Open Arrow":"open;","CFN ERD Zero Or More Arrow":"ERzeroToMany;xyzSize=10;","CFN ERD One Or More Arrow":"ERoneToMany;xyzSize=10;","CFN ERD Many Arrow":"ERmany;xyzSize=10;","CFN ERD Exactly One Arrow":"ERmandOne;xyzSize=10;","CFN ERD Zero Or One Arrow":"ERzeroToOne;xyzSize=10;","CFN ERD One Arrow":"ERone;xyzSize=16;",Generalization:"block;xyzFill=0;xyzSize=12;",
+"Big Open Arrow":"open;xyzSize=10;",Asynch1:"openAsync;flipV=1;xyzSize=10;",Asynch2:"openAsync;xyzSize=10;",Aggregation:"diamond;xyzFill=0;xyzSize=16;",Composition:"diamond;xyzFill=1;xyzSize=16;",BlockEnd:"box;xyzFill=0;xyzSize=16;",Measure:"ERone;xyzSize=10;",CircleOpen:"oval;xyzFill=0;xyzSize=16;",CircleClosed:"oval;xyzFill=1;xyzSize=16;",BlockEndFill:"box;xyzFill=1;xyzSize=16;",Nesting:"circlePlus;xyzSize=7;xyzFill=0;","BPMN Conditional":"diamond;xyzFill=0;","BPMN Default":"dash;"},uc={DefaultTextBlockNew:"strokeColor=none;fillColor=none",
DefaultTextBlock:"strokeColor=none;fillColor=none",DefaultSquareBlock:"",RectangleBlock:"",DefaultNoteBlock:"shape=note;size=15",DefaultNoteBlockV2:"shape=note;size=15",HotspotBlock:"strokeColor=none;fillColor=none",ImageSearchBlock2:"shape=image",UserImage2Block:"shape=image",ExtShapeBoxBlock:"",DefaultStickyNoteBlock:"shadow=1",ProcessBlock:"",DecisionBlock:"rhombus",TerminatorBlock:"rounded=1;arcSize=50",PredefinedProcessBlock:"shape=process",DocumentBlock:"shape=document;boundedLbl=1",MultiDocumentBlock:"shape=mxgraph.flowchart.multi-document",
ManualInputBlock:"shape=manualInput;size=15",PreparationBlock:"shape=hexagon;perimeter=hexagonPerimeter2",DataBlock:"shape=parallelogram;perimeter=parallelogramPerimeter;anchorPointDirection=0",DataBlockNew:"shape=parallelogram;perimeter=parallelogramPerimeter;anchorPointDirection=0",DatabaseBlock:"shape=cylinder3;size=4;anchorPointDirection=0;boundedLbl=1;",DirectAccessStorageBlock:"shape=cylinder3;direction=south;size=10;anchorPointDirection=0;boundedLbl=1;",InternalStorageBlock:"mxCompositeShape",
PaperTapeBlock:"shape=tape;size=0.2",ManualOperationBlockNew:"shape=trapezoid;perimeter=trapezoidPerimeter;anchorPointDirection=0;flipV=1",DelayBlock:"shape=delay",StoredDataBlock:"shape=cylinder3;boundedLbl=1;size=15;lid=0;direction=south;",MergeBlock:"triangle;direction=south;anchorPointDirection=0",ConnectorBlock:"ellipse",OrBlock:"shape=mxgraph.flowchart.summing_function",SummingJunctionBlock:"shape=mxgraph.flowchart.or",DisplayBlock:"shape=display",OffPageLinkBlock:"shape=offPageConnector",BraceNoteBlock:"mxCompositeShape",
@@ -1014,156 +1014,156 @@ SMCalendar:"shape=mxgraph.sitemap.calendar;strokeColor=#000000;fillColor=#E6E6E6
SMGame:"shape=mxgraph.sitemap.game;strokeColor=#000000;fillColor=#E6E6E6",SMJobs:"shape=mxgraph.sitemap.jobs;strokeColor=#000000;fillColor=#E6E6E6",SMLucid:"shape=mxgraph.sitemap.home;strokeColor=#000000;fillColor=#E6E6E6",SMNewspress:"shape=mxgraph.sitemap.news;strokeColor=#000000;fillColor=#E6E6E6",SMPhoto:"shape=mxgraph.sitemap.photo;strokeColor=#000000;fillColor=#E6E6E6",SMPortfolio:"shape=mxgraph.sitemap.portfolio;strokeColor=#000000;fillColor=#E6E6E6",SMPricing:"shape=mxgraph.sitemap.pricing;strokeColor=#000000;fillColor=#E6E6E6",
SMProfile:"shape=mxgraph.sitemap.profile;strokeColor=#000000;fillColor=#E6E6E6",SMSlideshow:"shape=mxgraph.sitemap.slideshow;strokeColor=#000000;fillColor=#E6E6E6",SMUpload:"shape=mxgraph.sitemap.upload;strokeColor=#000000;fillColor=#E6E6E6",SVGPathBlock2:"mxCompositeShape",PresentationFrameBlock:"mxCompositeShape",TimelineBlock:"mxCompositeShape",TimelineMilestoneBlock:"mxCompositeShape",TimelineIntervalBlock:"mxCompositeShape",MinimalTextBlock:"strokeColor=none;fillColor=none",FreehandBlock:"mxCompositeShape",
ExtShapeLaptopBlock:"strokeColor=none;shape=mxgraph.citrix.laptop_2;verticalLabelPosition=bottom;verticalAlign=top",ExtShapeServerBlock:"strokeColor=none;shape=mxgraph.citrix.tower_server;verticalLabelPosition=bottom;verticalAlign=top",ExtShapeCloudBlock:"strokeColor=none;shape=mxgraph.citrix.cloud;verticalLabelPosition=bottom;verticalAlign=top",ExtShapeUserBlock:"strokeColor=none;shape=mxgraph.aws3d.end_user;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#073763",ExtShapeWorkstationLCDBlock:"strokeColor=none;shape=mxgraph.veeam.3d.workstation;verticalLabelPosition=bottom;verticalAlign=top",
-InfographicsBlock:"mxCompositeShape",FlexiblePolygonBlock:"mxCompositeShape",PersonRoleBlock:"mxCompositeShape"},Pd=RegExp("{{(date{.*}|[^%^{^}]+)}}","g");tc.prototype.getSize=function(){return(this.nurbsValues.length/4|0)-1};tc.prototype.getX=function(a){return Math.round(100*this.nurbsValues[4*(a+1)])/100};tc.prototype.getY=function(a){return Math.round(100*this.nurbsValues[4*(a+1)+1])/100};LucidImporter.importState=function(a,b,c){function h(a){if(a.Properties){for(var b in a.Properties)"Stencil-"==
-b.substr(0,8)&&ue(b.substr(8),a.Properties[b]);LucidImporter.globalProps=a.Properties}for(var c in a.Pages)b=a.Pages[c],b.id=c,b.Data=a.Data,n.push(b);n.sort(function(a,b){return a.Properties.Order<b.Properties.Order?-1:a.Properties.Order>b.Properties.Order?1:0});for(a=0;a<n.length;a++)LucidImporter.pageIdsMap[n[a].id]=a}LucidImporter.stencilsMap={};LucidImporter.imgSrcRepl=b;LucidImporter.advImpConfig=c;LucidImporter.globalProps={};LucidImporter.pageIdsMap={};LucidImporter.hasUnknownShapes=!1;LucidImporter.hasOrgChart=
-!1;LucidImporter.hasTimeLine=!1;b=['<?xml version="1.0" encoding="UTF-8"?>','<mxfile type="Lucidchart-Import" version="'+EditorUi.VERSION+'" host="'+mxUtils.htmlEntities(window.location.hostname)+'" agent="'+mxUtils.htmlEntities(navigator.appVersion)+'" modified="'+mxUtils.htmlEntities((new Date).toISOString())+'">'];c&&c.transparentEdgeLabels&&(cc=cc.replace("labelBackgroundColor=#ffffff;","labelBackgroundColor=none;"));var n=[];null!=a.state&&"1"==urlParams.dev&&null!=window.console&&console.log(JSON.stringify(JSON.parse(a.state),
-null,2));null!=a.state?h(JSON.parse(a.state)):null==a.Page&&null!=a.Pages?h(a):n.push(a);a=Rd();c=new mxCodec;for(var l=0;l<n.length;l++){b.push("<diagram");null!=n[l].Properties&&null!=n[l].Properties.Title&&b.push(' name="'+mxUtils.htmlEntities(n[l].Properties.Title)+'"');b.push(' id="'+l+'"');Qd(a,n[l],!0);var d=c.encode(a.getModel());null!=n[l].Properties&&(n[l].Properties.FillColor&&d.setAttribute("background",la(n[l].Properties.FillColor)),n[l].Properties.InfiniteCanvas?d.setAttribute("page",
-0):null!=n[l].Properties.Size&&(d.setAttribute("page",1),d.setAttribute("pageWidth",.75*n[l].Properties.Size.w),d.setAttribute("pageHeight",.75*n[l].Properties.Size.h)),null!=n[l].Properties.GridSpacing&&(d.setAttribute("grid",1),d.setAttribute("gridSize",.75*n[l].Properties.GridSpacing)));LucidImporter.hasMath&&d.setAttribute("math",1);a.getModel().clear();b.push(">"+Graph.compress(mxUtils.getXml(d))+"</diagram>")}b.push("</mxfile>");LucidImporter.imgSrcRepl=null;return b.join("")}})();function VsdxExport(e){function k(a,b){var c={"[Content_Types].xml":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Types xmlns='http://schemas.openxmlformats.org/package/2006/content-types'><Default Extension='png' ContentType='image/png'/><Default Extension='jpg' ContentType='image/jpeg'/><Default Extension='jpeg' ContentType='image/jpeg'/><Default Extension='svg' ContentType='image/svg+xml'/><Default Extension='bmp' ContentType='image/bmp'/><Default Extension='gif' ContentType='image/gif'/><Default Extension='emf' ContentType='image/x-emf' /><Default Extension='rels' ContentType='application/vnd.openxmlformats-package.relationships+xml' /><Default Extension='xml' ContentType='application/xml' /><Override PartName='/docProps/app.xml' ContentType='application/vnd.openxmlformats-officedocument.extended-properties+xml' /><Override PartName='/docProps/core.xml' ContentType='application/vnd.openxmlformats-package.core-properties+xml' /><Override PartName='/docProps/custom.xml' ContentType='application/vnd.openxmlformats-officedocument.custom-properties+xml' /><Override PartName='/visio/document.xml' ContentType='application/vnd.ms-visio.drawing.main+xml' /><Override PartName='/visio/masters/masters.xml' ContentType='application/vnd.ms-visio.masters+xml' /><Override PartName='/visio/masters/master1.xml' ContentType='application/vnd.ms-visio.master+xml'/><Override PartName='/visio/pages/page1.xml' ContentType='application/vnd.ms-visio.page+xml' /><Override PartName='/visio/pages/pages.xml' ContentType='application/vnd.ms-visio.pages+xml' /><Override PartName='/visio/windows.xml' ContentType='application/vnd.ms-visio.windows+xml' /></Types>",
+InfographicsBlock:"mxCompositeShape",FlexiblePolygonBlock:"mxCompositeShape",PersonRoleBlock:"mxCompositeShape"},Rd=RegExp("{{(date{.*}|[^%^{^}]+)}}","g");vc.prototype.getSize=function(){return(this.nurbsValues.length/4|0)-1};vc.prototype.getX=function(a){return Math.round(100*this.nurbsValues[4*(a+1)])/100};vc.prototype.getY=function(a){return Math.round(100*this.nurbsValues[4*(a+1)+1])/100};LucidImporter.importState=function(a,b,c){function h(a){if(a.Properties){for(var b in a.Properties)"Stencil-"==
+b.substr(0,8)&&we(b.substr(8),a.Properties[b]);LucidImporter.globalProps=a.Properties}for(var c in a.Pages)b=a.Pages[c],b.id=c,b.Data=a.Data,n.push(b);n.sort(function(a,b){return a.Properties.Order<b.Properties.Order?-1:a.Properties.Order>b.Properties.Order?1:0});for(a=0;a<n.length;a++)LucidImporter.pageIdsMap[n[a].id]=a}LucidImporter.stencilsMap={};LucidImporter.imgSrcRepl=b;LucidImporter.advImpConfig=c;LucidImporter.globalProps={};LucidImporter.pageIdsMap={};LucidImporter.hasUnknownShapes=!1;LucidImporter.hasOrgChart=
+!1;LucidImporter.hasTimeLine=!1;b=['<?xml version="1.0" encoding="UTF-8"?>','<mxfile type="Lucidchart-Import" version="'+EditorUi.VERSION+'" host="'+mxUtils.htmlEntities(window.location.hostname)+'" agent="'+mxUtils.htmlEntities(navigator.appVersion)+'" modified="'+mxUtils.htmlEntities((new Date).toISOString())+'">'];c&&c.transparentEdgeLabels&&(ec=ec.replace("labelBackgroundColor=#ffffff;","labelBackgroundColor=none;"));var n=[];null!=a.state&&"1"==urlParams.dev&&null!=window.console&&console.log(JSON.stringify(JSON.parse(a.state),
+null,2));null!=a.state?h(JSON.parse(a.state)):null==a.Page&&null!=a.Pages?h(a):n.push(a);a=Td();c=new mxCodec;for(var k=0;k<n.length;k++){b.push("<diagram");null!=n[k].Properties&&null!=n[k].Properties.Title&&b.push(' name="'+mxUtils.htmlEntities(n[k].Properties.Title)+'"');b.push(' id="'+k+'"');Sd(a,n[k],!0);var d=c.encode(a.getModel());null!=n[k].Properties&&(n[k].Properties.FillColor&&d.setAttribute("background",ka(n[k].Properties.FillColor)),n[k].Properties.InfiniteCanvas?d.setAttribute("page",
+0):null!=n[k].Properties.Size&&(d.setAttribute("page",1),d.setAttribute("pageWidth",.75*n[k].Properties.Size.w),d.setAttribute("pageHeight",.75*n[k].Properties.Size.h)),null!=n[k].Properties.GridSpacing&&(d.setAttribute("grid",1),d.setAttribute("gridSize",.75*n[k].Properties.GridSpacing)));LucidImporter.hasMath&&d.setAttribute("math",1);a.getModel().clear();b.push(">"+Graph.compress(mxUtils.getXml(d))+"</diagram>")}b.push("</mxfile>");LucidImporter.imgSrcRepl=null;return b.join("")}})();function VsdxExport(e){function l(a,b){var c={"[Content_Types].xml":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Types xmlns='http://schemas.openxmlformats.org/package/2006/content-types'><Default Extension='png' ContentType='image/png'/><Default Extension='jpg' ContentType='image/jpeg'/><Default Extension='jpeg' ContentType='image/jpeg'/><Default Extension='svg' ContentType='image/svg+xml'/><Default Extension='bmp' ContentType='image/bmp'/><Default Extension='gif' ContentType='image/gif'/><Default Extension='emf' ContentType='image/x-emf' /><Default Extension='rels' ContentType='application/vnd.openxmlformats-package.relationships+xml' /><Default Extension='xml' ContentType='application/xml' /><Override PartName='/docProps/app.xml' ContentType='application/vnd.openxmlformats-officedocument.extended-properties+xml' /><Override PartName='/docProps/core.xml' ContentType='application/vnd.openxmlformats-package.core-properties+xml' /><Override PartName='/docProps/custom.xml' ContentType='application/vnd.openxmlformats-officedocument.custom-properties+xml' /><Override PartName='/visio/document.xml' ContentType='application/vnd.ms-visio.drawing.main+xml' /><Override PartName='/visio/masters/masters.xml' ContentType='application/vnd.ms-visio.masters+xml' /><Override PartName='/visio/masters/master1.xml' ContentType='application/vnd.ms-visio.master+xml'/><Override PartName='/visio/pages/page1.xml' ContentType='application/vnd.ms-visio.page+xml' /><Override PartName='/visio/pages/pages.xml' ContentType='application/vnd.ms-visio.pages+xml' /><Override PartName='/visio/windows.xml' ContentType='application/vnd.ms-visio.windows+xml' /></Types>",
"_rels/.rels":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Relationships xmlns='http://schemas.openxmlformats.org/package/2006/relationships'><Relationship Id='rId1' Type='http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties' Target='docProps/core.xml' /><Relationship Id='rId2' Type='http://schemas.microsoft.com/visio/2010/relationships/document' Target='visio/document.xml' /><Relationship Id='rId3' Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties' Target='docProps/custom.xml' /><Relationship Id='rId4' Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties' Target='docProps/app.xml' /></Relationships>",
"docProps/app.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Properties xmlns=\'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\' xmlns:vt=\'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\'><Application>Microsoft Visio</Application><AppVersion>15.0000</AppVersion><Template /><Manager /><Company /><HyperlinkBase /></Properties>',"docProps/core.xml":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><cp:coreProperties xmlns:cp='http://schemas.openxmlformats.org/package/2006/metadata/core-properties' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:dcterms='http://purl.org/dc/terms/' xmlns:dcmitype='http://purl.org/dc/dcmitype/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><dc:title /><dc:subject /><dc:creator /><cp:keywords /><dc:description /><cp:category /><dc:language>en-US</dc:language></cp:coreProperties>",
"docProps/custom.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Properties xmlns=\'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\' xmlns:vt=\'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\' />',"visio/document.xml":"<?xml version='1.0' encoding='utf-8' ?><VisioDocument xmlns='http://schemas.microsoft.com/office/visio/2012/main' xmlns:r='http://schemas.openxmlformats.org/officeDocument/2006/relationships' xml:space='preserve'><DocumentSettings TopPage='0' DefaultTextStyle='3' DefaultLineStyle='3' DefaultFillStyle='3' DefaultGuideStyle='4'><GlueSettings>9</GlueSettings><SnapSettings>65847</SnapSettings><SnapExtensions>34</SnapExtensions><SnapAngles/><DynamicGridEnabled>1</DynamicGridEnabled><ProtectStyles>0</ProtectStyles><ProtectShapes>0</ProtectShapes><ProtectMasters>0</ProtectMasters><ProtectBkgnds>0</ProtectBkgnds></DocumentSettings><Colors><ColorEntry IX='24' RGB='#000000'/><ColorEntry IX='25' RGB='#FFFFFF'/><ColorEntry IX='26' RGB='#FF0000'/><ColorEntry IX='27' RGB='#00FF00'/><ColorEntry IX='28' RGB='#0000FF'/><ColorEntry IX='29' RGB='#FFFF00'/><ColorEntry IX='30' RGB='#FF00FF'/><ColorEntry IX='31' RGB='#00FFFF'/><ColorEntry IX='32' RGB='#800000'/><ColorEntry IX='33' RGB='#008000'/><ColorEntry IX='34' RGB='#000080'/><ColorEntry IX='35' RGB='#808000'/><ColorEntry IX='36' RGB='#800080'/><ColorEntry IX='37' RGB='#008080'/><ColorEntry IX='38' RGB='#C0C0C0'/><ColorEntry IX='39' RGB='#E6E6E6'/><ColorEntry IX='40' RGB='#CDCDCD'/><ColorEntry IX='41' RGB='#B3B3B3'/><ColorEntry IX='42' RGB='#9A9A9A'/><ColorEntry IX='43' RGB='#808080'/><ColorEntry IX='44' RGB='#666666'/><ColorEntry IX='45' RGB='#4D4D4D'/><ColorEntry IX='46' RGB='#333333'/><ColorEntry IX='47' RGB='#1A1A1A'/><ColorEntry IX='48' RGB='#7F7F7F'/><ColorEntry IX='49' RGB='#99004D'/><ColorEntry IX='50' RGB='#FF0080'/><ColorEntry IX='51' RGB='#CC0066'/></Colors><FaceNames><FaceName NameU='Calibri' UnicodeRanges='-536859905 -1073732485 9 0' CharSets='536871423 0' Panose='2 15 5 2 2 2 4 3 2 4' Flags='325'/></FaceNames><StyleSheets><StyleSheet ID='0' NameU='No Style' IsCustomNameU='1' Name='No Style' IsCustomName='1'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='0.01041666666666667'/><Cell N='LineColor' V='0'/><Cell N='LinePattern' V='1'/><Cell N='Rounding' V='0'/><Cell N='EndArrowSize' V='2'/><Cell N='BeginArrow' V='0'/><Cell N='EndArrow' V='0'/><Cell N='LineCap' V='0'/><Cell N='BeginArrowSize' V='2'/><Cell N='LineColorTrans' V='0'/><Cell N='CompoundType' V='0'/><Cell N='FillForegnd' V='1'/><Cell N='FillBkgnd' V='0'/><Cell N='FillPattern' V='1'/><Cell N='ShdwForegnd' V='0'/><Cell N='ShdwPattern' V='0'/><Cell N='FillForegndTrans' V='0'/><Cell N='FillBkgndTrans' V='0'/><Cell N='ShdwForegndTrans' V='0'/><Cell N='ShapeShdwType' V='0'/><Cell N='ShapeShdwOffsetX' V='0'/><Cell N='ShapeShdwOffsetY' V='0'/><Cell N='ShapeShdwObliqueAngle' V='0'/><Cell N='ShapeShdwScaleFactor' V='1'/><Cell N='ShapeShdwBlur' V='0'/><Cell N='ShapeShdwShow' V='0'/><Cell N='LeftMargin' V='0'/><Cell N='RightMargin' V='0'/><Cell N='TopMargin' V='0'/><Cell N='BottomMargin' V='0'/><Cell N='VerticalAlign' V='1'/><Cell N='TextBkgnd' V='0'/><Cell N='DefaultTabStop' V='0.5'/><Cell N='TextDirection' V='0'/><Cell N='TextBkgndTrans' V='0'/><Cell N='LockWidth' V='0'/><Cell N='LockHeight' V='0'/><Cell N='LockMoveX' V='0'/><Cell N='LockMoveY' V='0'/><Cell N='LockAspect' V='0'/><Cell N='LockDelete' V='0'/><Cell N='LockBegin' V='0'/><Cell N='LockEnd' V='0'/><Cell N='LockRotate' V='0'/><Cell N='LockCrop' V='0'/><Cell N='LockVtxEdit' V='0'/><Cell N='LockTextEdit' V='0'/><Cell N='LockFormat' V='0'/><Cell N='LockGroup' V='0'/><Cell N='LockCalcWH' V='0'/><Cell N='LockSelect' V='0'/><Cell N='LockCustProp' V='0'/><Cell N='LockFromGroupFormat' V='0'/><Cell N='LockThemeColors' V='0'/><Cell N='LockThemeEffects' V='0'/><Cell N='LockThemeConnectors' V='0'/><Cell N='LockThemeFonts' V='0'/><Cell N='LockThemeIndex' V='0'/><Cell N='LockReplace' V='0'/><Cell N='LockVariation' V='0'/><Cell N='NoObjHandles' V='0'/><Cell N='NonPrinting' V='0'/><Cell N='NoCtlHandles' V='0'/><Cell N='NoAlignBox' V='0'/><Cell N='UpdateAlignBox' V='0'/><Cell N='HideText' V='0'/><Cell N='DynFeedback' V='0'/><Cell N='GlueType' V='0'/><Cell N='WalkPreference' V='0'/><Cell N='BegTrigger' V='0' F='No Formula'/><Cell N='EndTrigger' V='0' F='No Formula'/><Cell N='ObjType' V='0'/><Cell N='Comment' V=''/><Cell N='IsDropSource' V='0'/><Cell N='NoLiveDynamics' V='0'/><Cell N='LocalizeMerge' V='0'/><Cell N='NoProofing' V='0'/><Cell N='Calendar' V='0'/><Cell N='LangID' V='en-US'/><Cell N='ShapeKeywords' V=''/><Cell N='DropOnPageScale' V='1'/><Cell N='TheData' V='0' F='No Formula'/><Cell N='TheText' V='0' F='No Formula'/><Cell N='EventDblClick' V='0' F='No Formula'/><Cell N='EventXFMod' V='0' F='No Formula'/><Cell N='EventDrop' V='0' F='No Formula'/><Cell N='EventMultiDrop' V='0' F='No Formula'/><Cell N='HelpTopic' V=''/><Cell N='Copyright' V=''/><Cell N='LayerMember' V=''/><Cell N='XRulerDensity' V='32'/><Cell N='YRulerDensity' V='32'/><Cell N='XRulerOrigin' V='0'/><Cell N='YRulerOrigin' V='0'/><Cell N='XGridDensity' V='8'/><Cell N='YGridDensity' V='8'/><Cell N='XGridSpacing' V='0'/><Cell N='YGridSpacing' V='0'/><Cell N='XGridOrigin' V='0'/><Cell N='YGridOrigin' V='0'/><Cell N='Gamma' V='1'/><Cell N='Contrast' V='0.5'/><Cell N='Brightness' V='0.5'/><Cell N='Sharpen' V='0'/><Cell N='Blur' V='0'/><Cell N='Denoise' V='0'/><Cell N='Transparency' V='0'/><Cell N='SelectMode' V='1'/><Cell N='DisplayMode' V='2'/><Cell N='IsDropTarget' V='0'/><Cell N='IsSnapTarget' V='1'/><Cell N='IsTextEditTarget' V='1'/><Cell N='DontMoveChildren' V='0'/><Cell N='ShapePermeableX' V='0'/><Cell N='ShapePermeableY' V='0'/><Cell N='ShapePermeablePlace' V='0'/><Cell N='Relationships' V='0'/><Cell N='ShapeFixedCode' V='0'/><Cell N='ShapePlowCode' V='0'/><Cell N='ShapeRouteStyle' V='0'/><Cell N='ShapePlaceStyle' V='0'/><Cell N='ConFixedCode' V='0'/><Cell N='ConLineJumpCode' V='0'/><Cell N='ConLineJumpStyle' V='0'/><Cell N='ConLineJumpDirX' V='0'/><Cell N='ConLineJumpDirY' V='0'/><Cell N='ShapePlaceFlip' V='0'/><Cell N='ConLineRouteExt' V='0'/><Cell N='ShapeSplit' V='0'/><Cell N='ShapeSplittable' V='0'/><Cell N='DisplayLevel' V='0'/><Cell N='ResizePage' V='0'/><Cell N='EnableGrid' V='0'/><Cell N='DynamicsOff' V='0'/><Cell N='CtrlAsInput' V='0'/><Cell N='AvoidPageBreaks' V='0'/><Cell N='PlaceStyle' V='0'/><Cell N='RouteStyle' V='0'/><Cell N='PlaceDepth' V='0'/><Cell N='PlowCode' V='0'/><Cell N='LineJumpCode' V='1'/><Cell N='LineJumpStyle' V='0'/><Cell N='PageLineJumpDirX' V='0'/><Cell N='PageLineJumpDirY' V='0'/><Cell N='LineToNodeX' V='0.125'/><Cell N='LineToNodeY' V='0.125'/><Cell N='BlockSizeX' V='0.25'/><Cell N='BlockSizeY' V='0.25'/><Cell N='AvenueSizeX' V='0.375'/><Cell N='AvenueSizeY' V='0.375'/><Cell N='LineToLineX' V='0.125'/><Cell N='LineToLineY' V='0.125'/><Cell N='LineJumpFactorX' V='0.66666666666667'/><Cell N='LineJumpFactorY' V='0.66666666666667'/><Cell N='LineAdjustFrom' V='0'/><Cell N='LineAdjustTo' V='0'/><Cell N='PlaceFlip' V='0'/><Cell N='LineRouteExt' V='0'/><Cell N='PageShapeSplit' V='0'/><Cell N='PageLeftMargin' V='0.25'/><Cell N='PageRightMargin' V='0.25'/><Cell N='PageTopMargin' V='0.25'/><Cell N='PageBottomMargin' V='0.25'/><Cell N='ScaleX' V='1'/><Cell N='ScaleY' V='1'/><Cell N='PagesX' V='1'/><Cell N='PagesY' V='1'/><Cell N='CenterX' V='0'/><Cell N='CenterY' V='0'/><Cell N='OnPage' V='0'/><Cell N='PrintGrid' V='0'/><Cell N='PrintPageOrientation' V='1'/><Cell N='PaperKind' V='1'/><Cell N='PaperSource' V='7'/><Cell N='QuickStyleLineColor' V='100'/><Cell N='QuickStyleFillColor' V='100'/><Cell N='QuickStyleShadowColor' V='100'/><Cell N='QuickStyleFontColor' V='100'/><Cell N='QuickStyleLineMatrix' V='100'/><Cell N='QuickStyleFillMatrix' V='100'/><Cell N='QuickStyleEffectsMatrix' V='100'/><Cell N='QuickStyleFontMatrix' V='100'/><Cell N='QuickStyleType' V='0'/><Cell N='QuickStyleVariation' V='0'/><Cell N='LineGradientDir' V='0'/><Cell N='LineGradientAngle' V='1.5707963267949'/><Cell N='FillGradientDir' V='0'/><Cell N='FillGradientAngle' V='1.5707963267949'/><Cell N='LineGradientEnabled' V='0'/><Cell N='FillGradientEnabled' V='0'/><Cell N='RotateGradientWithShape' V='1'/><Cell N='UseGroupGradient' V='0'/><Cell N='BevelTopType' V='0'/><Cell N='BevelTopWidth' V='0'/><Cell N='BevelTopHeight' V='0'/><Cell N='BevelBottomType' V='0'/><Cell N='BevelBottomWidth' V='0'/><Cell N='BevelBottomHeight' V='0'/><Cell N='BevelDepthColor' V='1'/><Cell N='BevelDepthSize' V='0'/><Cell N='BevelContourColor' V='0'/><Cell N='BevelContourSize' V='0'/><Cell N='BevelMaterialType' V='0'/><Cell N='BevelLightingType' V='0'/><Cell N='BevelLightingAngle' V='0'/><Cell N='RotationXAngle' V='0'/><Cell N='RotationYAngle' V='0'/><Cell N='RotationZAngle' V='0'/><Cell N='RotationType' V='0'/><Cell N='Perspective' V='0'/><Cell N='DistanceFromGround' V='0'/><Cell N='KeepTextFlat' V='0'/><Cell N='ReflectionTrans' V='0'/><Cell N='ReflectionSize' V='0'/><Cell N='ReflectionDist' V='0'/><Cell N='ReflectionBlur' V='0'/><Cell N='GlowColor' V='1'/><Cell N='GlowColorTrans' V='0'/><Cell N='GlowSize' V='0'/><Cell N='SoftEdgesSize' V='0'/><Cell N='SketchSeed' V='0'/><Cell N='SketchEnabled' V='0'/><Cell N='SketchAmount' V='5'/><Cell N='SketchLineWeight' V='0.04166666666666666' U='PT'/><Cell N='SketchLineChange' V='0.14'/><Cell N='SketchFillChange' V='0.1'/><Cell N='ColorSchemeIndex' V='0'/><Cell N='EffectSchemeIndex' V='0'/><Cell N='ConnectorSchemeIndex' V='0'/><Cell N='FontSchemeIndex' V='0'/><Cell N='ThemeIndex' V='0'/><Cell N='VariationColorIndex' V='0'/><Cell N='VariationStyleIndex' V='0'/><Cell N='EmbellishmentIndex' V='0'/><Cell N='ReplaceLockShapeData' V='0'/><Cell N='ReplaceLockText' V='0'/><Cell N='ReplaceLockFormat' V='0'/><Cell N='ReplaceCopyCells' V='0' U='BOOL' F='No Formula'/><Cell N='PageWidth' V='0' F='No Formula'/><Cell N='PageHeight' V='0' F='No Formula'/><Cell N='ShdwOffsetX' V='0' F='No Formula'/><Cell N='ShdwOffsetY' V='0' F='No Formula'/><Cell N='PageScale' V='0' U='IN_F' F='No Formula'/><Cell N='DrawingScale' V='0' U='IN_F' F='No Formula'/><Cell N='DrawingSizeType' V='0' F='No Formula'/><Cell N='DrawingScaleType' V='0' F='No Formula'/><Cell N='InhibitSnap' V='0' F='No Formula'/><Cell N='PageLockReplace' V='0' U='BOOL' F='No Formula'/><Cell N='PageLockDuplicate' V='0' U='BOOL' F='No Formula'/><Cell N='UIVisibility' V='0' F='No Formula'/><Cell N='ShdwType' V='0' F='No Formula'/><Cell N='ShdwObliqueAngle' V='0' F='No Formula'/><Cell N='ShdwScaleFactor' V='0' F='No Formula'/><Cell N='DrawingResizeType' V='0' F='No Formula'/><Section N='Character'><Row IX='0'><Cell N='Font' V='Calibri'/><Cell N='Color' V='0'/><Cell N='Style' V='0'/><Cell N='Case' V='0'/><Cell N='Pos' V='0'/><Cell N='FontScale' V='1'/><Cell N='Size' V='0.1666666666666667'/><Cell N='DblUnderline' V='0'/><Cell N='Overline' V='0'/><Cell N='Strikethru' V='0'/><Cell N='DoubleStrikethrough' V='0'/><Cell N='Letterspace' V='0'/><Cell N='ColorTrans' V='0'/><Cell N='AsianFont' V='0'/><Cell N='ComplexScriptFont' V='0'/><Cell N='ComplexScriptSize' V='-1'/><Cell N='LangID' V='en-US'/></Row></Section><Section N='Paragraph'><Row IX='0'><Cell N='IndFirst' V='0'/><Cell N='IndLeft' V='0'/><Cell N='IndRight' V='0'/><Cell N='SpLine' V='-1.2'/><Cell N='SpBefore' V='0'/><Cell N='SpAfter' V='0'/><Cell N='HorzAlign' V='1'/><Cell N='Bullet' V='0'/><Cell N='BulletStr' V=''/><Cell N='BulletFont' V='0'/><Cell N='BulletFontSize' V='-1'/><Cell N='TextPosAfterBullet' V='0'/><Cell N='Flags' V='0'/></Row></Section><Section N='Tabs'><Row IX='0'/></Section><Section N='LineGradient'><Row IX='0'><Cell N='GradientStopColor' V='1'/><Cell N='GradientStopColorTrans' V='0'/><Cell N='GradientStopPosition' V='0'/></Row></Section><Section N='FillGradient'><Row IX='0'><Cell N='GradientStopColor' V='1'/><Cell N='GradientStopColorTrans' V='0'/><Cell N='GradientStopPosition' V='0'/></Row></Section></StyleSheet><StyleSheet ID='1' NameU='Text Only' IsCustomNameU='1' Name='Text Only' IsCustomName='1' LineStyle='3' FillStyle='3' TextStyle='3'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='Themed' F='Inh'/><Cell N='LineColor' V='Themed' F='Inh'/><Cell N='LinePattern' V='Themed' F='Inh'/><Cell N='Rounding' V='Themed' F='Inh'/><Cell N='EndArrowSize' V='2' F='Inh'/><Cell N='BeginArrow' V='0' F='Inh'/><Cell N='EndArrow' V='0' F='Inh'/><Cell N='LineCap' V='Themed' F='Inh'/><Cell N='BeginArrowSize' V='2' F='Inh'/><Cell N='LineColorTrans' V='Themed' F='Inh'/><Cell N='CompoundType' V='Themed' F='Inh'/><Cell N='FillForegnd' V='Themed' F='Inh'/><Cell N='FillBkgnd' V='Themed' F='Inh'/><Cell N='FillPattern' V='Themed' F='Inh'/><Cell N='ShdwForegnd' V='Themed' F='Inh'/><Cell N='ShdwPattern' V='Themed' F='Inh'/><Cell N='FillForegndTrans' V='Themed' F='Inh'/><Cell N='FillBkgndTrans' V='Themed' F='Inh'/><Cell N='ShdwForegndTrans' V='Themed' F='Inh'/><Cell N='ShapeShdwType' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetX' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetY' V='Themed' F='Inh'/><Cell N='ShapeShdwObliqueAngle' V='Themed' F='Inh'/><Cell N='ShapeShdwScaleFactor' V='Themed' F='Inh'/><Cell N='ShapeShdwBlur' V='Themed' F='Inh'/><Cell N='ShapeShdwShow' V='0' F='Inh'/><Cell N='LeftMargin' V='0'/><Cell N='RightMargin' V='0'/><Cell N='TopMargin' V='0'/><Cell N='BottomMargin' V='0'/><Cell N='VerticalAlign' V='0'/><Cell N='TextBkgnd' V='0'/><Cell N='DefaultTabStop' V='0.5' F='Inh'/><Cell N='TextDirection' V='0' F='Inh'/><Cell N='TextBkgndTrans' V='0' F='Inh'/><Cell N='LineGradientDir' V='Themed' F='Inh'/><Cell N='LineGradientAngle' V='Themed' F='Inh'/><Cell N='FillGradientDir' V='Themed' F='Inh'/><Cell N='FillGradientAngle' V='Themed' F='Inh'/><Cell N='LineGradientEnabled' V='Themed' F='Inh'/><Cell N='FillGradientEnabled' V='Themed' F='Inh'/><Cell N='RotateGradientWithShape' V='Themed' F='Inh'/><Cell N='UseGroupGradient' V='Themed' F='Inh'/><Section N='Paragraph'><Row IX='0'><Cell N='IndFirst' V='0' F='Inh'/><Cell N='IndLeft' V='0' F='Inh'/><Cell N='IndRight' V='0' F='Inh'/><Cell N='SpLine' V='-1.2' F='Inh'/><Cell N='SpBefore' V='0' F='Inh'/><Cell N='SpAfter' V='0' F='Inh'/><Cell N='HorzAlign' V='0'/><Cell N='Bullet' V='0' F='Inh'/><Cell N='BulletStr' V='' F='Inh'/><Cell N='BulletFont' V='0' F='Inh'/><Cell N='BulletFontSize' V='-1' F='Inh'/><Cell N='TextPosAfterBullet' V='0' F='Inh'/><Cell N='Flags' V='0' F='Inh'/></Row></Section></StyleSheet><StyleSheet ID='2' NameU='None' IsCustomNameU='1' Name='None' IsCustomName='1' LineStyle='3' FillStyle='3' TextStyle='3'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='Themed' F='Inh'/><Cell N='LineColor' V='Themed' F='Inh'/><Cell N='LinePattern' V='0'/><Cell N='Rounding' V='Themed' F='Inh'/><Cell N='EndArrowSize' V='2' F='Inh'/><Cell N='BeginArrow' V='0' F='Inh'/><Cell N='EndArrow' V='0' F='Inh'/><Cell N='LineCap' V='Themed' F='Inh'/><Cell N='BeginArrowSize' V='2' F='Inh'/><Cell N='LineColorTrans' V='Themed' F='Inh'/><Cell N='CompoundType' V='Themed' F='Inh'/><Cell N='FillForegnd' V='Themed' F='Inh'/><Cell N='FillBkgnd' V='Themed' F='Inh'/><Cell N='FillPattern' V='0'/><Cell N='ShdwForegnd' V='Themed' F='Inh'/><Cell N='ShdwPattern' V='Themed' F='Inh'/><Cell N='FillForegndTrans' V='Themed' F='Inh'/><Cell N='FillBkgndTrans' V='Themed' F='Inh'/><Cell N='ShdwForegndTrans' V='Themed' F='Inh'/><Cell N='ShapeShdwType' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetX' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetY' V='Themed' F='Inh'/><Cell N='ShapeShdwObliqueAngle' V='Themed' F='Inh'/><Cell N='ShapeShdwScaleFactor' V='Themed' F='Inh'/><Cell N='ShapeShdwBlur' V='Themed' F='Inh'/><Cell N='ShapeShdwShow' V='0' F='Inh'/><Cell N='LineGradientDir' V='Themed' F='Inh'/><Cell N='LineGradientAngle' V='Themed' F='Inh'/><Cell N='FillGradientDir' V='Themed' F='Inh'/><Cell N='FillGradientAngle' V='Themed' F='Inh'/><Cell N='LineGradientEnabled' V='0'/><Cell N='FillGradientEnabled' V='0'/><Cell N='RotateGradientWithShape' V='Themed' F='Inh'/><Cell N='UseGroupGradient' V='Themed' F='Inh'/><Cell N='QuickStyleLineColor' V='100' F='Inh'/><Cell N='QuickStyleFillColor' V='100' F='Inh'/><Cell N='QuickStyleShadowColor' V='100' F='Inh'/><Cell N='QuickStyleFontColor' V='100' F='Inh'/><Cell N='QuickStyleLineMatrix' V='100' F='Inh'/><Cell N='QuickStyleFillMatrix' V='100' F='Inh'/><Cell N='QuickStyleEffectsMatrix' V='0' F='GUARD(0)'/><Cell N='QuickStyleFontMatrix' V='100' F='Inh'/><Cell N='QuickStyleType' V='0' F='Inh'/><Cell N='QuickStyleVariation' V='2'/></StyleSheet><StyleSheet ID='3' NameU='Normal' IsCustomNameU='1' Name='Normal' IsCustomName='1' LineStyle='6' FillStyle='6' TextStyle='6'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LeftMargin' V='0.05555555555555555' U='PT'/><Cell N='RightMargin' V='0.05555555555555555' U='PT'/><Cell N='TopMargin' V='0.05555555555555555' U='PT'/><Cell N='BottomMargin' V='0.05555555555555555' U='PT'/><Cell N='VerticalAlign' V='1' F='Inh'/><Cell N='TextBkgnd' V='0' F='Inh'/><Cell N='DefaultTabStop' V='0.5' F='Inh'/><Cell N='TextDirection' V='0' F='Inh'/><Cell N='TextBkgndTrans' V='0' F='Inh'/></StyleSheet><StyleSheet ID='4' NameU='Guide' IsCustomNameU='1' Name='Guide' IsCustomName='1' LineStyle='3' FillStyle='3' TextStyle='3'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='0' U='PT'/><Cell N='LineColor' V='#7f7f7f'/><Cell N='LinePattern' V='23'/><Cell N='Rounding' V='Themed' F='Inh'/><Cell N='EndArrowSize' V='2' F='Inh'/><Cell N='BeginArrow' V='0' F='Inh'/><Cell N='EndArrow' V='0' F='Inh'/><Cell N='LineCap' V='Themed' F='Inh'/><Cell N='BeginArrowSize' V='2' F='Inh'/><Cell N='LineColorTrans' V='Themed' F='Inh'/><Cell N='CompoundType' V='Themed' F='Inh'/><Cell N='FillForegnd' V='Themed' F='Inh'/><Cell N='FillBkgnd' V='Themed' F='Inh'/><Cell N='FillPattern' V='0'/><Cell N='ShdwForegnd' V='Themed' F='Inh'/><Cell N='ShdwPattern' V='Themed' F='Inh'/><Cell N='FillForegndTrans' V='Themed' F='Inh'/><Cell N='FillBkgndTrans' V='Themed' F='Inh'/><Cell N='ShdwForegndTrans' V='Themed' F='Inh'/><Cell N='ShapeShdwType' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetX' V='Themed' F='Inh'/><Cell N='ShapeShdwOffsetY' V='Themed' F='Inh'/><Cell N='ShapeShdwObliqueAngle' V='Themed' F='Inh'/><Cell N='ShapeShdwScaleFactor' V='Themed' F='Inh'/><Cell N='ShapeShdwBlur' V='Themed' F='Inh'/><Cell N='ShapeShdwShow' V='0' F='Inh'/><Cell N='LineGradientDir' V='Themed' F='Inh'/><Cell N='LineGradientAngle' V='Themed' F='Inh'/><Cell N='FillGradientDir' V='Themed' F='Inh'/><Cell N='FillGradientAngle' V='Themed' F='Inh'/><Cell N='LineGradientEnabled' V='0'/><Cell N='FillGradientEnabled' V='0'/><Cell N='RotateGradientWithShape' V='Themed' F='Inh'/><Cell N='UseGroupGradient' V='Themed' F='Inh'/><Cell N='LeftMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='RightMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='TopMargin' V='0'/><Cell N='BottomMargin' V='0'/><Cell N='VerticalAlign' V='2'/><Cell N='TextBkgnd' V='0' F='Inh'/><Cell N='DefaultTabStop' V='0.5' F='Inh'/><Cell N='TextDirection' V='0' F='Inh'/><Cell N='TextBkgndTrans' V='0' F='Inh'/><Cell N='NoObjHandles' V='0' F='Inh'/><Cell N='NonPrinting' V='1'/><Cell N='NoCtlHandles' V='0' F='Inh'/><Cell N='NoAlignBox' V='0' F='Inh'/><Cell N='UpdateAlignBox' V='0' F='Inh'/><Cell N='HideText' V='0' F='Inh'/><Cell N='DynFeedback' V='0' F='Inh'/><Cell N='GlueType' V='0' F='Inh'/><Cell N='WalkPreference' V='0' F='Inh'/><Cell N='BegTrigger' V='0' F='No Formula'/><Cell N='EndTrigger' V='0' F='No Formula'/><Cell N='ObjType' V='0' F='Inh'/><Cell N='Comment' V='' F='Inh'/><Cell N='IsDropSource' V='0' F='Inh'/><Cell N='NoLiveDynamics' V='0' F='Inh'/><Cell N='LocalizeMerge' V='0' F='Inh'/><Cell N='NoProofing' V='0' F='Inh'/><Cell N='Calendar' V='0' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/><Cell N='ShapeKeywords' V='' F='Inh'/><Cell N='DropOnPageScale' V='1' F='Inh'/><Cell N='ShapePermeableX' V='1'/><Cell N='ShapePermeableY' V='1'/><Cell N='ShapePermeablePlace' V='1'/><Cell N='Relationships' V='0' F='Inh'/><Cell N='ShapeFixedCode' V='0' F='Inh'/><Cell N='ShapePlowCode' V='0' F='Inh'/><Cell N='ShapeRouteStyle' V='0' F='Inh'/><Cell N='ShapePlaceStyle' V='0' F='Inh'/><Cell N='ConFixedCode' V='0' F='Inh'/><Cell N='ConLineJumpCode' V='0' F='Inh'/><Cell N='ConLineJumpStyle' V='0' F='Inh'/><Cell N='ConLineJumpDirX' V='0' F='Inh'/><Cell N='ConLineJumpDirY' V='0' F='Inh'/><Cell N='ShapePlaceFlip' V='0' F='Inh'/><Cell N='ConLineRouteExt' V='0' F='Inh'/><Cell N='ShapeSplit' V='0' F='Inh'/><Cell N='ShapeSplittable' V='0' F='Inh'/><Cell N='DisplayLevel' V='0' F='Inh'/><Section N='Character'><Row IX='0'><Cell N='Font' V='Themed' F='Inh'/><Cell N='Color' V='4'/><Cell N='Style' V='Themed' F='Inh'/><Cell N='Case' V='0' F='Inh'/><Cell N='Pos' V='0' F='Inh'/><Cell N='FontScale' V='1' F='Inh'/><Cell N='Size' V='0.125'/><Cell N='DblUnderline' V='0' F='Inh'/><Cell N='Overline' V='0' F='Inh'/><Cell N='Strikethru' V='0' F='Inh'/><Cell N='DoubleStrikethrough' V='0' F='Inh'/><Cell N='Letterspace' V='0' F='Inh'/><Cell N='ColorTrans' V='0' F='Inh'/><Cell N='AsianFont' V='Themed' F='Inh'/><Cell N='ComplexScriptFont' V='Themed' F='Inh'/><Cell N='ComplexScriptSize' V='-1' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/></Row></Section></StyleSheet><StyleSheet ID='6' NameU='Theme' IsCustomNameU='1' Name='Theme' IsCustomName='1' LineStyle='0' FillStyle='0' TextStyle='0'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LineWeight' V='Themed' F='THEMEVAL()'/><Cell N='LineColor' V='Themed' F='THEMEVAL()'/><Cell N='LinePattern' V='Themed' F='THEMEVAL()'/><Cell N='Rounding' V='Themed' F='THEMEVAL()'/><Cell N='EndArrowSize' V='2' F='Inh'/><Cell N='BeginArrow' V='0' F='Inh'/><Cell N='EndArrow' V='0' F='Inh'/><Cell N='LineCap' V='Themed' F='THEMEVAL()'/><Cell N='BeginArrowSize' V='2' F='Inh'/><Cell N='LineColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='CompoundType' V='Themed' F='THEMEVAL()'/><Cell N='FillForegnd' V='Themed' F='THEMEVAL()'/><Cell N='FillBkgnd' V='Themed' F='THEMEVAL()'/><Cell N='FillPattern' V='Themed' F='THEMEVAL()'/><Cell N='ShdwForegnd' V='Themed' F='THEMEVAL()'/><Cell N='ShdwPattern' V='Themed' F='THEMEVAL()'/><Cell N='FillForegndTrans' V='Themed' F='THEMEVAL()'/><Cell N='FillBkgndTrans' V='Themed' F='THEMEVAL()'/><Cell N='ShdwForegndTrans' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwType' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwOffsetX' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwOffsetY' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwObliqueAngle' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwScaleFactor' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwBlur' V='Themed' F='THEMEVAL()'/><Cell N='ShapeShdwShow' V='0' F='Inh'/><Cell N='LineGradientDir' V='Themed' F='THEMEVAL()'/><Cell N='LineGradientAngle' V='Themed' F='THEMEVAL()'/><Cell N='FillGradientDir' V='Themed' F='THEMEVAL()'/><Cell N='FillGradientAngle' V='Themed' F='THEMEVAL()'/><Cell N='LineGradientEnabled' V='Themed' F='THEMEVAL()'/><Cell N='FillGradientEnabled' V='Themed' F='THEMEVAL()'/><Cell N='RotateGradientWithShape' V='Themed' F='THEMEVAL()'/><Cell N='UseGroupGradient' V='Themed' F='THEMEVAL()'/><Cell N='BevelTopType' V='Themed' F='THEMEVAL()'/><Cell N='BevelTopWidth' V='Themed' F='THEMEVAL()'/><Cell N='BevelTopHeight' V='Themed' F='THEMEVAL()'/><Cell N='BevelBottomType' V='0' F='Inh'/><Cell N='BevelBottomWidth' V='0' F='Inh'/><Cell N='BevelBottomHeight' V='0' F='Inh'/><Cell N='BevelDepthColor' V='1' F='Inh'/><Cell N='BevelDepthSize' V='0' F='Inh'/><Cell N='BevelContourColor' V='Themed' F='THEMEVAL()'/><Cell N='BevelContourSize' V='Themed' F='THEMEVAL()'/><Cell N='BevelMaterialType' V='Themed' F='THEMEVAL()'/><Cell N='BevelLightingType' V='Themed' F='THEMEVAL()'/><Cell N='BevelLightingAngle' V='Themed' F='THEMEVAL()'/><Cell N='ReflectionTrans' V='Themed' F='THEMEVAL()'/><Cell N='ReflectionSize' V='Themed' F='THEMEVAL()'/><Cell N='ReflectionDist' V='Themed' F='THEMEVAL()'/><Cell N='ReflectionBlur' V='Themed' F='THEMEVAL()'/><Cell N='GlowColor' V='Themed' F='THEMEVAL()'/><Cell N='GlowColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GlowSize' V='Themed' F='THEMEVAL()'/><Cell N='SoftEdgesSize' V='Themed' F='THEMEVAL()'/><Cell N='SketchSeed' V='0' F='Inh'/><Cell N='SketchEnabled' V='Themed' F='THEMEVAL()'/><Cell N='SketchAmount' V='Themed' F='THEMEVAL()'/><Cell N='SketchLineWeight' V='Themed' F='THEMEVAL()'/><Cell N='SketchLineChange' V='Themed' F='THEMEVAL()'/><Cell N='SketchFillChange' V='Themed' F='THEMEVAL()'/><Cell N='QuickStyleLineColor' V='100'/><Cell N='QuickStyleFillColor' V='100'/><Cell N='QuickStyleShadowColor' V='100'/><Cell N='QuickStyleFontColor' V='100'/><Cell N='QuickStyleLineMatrix' V='100'/><Cell N='QuickStyleFillMatrix' V='100'/><Cell N='QuickStyleEffectsMatrix' V='100'/><Cell N='QuickStyleFontMatrix' V='100'/><Cell N='QuickStyleType' V='0' F='Inh'/><Cell N='QuickStyleVariation' V='0' F='Inh'/><Cell N='ColorSchemeIndex' V='65534'/><Cell N='EffectSchemeIndex' V='65534'/><Cell N='ConnectorSchemeIndex' V='65534'/><Cell N='FontSchemeIndex' V='65534'/><Cell N='ThemeIndex' V='65534'/><Cell N='VariationColorIndex' V='65534'/><Cell N='VariationStyleIndex' V='65534'/><Cell N='EmbellishmentIndex' V='65534'/><Section N='Character'><Row IX='0'><Cell N='Font' V='Themed' F='THEMEVAL()'/><Cell N='Color' V='Themed' F='THEMEVAL()'/><Cell N='Style' V='Themed' F='THEMEVAL()'/><Cell N='Case' V='0' F='Inh'/><Cell N='Pos' V='0' F='Inh'/><Cell N='FontScale' V='1' F='Inh'/><Cell N='Size' V='0.1666666666666667' F='Inh'/><Cell N='DblUnderline' V='0' F='Inh'/><Cell N='Overline' V='0' F='Inh'/><Cell N='Strikethru' V='0' F='Inh'/><Cell N='DoubleStrikethrough' V='0' F='Inh'/><Cell N='Letterspace' V='0' F='Inh'/><Cell N='ColorTrans' V='0' F='Inh'/><Cell N='AsianFont' V='Themed' F='THEMEVAL()'/><Cell N='ComplexScriptFont' V='Themed' F='THEMEVAL()'/><Cell N='ComplexScriptSize' V='-1' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/></Row></Section><Section N='FillGradient'><Row IX='0'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='1'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='2'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='3'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='4'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='5'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='6'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='7'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='8'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='9'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row></Section><Section N='LineGradient'><Row IX='0'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='1'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='2'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='3'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='4'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='5'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='6'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='7'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='8'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row><Row IX='9'><Cell N='GradientStopColor' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopColorTrans' V='Themed' F='THEMEVAL()'/><Cell N='GradientStopPosition' V='Themed' F='THEMEVAL()'/></Row></Section></StyleSheet><StyleSheet ID='7' NameU='Connector' IsCustomNameU='1' Name='Connector' IsCustomName='1' LineStyle='3' FillStyle='3' TextStyle='3'><Cell N='EnableLineProps' V='1'/><Cell N='EnableFillProps' V='1'/><Cell N='EnableTextProps' V='1'/><Cell N='HideForApply' V='0'/><Cell N='LeftMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='RightMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='TopMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='BottomMargin' V='0.05555555555555555' U='PT' F='Inh'/><Cell N='VerticalAlign' V='1' F='Inh'/><Cell N='TextBkgnd' V='#ffffff' F='THEMEGUARD(THEMEVAL(\"BackgroundColor\")+1)'/><Cell N='DefaultTabStop' V='0.5' F='Inh'/><Cell N='TextDirection' V='0' F='Inh'/><Cell N='TextBkgndTrans' V='0' F='Inh'/><Cell N='NoObjHandles' V='0' F='Inh'/><Cell N='NonPrinting' V='0' F='Inh'/><Cell N='NoCtlHandles' V='0' F='Inh'/><Cell N='NoAlignBox' V='0' F='Inh'/><Cell N='UpdateAlignBox' V='0' F='Inh'/><Cell N='HideText' V='0' F='Inh'/><Cell N='DynFeedback' V='0' F='Inh'/><Cell N='GlueType' V='0' F='Inh'/><Cell N='WalkPreference' V='0' F='Inh'/><Cell N='BegTrigger' V='0' F='No Formula'/><Cell N='EndTrigger' V='0' F='No Formula'/><Cell N='ObjType' V='0' F='Inh'/><Cell N='Comment' V='' F='Inh'/><Cell N='IsDropSource' V='0' F='Inh'/><Cell N='NoLiveDynamics' V='0' F='Inh'/><Cell N='LocalizeMerge' V='0' F='Inh'/><Cell N='NoProofing' V='0' F='Inh'/><Cell N='Calendar' V='0' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/><Cell N='ShapeKeywords' V='' F='Inh'/><Cell N='DropOnPageScale' V='1' F='Inh'/><Cell N='QuickStyleLineColor' V='100'/><Cell N='QuickStyleFillColor' V='100'/><Cell N='QuickStyleShadowColor' V='100'/><Cell N='QuickStyleFontColor' V='100'/><Cell N='QuickStyleLineMatrix' V='1'/><Cell N='QuickStyleFillMatrix' V='1'/><Cell N='QuickStyleEffectsMatrix' V='1'/><Cell N='QuickStyleFontMatrix' V='1'/><Cell N='QuickStyleType' V='0'/><Cell N='QuickStyleVariation' V='0'/><Cell N='LineWeight' V='Themed' F='Inh'/><Cell N='LineColor' V='Themed' F='Inh'/><Cell N='LinePattern' V='Themed' F='Inh'/><Cell N='Rounding' V='Themed' F='Inh'/><Cell N='EndArrowSize' V='Themed' F='THEMEVAL()'/><Cell N='BeginArrow' V='Themed' F='THEMEVAL()'/><Cell N='EndArrow' V='Themed' F='THEMEVAL()'/><Cell N='LineCap' V='Themed' F='Inh'/><Cell N='BeginArrowSize' V='Themed' F='THEMEVAL()'/><Cell N='LineColorTrans' V='Themed' F='Inh'/><Cell N='CompoundType' V='Themed' F='Inh'/><Section N='Character'><Row IX='0'><Cell N='Font' V='Themed' F='Inh'/><Cell N='Color' V='Themed' F='Inh'/><Cell N='Style' V='Themed' F='Inh'/><Cell N='Case' V='0' F='Inh'/><Cell N='Pos' V='0' F='Inh'/><Cell N='FontScale' V='1' F='Inh'/><Cell N='Size' V='0.1111111111111111'/><Cell N='DblUnderline' V='0' F='Inh'/><Cell N='Overline' V='0' F='Inh'/><Cell N='Strikethru' V='0' F='Inh'/><Cell N='DoubleStrikethrough' V='0' F='Inh'/><Cell N='Letterspace' V='0' F='Inh'/><Cell N='ColorTrans' V='0' F='Inh'/><Cell N='AsianFont' V='Themed' F='Inh'/><Cell N='ComplexScriptFont' V='Themed' F='Inh'/><Cell N='ComplexScriptSize' V='-1' F='Inh'/><Cell N='LangID' V='en-US' F='Inh'/></Row></Section></StyleSheet></StyleSheets><DocumentSheet NameU='TheDoc' IsCustomNameU='1' Name='TheDoc' IsCustomName='1' LineStyle='0' FillStyle='0' TextStyle='0'><Cell N='OutputFormat' V='0'/><Cell N='LockPreview' V='0'/><Cell N='AddMarkup' V='0'/><Cell N='ViewMarkup' V='0'/><Cell N='DocLockReplace' V='0' U='BOOL'/><Cell N='NoCoauth' V='0' U='BOOL'/><Cell N='DocLockDuplicatePage' V='0' U='BOOL'/><Cell N='PreviewQuality' V='0'/><Cell N='PreviewScope' V='0'/><Cell N='DocLangID' V='en-US'/><Section N='User'><Row N='msvNoAutoConnect'><Cell N='Value' V='1'/><Cell N='Prompt' V='' F='No Formula'/></Row></Section></DocumentSheet></VisioDocument>",
"visio/windows.xml":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Windows ClientWidth='0' ClientHeight='0' xmlns='http://schemas.microsoft.com/office/visio/2012/main' xmlns:r='http://schemas.openxmlformats.org/officeDocument/2006/relationships' xml:space='preserve' />","visio/_rels/document.xml.rels":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Relationships xmlns='http://schemas.openxmlformats.org/package/2006/relationships'><Relationship Id='rId1' Type='http://schemas.microsoft.com/visio/2010/relationships/masters' Target='masters/masters.xml' /><Relationship Id='rId2' Type='http://schemas.microsoft.com/visio/2010/relationships/pages' Target='pages/pages.xml' /><Relationship Id='rId3' Type='http://schemas.microsoft.com/visio/2010/relationships/windows' Target='windows.xml' /></Relationships>",
"visio/masters/_rels/masters.xml.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.microsoft.com/visio/2010/relationships/master" Target="master1.xml"/></Relationships>',"visio/masters/masters.xml":"<?xml version='1.0' encoding='utf-8' ?><Masters xmlns='http://schemas.microsoft.com/office/visio/2012/main' xmlns:r='http://schemas.openxmlformats.org/officeDocument/2006/relationships' xml:space='preserve'><Master ID='4' NameU='Dynamic connector' IsCustomNameU='1' Name='Dynamic connector' IsCustomName='1' Prompt='This connector automatically routes between the shapes it connects.' IconSize='1' AlignName='2' MatchByName='1' IconUpdate='0' UniqueID='{002A9108-0000-0000-8E40-00608CF305B2}' BaseID='{F7290A45-E3AD-11D2-AE4F-006008C9F5A9}' PatternFlags='0' Hidden='0' MasterType='0'><PageSheet LineStyle='0' FillStyle='0' TextStyle='0'><Cell N='PageWidth' V='3'/><Cell N='PageHeight' V='3'/><Cell N='ShdwOffsetX' V='0.125'/><Cell N='ShdwOffsetY' V='-0.125'/><Cell N='PageScale' V='1' U='IN_F'/><Cell N='DrawingScale' V='1' U='IN_F'/><Cell N='DrawingSizeType' V='4'/><Cell N='DrawingScaleType' V='0'/><Cell N='InhibitSnap' V='0'/><Cell N='PageLockReplace' V='0' U='BOOL'/><Cell N='PageLockDuplicate' V='0' U='BOOL'/><Cell N='UIVisibility' V='0'/><Cell N='ShdwType' V='0'/><Cell N='ShdwObliqueAngle' V='0'/><Cell N='ShdwScaleFactor' V='1'/><Cell N='DrawingResizeType' V='0'/><Section N='Layer'><Row IX='0'><Cell N='Name' V='Connector'/><Cell N='Color' V='255'/><Cell N='Status' V='0'/><Cell N='Visible' V='1'/><Cell N='Print' V='1'/><Cell N='Active' V='0'/><Cell N='Lock' V='0'/><Cell N='Snap' V='1'/><Cell N='Glue' V='1'/><Cell N='NameUniv' V='Connector'/><Cell N='ColorTrans' V='0'/></Row></Section></PageSheet><Rel r:id='rId1'/></Master></Masters>",
"visio/masters/master1.xml":"<?xml version='1.0' encoding='utf-8' ?><MasterContents xmlns='http://schemas.microsoft.com/office/visio/2012/main' xmlns:r='http://schemas.openxmlformats.org/officeDocument/2006/relationships' xml:space='preserve'><Shapes><Shape ID='5' OriginalID='0' Type='Shape' LineStyle='7' FillStyle='7' TextStyle='7'><Cell N='PinX' V='1.5' F='GUARD((BeginX+EndX)/2)'/><Cell N='PinY' V='1.5' F='GUARD((BeginY+EndY)/2)'/><Cell N='Width' V='1' F='GUARD(EndX-BeginX)'/><Cell N='Height' V='-1' F='GUARD(EndY-BeginY)'/><Cell N='LocPinX' V='0.5' F='GUARD(Width*0.5)'/><Cell N='LocPinY' V='-0.5' F='GUARD(Height*0.5)'/><Cell N='Angle' V='0' F='GUARD(0DA)'/><Cell N='FlipX' V='0' F='GUARD(FALSE)'/><Cell N='FlipY' V='0' F='GUARD(FALSE)'/><Cell N='ResizeMode' V='0'/><Cell N='BeginX' V='1'/><Cell N='BeginY' V='2'/><Cell N='EndX' V='2'/><Cell N='EndY' V='1'/><Cell N='TxtPinX' V='0' F='SETATREF(Controls.TextPosition)'/><Cell N='TxtPinY' V='-1' F='SETATREF(Controls.TextPosition.Y)'/><Cell N='TxtWidth' V='0.5555555555555556' F='MAX(TEXTWIDTH(TheText),5*Char.Size)'/><Cell N='TxtHeight' V='0.2444444444444444' F='TEXTHEIGHT(TheText,TxtWidth)'/><Cell N='TxtLocPinX' V='0.2777777777777778' F='TxtWidth*0.5'/><Cell N='TxtLocPinY' V='0.1222222222222222' F='TxtHeight*0.5'/><Cell N='TxtAngle' V='0'/><Cell N='LockHeight' V='1'/><Cell N='LockCalcWH' V='1'/><Cell N='HelpTopic' V='Vis_SE.chm!#20000'/><Cell N='Copyright' V='Copyright 2001 Microsoft Corporation. All rights reserved.'/><Cell N='NoAlignBox' V='1'/><Cell N='DynFeedback' V='2'/><Cell N='GlueType' V='2'/><Cell N='ObjType' V='2'/><Cell N='NoLiveDynamics' V='1'/><Cell N='ShapeSplittable' V='1'/><Cell N='LayerMember' V='0'/><Section N='Control'><Row N='TextPosition'><Cell N='X' V='0'/><Cell N='Y' V='-1'/><Cell N='XDyn' V='0' F='Controls.TextPosition'/><Cell N='YDyn' V='-1' F='Controls.TextPosition.Y'/><Cell N='XCon' V='5' F='IF(OR(STRSAME(SHAPETEXT(TheText),\"\"),HideText),5,0)'/><Cell N='YCon' V='0'/><Cell N='CanGlue' V='0'/><Cell N='Prompt' V='Reposition Text'/></Row></Section><Section N='Geometry' IX='0'><Cell N='NoFill' V='1'/><Cell N='NoLine' V='0'/><Cell N='NoShow' V='0'/><Cell N='NoSnap' V='0'/><Cell N='NoQuickDrag' V='0'/><Row T='MoveTo' IX='1'><Cell N='X' V='0'/><Cell N='Y' V='0'/></Row><Row T='LineTo' IX='2'><Cell N='X' V='0'/><Cell N='Y' V='-1'/></Row></Section></Shape></Shapes></MasterContents>"},
-h;for(h in c)if(1<b&&h==F.CONTENT_TYPES_XML){for(var n=mxUtils.parseXml(c[h]),l=n.documentElement,d=l.children,e=null,w=0;w<d.length;w++){var x=d[w];"/visio/pages/page1.xml"==x.getAttribute(F.PART_NAME)&&(e=x)}for(w=2;w<=b;w++)d=e.cloneNode(),d.setAttribute(F.PART_NAME,"/visio/pages/page"+w+".xml"),l.appendChild(d);B(a,h,n,!0)}else a.file(h,c[h])}function r(a,b,c){return null!=a.createElementNS?a.createElementNS(b,c):a.createElement(c)}function f(a){var b=K[a];null==b&&(b=Z++,K[a]=b);return b}function p(a){var b=
-{};try{var c=a.getGraphBounds().clone(),h=a.view.scale,n=a.view.translate,l=Math.round(c.x/h)-n.x,d=Math.round(c.y/h)-n.y,e=a.pageFormat.width,w=a.pageFormat.height;0>l&&(l+=Math.ceil((n.x-c.x/h)/e)*e);0>d&&(d+=Math.ceil((n.y-c.y/h)/w)*w);var x=Math.max(1,Math.ceil((c.width/h+l)/e)),f=Math.max(1,Math.ceil((c.height/h+d)/w));b.gridEnabled=a.gridEnabled;b.gridSize=a.gridSize;b.guidesEnabled=a.graphHandler.guidesEnabled;b.pageVisible=a.pageVisible;b.pageScale=a.pageScale;b.pageWidth=a.pageFormat.width*
-x;b.pageHeight=a.pageFormat.height*f;b.backgroundClr=a.background;b.mathEnabled=a.mathEnabled;b.shadowVisible=a.shadowVisible}catch($a){}return b}function d(a,c,h,n){return b(a,c/F.CONVERSION_FACTOR,h,n)}function b(a,b,c,h){c=r(c,F.XMLNS,"Cell");c.setAttribute("N",a);c.setAttribute("V",b);h&&c.setAttribute("F",h);return c}function a(a,b,c,h,n){var l=r(n,F.XMLNS,"Row");l.setAttribute("T",a);l.setAttribute("IX",b);l.appendChild(d("X",c,n));l.appendChild(d("Y",h,n));return l}function c(a,c,h){var n=
-a.style[mxConstants.STYLE_FILLCOLOR];if(n&&"none"!=n){if(c.appendChild(b("FillForegnd",n,h)),(n=a.style[mxConstants.STYLE_GRADIENTCOLOR])&&"none"!=n){c.appendChild(b("FillBkgnd",n,h));var n=a.style[mxConstants.STYLE_GRADIENT_DIRECTION],l=28;if(n)switch(n){case mxConstants.DIRECTION_EAST:l=25;break;case mxConstants.DIRECTION_WEST:l=27;break;case mxConstants.DIRECTION_NORTH:l=30}c.appendChild(b("FillPattern",l,h))}}else c.appendChild(b("FillPattern",0,h));(n=a.style[mxConstants.STYLE_STROKECOLOR])&&
-"none"!=n?c.appendChild(b("LineColor",n,h)):c.appendChild(b("LinePattern",0,h));(n=a.style[mxConstants.STYLE_STROKEWIDTH])&&c.appendChild(d("LineWeight",n,h));(l=a.style[mxConstants.STYLE_OPACITY])?n=l:(n=a.style[mxConstants.STYLE_FILL_OPACITY],l=a.style[mxConstants.STYLE_STROKE_OPACITY]);n&&c.appendChild(b("FillForegndTrans",1-parseInt(n)/100,h));l&&c.appendChild(b("LineColorTrans",1-parseInt(l)/100,h));if(1==a.style[mxConstants.STYLE_DASHED]){n=a.style[mxConstants.STYLE_DASH_PATTERN];l=9;if(n)switch(n){case "1 1":l=
-10;break;case "1 2":l=3;break;case "1 4":l=17}c.appendChild(b("LinePattern",l,h))}1==a.style[mxConstants.STYLE_SHADOW]&&(c.appendChild(b("ShdwPattern",1,h)),c.appendChild(b("ShdwForegnd","#000000",h)),c.appendChild(b("ShdwForegndTrans",.6,h)),c.appendChild(b("ShapeShdwType",1,h)),c.appendChild(b("ShapeShdwOffsetX","0.02946278254943948",h)),c.appendChild(b("ShapeShdwOffsetY","-0.02946278254943948",h)),c.appendChild(b("ShapeShdwScaleFactor","1",h)),c.appendChild(b("ShapeShdwBlur","0.05555555555555555",
-h)),c.appendChild(b("ShapeShdwShow",2,h)));1==a.style[mxConstants.STYLE_FLIPH]&&c.appendChild(b("FlipX",1,h));1==a.style[mxConstants.STYLE_FLIPV]&&c.appendChild(b("FlipY",1,h));1==a.style[mxConstants.STYLE_ROUNDED]&&c.appendChild(d("Rounding",.1*a.cell.geometry.width,h));(a=a.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR])&&c.appendChild(b("TextBkgnd",a,h))}function h(a,c,h,n,l,e){var w=r(n,F.XMLNS,"Shape");w.setAttribute("ID",a);w.setAttribute("NameU","Shape"+a);w.setAttribute("LineStyle","0");w.setAttribute("FillStyle",
-"0");w.setAttribute("TextStyle","0");a=c.width/2;var x=c.height/2;w.appendChild(d("PinX",c.x+a+(e?0:D.shiftX),n));w.appendChild(d("PinY",l-c.y-x-(e?0:D.shiftY),n));w.appendChild(d("Width",c.width,n));w.appendChild(d("Height",c.height,n));w.appendChild(d("LocPinX",a,n));w.appendChild(d("LocPinY",x,n));w.appendChild(b("LayerMember",h+"",n));return w}function n(a,b){var c=F.ARROWS_MAP[(null==a?"none":a)+"|"+(null==b?"1":b)];return null!=c?c:1}function l(a){return null==a?2:2>=a?0:3>=a?1:5>=a?2:7>=a?
-3:9>=a?4:22>=a?5:6}function x(h,e,w,x,p,k){var A=w.view.getState(h,!0);if(null==A||null==A.absolutePoints||null==A.cellBounds)return null;w=r(x,F.XMLNS,"Shape");var B=f(h.id);w.setAttribute("ID",B);w.setAttribute("NameU","Dynamic connector."+B);w.setAttribute("Name","Dynamic connector."+B);w.setAttribute("Type","Shape");w.setAttribute("Master","4");var E=D.state,B=A.absolutePoints,C=A.cellBounds,H=C.width/2,K=C.height/2;w.appendChild(d("PinX",C.x+H+(k?0:D.shiftX),x));w.appendChild(d("PinY",p-C.y-
-K-(k?0:D.shiftY),x));w.appendChild(d("Width",C.width,x));w.appendChild(d("Height",C.height,x));w.appendChild(d("LocPinX",H,x));w.appendChild(d("LocPinY",K,x));D.newEdge(w,A,x);H=function(a,b,c){var h=a.x;a=a.y;h=h*E.scale-C.x+E.dx+(c||k?0:D.shiftX);a=(b?0:C.height)-a*E.scale+C.y-E.dy-(c||k?0:D.shiftY);return{x:h,y:a}};K=H(B[0],!0);w.appendChild(d("BeginX",C.x+K.x,x,"_WALKGLUE(BegTrigger,EndTrigger,WalkPreference)"));w.appendChild(d("BeginY",p-C.y+K.y,x,"_WALKGLUE(BegTrigger,EndTrigger,WalkPreference)"));
-K=H(B[B.length-1],!0);w.appendChild(d("EndX",C.x+K.x,x,"_WALKGLUE(EndTrigger,BegTrigger,WalkPreference)"));w.appendChild(d("EndY",p-C.y+K.y,x,"_WALKGLUE(EndTrigger,BegTrigger,WalkPreference)"));w.appendChild(b("BegTrigger","2",x,h.source?"_XFTRIGGER(Sheet."+f(h.source.id)+"!EventXFMod)":null));w.appendChild(b("EndTrigger","2",x,h.target?"_XFTRIGGER(Sheet."+f(h.target.id)+"!EventXFMod)":null));w.appendChild(b("ConFixedCode","6",x));w.appendChild(b("LayerMember",e+"",x));c(A,w,x);e=A.style[mxConstants.STYLE_STARTSIZE];
-h=n(A.style[mxConstants.STYLE_STARTARROW],A.style[mxConstants.STYLE_STARTFILL]);w.appendChild(b("BeginArrow",h,x));w.appendChild(b("BeginArrowSize",l(e),x));e=A.style[mxConstants.STYLE_ENDSIZE];h=n(A.style[mxConstants.STYLE_ENDARROW],A.style[mxConstants.STYLE_ENDFILL]);w.appendChild(b("EndArrow",h,x));w.appendChild(b("EndArrowSize",l(e),x));null!=A.text&&A.text.checkBounds()&&(D.save(),A.text.paint(D),D.restore());A=r(x,F.XMLNS,"Section");A.setAttribute("N","Geometry");A.setAttribute("IX","0");for(h=
-0;h<B.length;h++)e=H(B[h],!1,!0),A.appendChild(a(0==h?"MoveTo":"LineTo",h+1,e.x,e.y,x));A.appendChild(b("NoFill","1",x));A.appendChild(b("NoLine","0",x));w.appendChild(A);return w}function w(a,b,n,l,d,e,p){var A=a.geometry,k=A;if(null!=A)try{A.relative&&e&&(k=A.clone(),A.x*=e.width,A.y*=e.height,a.vertex&&null!=A.offset&&(A.x+=A.offset.x,A.y+=A.offset.y),A.relative=0);var B=f(a.id);if(!a.treatAsSingle&&0<a.getChildCount()){var E=h(B+"10000",A,b,l,d,p);E.setAttribute("Type","Group");var C=r(l,F.XMLNS,
-"Shapes");D.save();D.translate(-A.x,-A.y);var K=A.clone();K.x=0;K.y=0;a.setGeometry(K);a.treatAsSingle=!0;var H=w(a,b,n,l,A.height,A,!0);delete a.treatAsSingle;a.setGeometry(A);null!=H&&C.appendChild(H);for(d=0;d<a.getChildCount();d++)H=w(a.children[d],b,n,l,A.height,A,!0),null!=H&&C.appendChild(H);E.appendChild(C);D.restore();return E}if(a.vertex){var E=h(B,A,b,l,d,p),O=n.view.getState(a,!0);c(O,E,l);D.newShape(E,O,l);null!=O.text&&O.text.checkBounds()&&(D.save(),O.text.paint(D),D.restore());null!=
-O.shape&&O.shape.checkBounds()&&(D.save(),O.shape.paint(D),D.restore());E.appendChild(D.getShapeGeo());D.endShape();E.setAttribute("Type",D.getShapeType());return E}return x(a,b,n,l,d,p)}finally{a.geometry=k}else return null}function A(a,b){var c=mxUtils.createXmlDocument(),h=r(c,F.XMLNS,"PageContents");h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns",F.XMLNS);h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:r",F.XMLNS_R);var n=r(c,F.XMLNS,"Shapes");h.appendChild(n);var l=a.model,d=
-a.view.translate,e=a.view.scale,x=a.getGraphBounds();D.shiftX=0;D.shiftY=0;if(x.x/e<d.x||x.y/e<d.y)D.shiftX=Math.ceil((d.x-x.x/e)/a.pageFormat.width)*a.pageFormat.width,D.shiftY=Math.ceil((d.y-x.y/e)/a.pageFormat.height)*a.pageFormat.height;D.save();D.translate(-d.x,-d.y);D.scale(1/e);D.newPage();e=a.model.getChildCells(a.model.root);d={};for(x=0;x<e.length;x++)d[e[x].id]=x;for(var p in l.cells)e=l.cells[p],x=null!=e.parent?d[e.parent.id]:null,null!=x&&(e=w(e,x,a,c,b.pageHeight),null!=e&&n.appendChild(e));
-n=r(c,F.XMLNS,"Connects");h.appendChild(n);for(p in l.cells)e=l.cells[p],e.edge&&(e.source&&(d=r(c,F.XMLNS,"Connect"),d.setAttribute("FromSheet",f(e.id)),d.setAttribute("FromCell","BeginX"),d.setAttribute("ToSheet",f(e.source.id)),n.appendChild(d)),e.target&&(d=r(c,F.XMLNS,"Connect"),d.setAttribute("FromSheet",f(e.id)),d.setAttribute("FromCell","EndX"),d.setAttribute("ToSheet",f(e.target.id)),n.appendChild(d)));c.appendChild(h);D.restore();return c}function B(a,b,c,h){a.file(b,(h?"":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>')+
-mxUtils.getXml(c,"\n"))}function E(a,c,h,n){var l=mxUtils.createXmlDocument(),e=mxUtils.createXmlDocument(),w=r(l,F.XMLNS,"Pages");w.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns",F.XMLNS);w.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:r",F.XMLNS_R);var x=r(e,F.RELS_XMLNS,"Relationships"),f=1,p;for(p in c){var A="page"+f+".xml",k=r(l,F.XMLNS,"Page");k.setAttribute("ID",f-1);k.setAttribute("NameU",p);k.setAttribute("Name",p);var E=r(l,F.XMLNS,"PageSheet"),C=n[p];E.appendChild(d("PageWidth",
-C.pageWidth,l));E.appendChild(d("PageHeight",C.pageHeight,l));E.appendChild(b("PageScale",C.pageScale,l));E.appendChild(b("DrawingScale",1,l));C=r(l,F.XMLNS,"Rel");C.setAttributeNS(F.XMLNS_R,"r:id","rId"+f);var K=r(l,F.XMLNS,"Section");K.setAttribute("N","Layer");for(var H=h[p],D=0;D<H.length;D++){var O=r(l,F.XMLNS,"Row");O.setAttribute("IX",D+"");K.appendChild(O);O.appendChild(b("Name",H[D].name,l));O.appendChild(b("Color","255",l));O.appendChild(b("Status","0",l));O.appendChild(b("Visible",H[D].visible?
-"1":"0",l));O.appendChild(b("Print","1",l));O.appendChild(b("Active","0",l));O.appendChild(b("Lock",H[D].locked?"1":"0",l));O.appendChild(b("Snap","1",l));O.appendChild(b("Glue","1",l));O.appendChild(b("NameUniv",H[D].name,l));O.appendChild(b("ColorTrans","0",l))}E.appendChild(K);k.appendChild(E);k.appendChild(C);w.appendChild(k);k=r(e,F.RELS_XMLNS,"Relationship");k.setAttribute("Id","rId"+f);k.setAttribute("Type",F.PAGES_TYPE);k.setAttribute("Target",A);x.appendChild(k);B(a,F.VISIO_PAGES+A,c[p]);
-f++}l.appendChild(w);e.appendChild(x);B(a,F.VISIO_PAGES+"pages.xml",l);B(a,F.VISIO_PAGES+"_rels/pages.xml.rels",e)}function C(a,b){var c=F.VISIO_PAGES_RELS+"page"+b+".xml.rels",h=mxUtils.createXmlDocument(),n=r(h,F.RELS_XMLNS,"Relationships"),l=r(h,F.RELS_XMLNS,"Relationship");l.setAttribute("Type","http://schemas.microsoft.com/visio/2010/relationships/master");l.setAttribute("Id","rId1");l.setAttribute("Target","../masters/master1.xml");n.appendChild(l);var d=D.images;if(0<d.length)for(var e=0;e<
-d.length;e++)l=r(h,F.RELS_XMLNS,"Relationship"),l.setAttribute("Type",F.XMLNS_R+"/image"),l.setAttribute("Id","rId"+(e+2)),l.setAttribute("Target","../media/"+d[e]),n.appendChild(l);h.appendChild(n);B(a,c,h)}var F=this,D=new mxVsdxCanvas2D,K={},Z=1;this.exportCurrentDiagrams=function(a){try{if(e.spinner.spin(document.body,mxResources.get("exporting"))){var b=function(a,b){var c=a.model.getChildCells(a.model.root);n[b]=[];for(var h=0;h<c.length;h++)c[h].visible&&n[b].push({name:c[h].value||"Background",
-visible:c[h].visible,locked:c[h].style&&0<=c[h].style.indexOf("locked=1")})},c=new JSZip;D.init(c);K={};Z=1;var h={},n={},l={},d=null!=e.pages?e.pages.length:1;if(null!=e.pages){var w=function(a){a=a.getName();var n=e.editor.graph,d=null;null!=n.themes&&"darkTheme"==n.defaultThemeName&&(d=n.stylesheet,n.stylesheet=n.getDefaultStylesheet(),n.refresh());try{var w=p(n);h[a]=A(n,w);b(n,a);C(c,r+1);l[a]=w}finally{null!=d&&(n.stylesheet=d,n.refresh())}},x=e.editor.graph.getSelectionCells(),f=e.currentPage;
-if(a)w(f);else{for(var r=0;r<e.pages.length;r++){var B=e.pages[r];e.currentPage!=B&&e.selectPage(B,!0);w(B)}f!=e.currentPage&&e.selectPage(f,!0);e.editor.graph.setSelectionCells(x)}}else{var w=e.editor.graph,F=p(w);h.Page1=A(w,F);b(w,"Page1");C(c,1);l.Page1=F}k(c,d);E(c,h,n,l);a=function(){c.generateAsync({type:"base64"}).then(function(a){e.spinner.stop();var b=e.getBaseFilename();e.saveData(b+".vsdx","vsdx",a,"application/vnd.visio2013",!0)})};0<D.filesLoading?D.onFilesLoaded=a:a()}return!0}catch(Ma){return console.log(Ma),
+h;for(h in c)if(1<b&&h==F.CONTENT_TYPES_XML){for(var n=mxUtils.parseXml(c[h]),k=n.documentElement,d=k.children,e=null,w=0;w<d.length;w++){var y=d[w];"/visio/pages/page1.xml"==y.getAttribute(F.PART_NAME)&&(e=y)}for(w=2;w<=b;w++)d=e.cloneNode(),d.setAttribute(F.PART_NAME,"/visio/pages/page"+w+".xml"),k.appendChild(d);C(a,h,n,!0)}else a.file(h,c[h])}function r(a,b,c){return null!=a.createElementNS?a.createElementNS(b,c):a.createElement(c)}function f(a){var b=K[a];null==b&&(b=Z++,K[a]=b);return b}function p(a){var b=
+{};try{var c=a.getGraphBounds().clone(),h=a.view.scale,n=a.view.translate,k=Math.round(c.x/h)-n.x,d=Math.round(c.y/h)-n.y,e=a.pageFormat.width,w=a.pageFormat.height;0>k&&(k+=Math.ceil((n.x-c.x/h)/e)*e);0>d&&(d+=Math.ceil((n.y-c.y/h)/w)*w);var y=Math.max(1,Math.ceil((c.width/h+k)/e)),f=Math.max(1,Math.ceil((c.height/h+d)/w));b.gridEnabled=a.gridEnabled;b.gridSize=a.gridSize;b.guidesEnabled=a.graphHandler.guidesEnabled;b.pageVisible=a.pageVisible;b.pageScale=a.pageScale;b.pageWidth=a.pageFormat.width*
+y;b.pageHeight=a.pageFormat.height*f;b.backgroundClr=a.background;b.mathEnabled=a.mathEnabled;b.shadowVisible=a.shadowVisible}catch(mb){}return b}function d(a,c,h,n){return b(a,c/F.CONVERSION_FACTOR,h,n)}function b(a,b,c,h){c=r(c,F.XMLNS,"Cell");c.setAttribute("N",a);c.setAttribute("V",b);h&&c.setAttribute("F",h);return c}function a(a,b,c,h,n){var k=r(n,F.XMLNS,"Row");k.setAttribute("T",a);k.setAttribute("IX",b);k.appendChild(d("X",c,n));k.appendChild(d("Y",h,n));return k}function c(a,c,h){var n=
+a.style[mxConstants.STYLE_FILLCOLOR];if(n&&"none"!=n){if(c.appendChild(b("FillForegnd",n,h)),(n=a.style[mxConstants.STYLE_GRADIENTCOLOR])&&"none"!=n){c.appendChild(b("FillBkgnd",n,h));var n=a.style[mxConstants.STYLE_GRADIENT_DIRECTION],k=28;if(n)switch(n){case mxConstants.DIRECTION_EAST:k=25;break;case mxConstants.DIRECTION_WEST:k=27;break;case mxConstants.DIRECTION_NORTH:k=30}c.appendChild(b("FillPattern",k,h))}}else c.appendChild(b("FillPattern",0,h));(n=a.style[mxConstants.STYLE_STROKECOLOR])&&
+"none"!=n?c.appendChild(b("LineColor",n,h)):c.appendChild(b("LinePattern",0,h));(n=a.style[mxConstants.STYLE_STROKEWIDTH])&&c.appendChild(d("LineWeight",n,h));(k=a.style[mxConstants.STYLE_OPACITY])?n=k:(n=a.style[mxConstants.STYLE_FILL_OPACITY],k=a.style[mxConstants.STYLE_STROKE_OPACITY]);n&&c.appendChild(b("FillForegndTrans",1-parseInt(n)/100,h));k&&c.appendChild(b("LineColorTrans",1-parseInt(k)/100,h));if(1==a.style[mxConstants.STYLE_DASHED]){n=a.style[mxConstants.STYLE_DASH_PATTERN];k=9;if(n)switch(n){case "1 1":k=
+10;break;case "1 2":k=3;break;case "1 4":k=17}c.appendChild(b("LinePattern",k,h))}1==a.style[mxConstants.STYLE_SHADOW]&&(c.appendChild(b("ShdwPattern",1,h)),c.appendChild(b("ShdwForegnd","#000000",h)),c.appendChild(b("ShdwForegndTrans",.6,h)),c.appendChild(b("ShapeShdwType",1,h)),c.appendChild(b("ShapeShdwOffsetX","0.02946278254943948",h)),c.appendChild(b("ShapeShdwOffsetY","-0.02946278254943948",h)),c.appendChild(b("ShapeShdwScaleFactor","1",h)),c.appendChild(b("ShapeShdwBlur","0.05555555555555555",
+h)),c.appendChild(b("ShapeShdwShow",2,h)));1==a.style[mxConstants.STYLE_FLIPH]&&c.appendChild(b("FlipX",1,h));1==a.style[mxConstants.STYLE_FLIPV]&&c.appendChild(b("FlipY",1,h));1==a.style[mxConstants.STYLE_ROUNDED]&&c.appendChild(d("Rounding",.1*a.cell.geometry.width,h));(a=a.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR])&&c.appendChild(b("TextBkgnd",a,h))}function h(a,c,h,n,k,e){var w=r(n,F.XMLNS,"Shape");w.setAttribute("ID",a);w.setAttribute("NameU","Shape"+a);w.setAttribute("LineStyle","0");w.setAttribute("FillStyle",
+"0");w.setAttribute("TextStyle","0");a=c.width/2;var y=c.height/2;w.appendChild(d("PinX",c.x+a+(e?0:D.shiftX),n));w.appendChild(d("PinY",k-c.y-y-(e?0:D.shiftY),n));w.appendChild(d("Width",c.width,n));w.appendChild(d("Height",c.height,n));w.appendChild(d("LocPinX",a,n));w.appendChild(d("LocPinY",y,n));w.appendChild(b("LayerMember",h+"",n));return w}function n(a,b){var c=F.ARROWS_MAP[(null==a?"none":a)+"|"+(null==b?"1":b)];return null!=c?c:1}function k(a){return null==a?2:2>=a?0:3>=a?1:5>=a?2:7>=a?
+3:9>=a?4:22>=a?5:6}function w(h,e,w,y,p,A){var l=w.view.getState(h,!0);if(null==l||null==l.absolutePoints||null==l.cellBounds)return null;w=r(y,F.XMLNS,"Shape");var C=f(h.id);w.setAttribute("ID",C);w.setAttribute("NameU","Dynamic connector."+C);w.setAttribute("Name","Dynamic connector."+C);w.setAttribute("Type","Shape");w.setAttribute("Master","4");var E=D.state,C=l.absolutePoints,B=l.cellBounds,H=B.width/2,K=B.height/2;w.appendChild(d("PinX",B.x+H+(A?0:D.shiftX),y));w.appendChild(d("PinY",p-B.y-
+K-(A?0:D.shiftY),y));w.appendChild(d("Width",B.width,y));w.appendChild(d("Height",B.height,y));w.appendChild(d("LocPinX",H,y));w.appendChild(d("LocPinY",K,y));D.newEdge(w,l,y);H=function(a,b,c){var h=a.x;a=a.y;h=h*E.scale-B.x+E.dx+(c||A?0:D.shiftX);a=(b?0:B.height)-a*E.scale+B.y-E.dy-(c||A?0:D.shiftY);return{x:h,y:a}};K=H(C[0],!0);w.appendChild(d("BeginX",B.x+K.x,y,"_WALKGLUE(BegTrigger,EndTrigger,WalkPreference)"));w.appendChild(d("BeginY",p-B.y+K.y,y,"_WALKGLUE(BegTrigger,EndTrigger,WalkPreference)"));
+K=H(C[C.length-1],!0);w.appendChild(d("EndX",B.x+K.x,y,"_WALKGLUE(EndTrigger,BegTrigger,WalkPreference)"));w.appendChild(d("EndY",p-B.y+K.y,y,"_WALKGLUE(EndTrigger,BegTrigger,WalkPreference)"));w.appendChild(b("BegTrigger","2",y,h.source?"_XFTRIGGER(Sheet."+f(h.source.id)+"!EventXFMod)":null));w.appendChild(b("EndTrigger","2",y,h.target?"_XFTRIGGER(Sheet."+f(h.target.id)+"!EventXFMod)":null));w.appendChild(b("ConFixedCode","6",y));w.appendChild(b("LayerMember",e+"",y));c(l,w,y);e=l.style[mxConstants.STYLE_STARTSIZE];
+h=n(l.style[mxConstants.STYLE_STARTARROW],l.style[mxConstants.STYLE_STARTFILL]);w.appendChild(b("BeginArrow",h,y));w.appendChild(b("BeginArrowSize",k(e),y));e=l.style[mxConstants.STYLE_ENDSIZE];h=n(l.style[mxConstants.STYLE_ENDARROW],l.style[mxConstants.STYLE_ENDFILL]);w.appendChild(b("EndArrow",h,y));w.appendChild(b("EndArrowSize",k(e),y));null!=l.text&&l.text.checkBounds()&&(D.save(),l.text.paint(D),D.restore());l=r(y,F.XMLNS,"Section");l.setAttribute("N","Geometry");l.setAttribute("IX","0");for(h=
+0;h<C.length;h++)e=H(C[h],!1,!0),l.appendChild(a(0==h?"MoveTo":"LineTo",h+1,e.x,e.y,y));l.appendChild(b("NoFill","1",y));l.appendChild(b("NoLine","0",y));w.appendChild(l);return w}function y(a,b,n,k,d,e,p){var A=a.geometry,l=A;if(null!=A)try{A.relative&&e&&(l=A.clone(),A.x*=e.width,A.y*=e.height,a.vertex&&null!=A.offset&&(A.x+=A.offset.x,A.y+=A.offset.y),A.relative=0);var C=f(a.id);if(!a.treatAsSingle&&0<a.getChildCount()){var E=h(C+"10000",A,b,k,d,p);E.setAttribute("Type","Group");var B=r(k,F.XMLNS,
+"Shapes");D.save();D.translate(-A.x,-A.y);var K=A.clone();K.x=0;K.y=0;a.setGeometry(K);a.treatAsSingle=!0;var H=y(a,b,n,k,A.height,A,!0);delete a.treatAsSingle;a.setGeometry(A);null!=H&&B.appendChild(H);for(d=0;d<a.getChildCount();d++)H=y(a.children[d],b,n,k,A.height,A,!0),null!=H&&B.appendChild(H);E.appendChild(B);D.restore();return E}if(a.vertex){var E=h(C,A,b,k,d,p),O=n.view.getState(a,!0);c(O,E,k);D.newShape(E,O,k);null!=O.text&&O.text.checkBounds()&&(D.save(),O.text.paint(D),D.restore());null!=
+O.shape&&O.shape.checkBounds()&&(D.save(),O.shape.paint(D),D.restore());E.appendChild(D.getShapeGeo());D.endShape();E.setAttribute("Type",D.getShapeType());return E}return w(a,b,n,k,d,p)}finally{a.geometry=l}else return null}function A(a,b){var c=mxUtils.createXmlDocument(),h=r(c,F.XMLNS,"PageContents");h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns",F.XMLNS);h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:r",F.XMLNS_R);var n=r(c,F.XMLNS,"Shapes");h.appendChild(n);var k=a.model,d=
+a.view.translate,e=a.view.scale,w=a.getGraphBounds();D.shiftX=0;D.shiftY=0;if(w.x/e<d.x||w.y/e<d.y)D.shiftX=Math.ceil((d.x-w.x/e)/a.pageFormat.width)*a.pageFormat.width,D.shiftY=Math.ceil((d.y-w.y/e)/a.pageFormat.height)*a.pageFormat.height;D.save();D.translate(-d.x,-d.y);D.scale(1/e);D.newPage();e=a.model.getChildCells(a.model.root);d={};for(w=0;w<e.length;w++)d[e[w].id]=w;for(var p in k.cells)e=k.cells[p],w=null!=e.parent?d[e.parent.id]:null,null!=w&&(e=y(e,w,a,c,b.pageHeight),null!=e&&n.appendChild(e));
+n=r(c,F.XMLNS,"Connects");h.appendChild(n);for(p in k.cells)e=k.cells[p],e.edge&&(e.source&&(d=r(c,F.XMLNS,"Connect"),d.setAttribute("FromSheet",f(e.id)),d.setAttribute("FromCell","BeginX"),d.setAttribute("ToSheet",f(e.source.id)),n.appendChild(d)),e.target&&(d=r(c,F.XMLNS,"Connect"),d.setAttribute("FromSheet",f(e.id)),d.setAttribute("FromCell","EndX"),d.setAttribute("ToSheet",f(e.target.id)),n.appendChild(d)));c.appendChild(h);D.restore();return c}function C(a,b,c,h){a.file(b,(h?"":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>')+
+mxUtils.getXml(c,"\n"))}function E(a,c,h,n){var k=mxUtils.createXmlDocument(),e=mxUtils.createXmlDocument(),w=r(k,F.XMLNS,"Pages");w.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns",F.XMLNS);w.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:r",F.XMLNS_R);var y=r(e,F.RELS_XMLNS,"Relationships"),f=1,p;for(p in c){var A="page"+f+".xml",l=r(k,F.XMLNS,"Page");l.setAttribute("ID",f-1);l.setAttribute("NameU",p);l.setAttribute("Name",p);var E=r(k,F.XMLNS,"PageSheet"),B=n[p];E.appendChild(d("PageWidth",
+B.pageWidth,k));E.appendChild(d("PageHeight",B.pageHeight,k));E.appendChild(b("PageScale",B.pageScale,k));E.appendChild(b("DrawingScale",1,k));B=r(k,F.XMLNS,"Rel");B.setAttributeNS(F.XMLNS_R,"r:id","rId"+f);var K=r(k,F.XMLNS,"Section");K.setAttribute("N","Layer");for(var H=h[p],D=0;D<H.length;D++){var O=r(k,F.XMLNS,"Row");O.setAttribute("IX",D+"");K.appendChild(O);O.appendChild(b("Name",H[D].name,k));O.appendChild(b("Color","255",k));O.appendChild(b("Status","0",k));O.appendChild(b("Visible",H[D].visible?
+"1":"0",k));O.appendChild(b("Print","1",k));O.appendChild(b("Active","0",k));O.appendChild(b("Lock",H[D].locked?"1":"0",k));O.appendChild(b("Snap","1",k));O.appendChild(b("Glue","1",k));O.appendChild(b("NameUniv",H[D].name,k));O.appendChild(b("ColorTrans","0",k))}E.appendChild(K);l.appendChild(E);l.appendChild(B);w.appendChild(l);l=r(e,F.RELS_XMLNS,"Relationship");l.setAttribute("Id","rId"+f);l.setAttribute("Type",F.PAGES_TYPE);l.setAttribute("Target",A);y.appendChild(l);C(a,F.VISIO_PAGES+A,c[p]);
+f++}k.appendChild(w);e.appendChild(y);C(a,F.VISIO_PAGES+"pages.xml",k);C(a,F.VISIO_PAGES+"_rels/pages.xml.rels",e)}function B(a,b){var c=F.VISIO_PAGES_RELS+"page"+b+".xml.rels",h=mxUtils.createXmlDocument(),n=r(h,F.RELS_XMLNS,"Relationships"),k=r(h,F.RELS_XMLNS,"Relationship");k.setAttribute("Type","http://schemas.microsoft.com/visio/2010/relationships/master");k.setAttribute("Id","rId1");k.setAttribute("Target","../masters/master1.xml");n.appendChild(k);var d=D.images;if(0<d.length)for(var e=0;e<
+d.length;e++)k=r(h,F.RELS_XMLNS,"Relationship"),k.setAttribute("Type",F.XMLNS_R+"/image"),k.setAttribute("Id","rId"+(e+2)),k.setAttribute("Target","../media/"+d[e]),n.appendChild(k);h.appendChild(n);C(a,c,h)}var F=this,D=new mxVsdxCanvas2D,K={},Z=1;this.exportCurrentDiagrams=function(a){try{if(e.spinner.spin(document.body,mxResources.get("exporting"))){var b=function(a,b){var c=a.model.getChildCells(a.model.root);n[b]=[];for(var h=0;h<c.length;h++)c[h].visible&&n[b].push({name:c[h].value||"Background",
+visible:c[h].visible,locked:c[h].style&&0<=c[h].style.indexOf("locked=1")})},c=new JSZip;D.init(c);K={};Z=1;var h={},n={},k={},d=null!=e.pages?e.pages.length:1;if(null!=e.pages){var w=function(a){a=a.getName();var n=e.editor.graph,d=null;null!=n.themes&&"darkTheme"==n.defaultThemeName&&(d=n.stylesheet,n.stylesheet=n.getDefaultStylesheet(),n.refresh());try{var w=p(n);h[a]=A(n,w);b(n,a);B(c,r+1);k[a]=w}finally{null!=d&&(n.stylesheet=d,n.refresh())}},y=e.editor.graph.getSelectionCells(),f=e.currentPage;
+if(a)w(f);else{for(var r=0;r<e.pages.length;r++){var C=e.pages[r];e.currentPage!=C&&e.selectPage(C,!0);w(C)}f!=e.currentPage&&e.selectPage(f,!0);e.editor.graph.setSelectionCells(y)}}else{var w=e.editor.graph,F=p(w);h.Page1=A(w,F);b(w,"Page1");B(c,1);k.Page1=F}l(c,d);E(c,h,n,k);a=function(){c.generateAsync({type:"base64"}).then(function(a){e.spinner.stop();var b=e.getBaseFilename();e.saveData(b+".vsdx","vsdx",a,"application/vnd.visio2013",!0)})};0<D.filesLoading?D.onFilesLoaded=a:a()}return!0}catch(Ib){return console.log(Ib),
e.spinner.stop(),!1}}}VsdxExport.prototype.CONVERSION_FACTOR=101.6;VsdxExport.prototype.PAGES_TYPE="http://schemas.microsoft.com/visio/2010/relationships/page";VsdxExport.prototype.RELS_XMLNS="http://schemas.openxmlformats.org/package/2006/relationships";VsdxExport.prototype.XML_SPACE="preserve";VsdxExport.prototype.XMLNS_R="http://schemas.openxmlformats.org/officeDocument/2006/relationships";VsdxExport.prototype.XMLNS="http://schemas.microsoft.com/office/visio/2012/main";
VsdxExport.prototype.VISIO_PAGES="visio/pages/";VsdxExport.prototype.PREFEX="com/mxgraph/io/vsdx/resources/export/";VsdxExport.prototype.VSDX_ENC="ISO-8859-1";VsdxExport.prototype.PART_NAME="PartName";VsdxExport.prototype.CONTENT_TYPES_XML="[Content_Types].xml";VsdxExport.prototype.VISIO_PAGES_RELS="visio/pages/_rels/";
VsdxExport.prototype.ARROWS_MAP={"none|1":0,"none|0":0,"open|1":1,"open|0":1,"block|1":4,"block|0":14,"classic|1":5,"classic|0":17,"oval|1":10,"oval|0":20,"diamond|1":11,"diamond|0":22,"blockThin|1":2,"blockThin|0":15,"dash|1":23,"dash|0":23,"ERone|1":24,"ERone|0":24,"ERmandOne|1":25,"ERmandOne|0":25,"ERmany|1":27,"ERmany|0":27,"ERoneToMany|1":28,"ERoneToMany|0":28,"ERzeroToMany|1":29,"ERzeroToMany|0":29,"ERzeroToOne|1":30,"ERzeroToOne|0":30,"openAsync|1":9,"openAsync|0":9};function mxVsdxCanvas2D(){mxAbstractCanvas2D.call(this)}mxUtils.extend(mxVsdxCanvas2D,mxAbstractCanvas2D);mxVsdxCanvas2D.prototype.textEnabled=!0;mxVsdxCanvas2D.prototype.init=function(e){this.filesLoading=0;this.zip=e};mxVsdxCanvas2D.prototype.onFilesLoaded=function(){};mxVsdxCanvas2D.prototype.createElt=function(e){return null!=this.xmlDoc.createElementNS?this.xmlDoc.createElementNS(VsdxExport.prototype.XMLNS,e):this.xmlDoc.createElement(e)};
-mxVsdxCanvas2D.prototype.createGeoSec=function(){null!=this.geoSec&&this.shape.appendChild(this.geoSec);var e=this.createElt("Section");e.setAttribute("N","Geometry");e.setAttribute("IX",this.geoIndex++);this.geoSec=e;this.geoStepIndex=1;this.lastMoveToY=this.lastMoveToX=this.lastY=this.lastX=0};mxVsdxCanvas2D.prototype.newShape=function(e,k,r){this.geoIndex=0;this.shape=e;this.cellState=k;this.xmGeo=k.cell.geometry;this.xmlDoc=r;this.shapeImg=this.geoSec=null;this.shapeType="Shape";this.createGeoSec()};
-mxVsdxCanvas2D.prototype.newEdge=function(e,k,r){this.shape=e;this.cellState=k;this.xmGeo=k.cellBounds;this.xmlDoc=r};mxVsdxCanvas2D.prototype.endShape=function(){null!=this.shapeImg&&this.addForeignData(this.shapeImg.type,this.shapeImg.id)};mxVsdxCanvas2D.prototype.newPage=function(){this.images=[]};mxVsdxCanvas2D.prototype.getShapeType=function(){return this.shapeType};mxVsdxCanvas2D.prototype.getShapeGeo=function(){return this.geoSec};
-mxVsdxCanvas2D.prototype.createCellElemScaled=function(e,k,r){return this.createCellElem(e,k/VsdxExport.prototype.CONVERSION_FACTOR,r)};mxVsdxCanvas2D.prototype.createCellElem=function(e,k,r){var f=this.createElt("Cell");f.setAttribute("N",e);f.setAttribute("V",k);r&&f.setAttribute("F",r);return f};
-mxVsdxCanvas2D.prototype.createRowScaled=function(e,k,r,f,p,d,b,a,c,h,n,l,x,w){return this.createRowRel(e,k,r/VsdxExport.prototype.CONVERSION_FACTOR,f/VsdxExport.prototype.CONVERSION_FACTOR,p/VsdxExport.prototype.CONVERSION_FACTOR,d/VsdxExport.prototype.CONVERSION_FACTOR,b/VsdxExport.prototype.CONVERSION_FACTOR,a/VsdxExport.prototype.CONVERSION_FACTOR,c,h,n,l,x,w)};
-mxVsdxCanvas2D.prototype.createRowRel=function(e,k,r,f,p,d,b,a,c,h,n,l,x,w){var A=this.createElt("Row");A.setAttribute("T",e);A.setAttribute("IX",k);A.appendChild(this.createCellElem("X",r,c));A.appendChild(this.createCellElem("Y",f,h));null!=p&&isFinite(p)&&A.appendChild(this.createCellElem("A",p,n));null!=d&&isFinite(d)&&A.appendChild(this.createCellElem("B",d,l));null!=b&&isFinite(b)&&A.appendChild(this.createCellElem("C",b,x));null!=a&&isFinite(a)&&A.appendChild(this.createCellElem("D",a,w));
+mxVsdxCanvas2D.prototype.createGeoSec=function(){null!=this.geoSec&&this.shape.appendChild(this.geoSec);var e=this.createElt("Section");e.setAttribute("N","Geometry");e.setAttribute("IX",this.geoIndex++);this.geoSec=e;this.geoStepIndex=1;this.lastMoveToY=this.lastMoveToX=this.lastY=this.lastX=0};mxVsdxCanvas2D.prototype.newShape=function(e,l,r){this.geoIndex=0;this.shape=e;this.cellState=l;this.xmGeo=l.cell.geometry;this.xmlDoc=r;this.shapeImg=this.geoSec=null;this.shapeType="Shape";this.createGeoSec()};
+mxVsdxCanvas2D.prototype.newEdge=function(e,l,r){this.shape=e;this.cellState=l;this.xmGeo=l.cellBounds;this.xmlDoc=r};mxVsdxCanvas2D.prototype.endShape=function(){null!=this.shapeImg&&this.addForeignData(this.shapeImg.type,this.shapeImg.id)};mxVsdxCanvas2D.prototype.newPage=function(){this.images=[]};mxVsdxCanvas2D.prototype.getShapeType=function(){return this.shapeType};mxVsdxCanvas2D.prototype.getShapeGeo=function(){return this.geoSec};
+mxVsdxCanvas2D.prototype.createCellElemScaled=function(e,l,r){return this.createCellElem(e,l/VsdxExport.prototype.CONVERSION_FACTOR,r)};mxVsdxCanvas2D.prototype.createCellElem=function(e,l,r){var f=this.createElt("Cell");f.setAttribute("N",e);f.setAttribute("V",l);r&&f.setAttribute("F",r);return f};
+mxVsdxCanvas2D.prototype.createRowScaled=function(e,l,r,f,p,d,b,a,c,h,n,k,w,y){return this.createRowRel(e,l,r/VsdxExport.prototype.CONVERSION_FACTOR,f/VsdxExport.prototype.CONVERSION_FACTOR,p/VsdxExport.prototype.CONVERSION_FACTOR,d/VsdxExport.prototype.CONVERSION_FACTOR,b/VsdxExport.prototype.CONVERSION_FACTOR,a/VsdxExport.prototype.CONVERSION_FACTOR,c,h,n,k,w,y)};
+mxVsdxCanvas2D.prototype.createRowRel=function(e,l,r,f,p,d,b,a,c,h,n,k,w,y){var A=this.createElt("Row");A.setAttribute("T",e);A.setAttribute("IX",l);A.appendChild(this.createCellElem("X",r,c));A.appendChild(this.createCellElem("Y",f,h));null!=p&&isFinite(p)&&A.appendChild(this.createCellElem("A",p,n));null!=d&&isFinite(d)&&A.appendChild(this.createCellElem("B",d,k));null!=b&&isFinite(b)&&A.appendChild(this.createCellElem("C",b,w));null!=a&&isFinite(a)&&A.appendChild(this.createCellElem("D",a,y));
return A};mxVsdxCanvas2D.prototype.begin=function(){1<this.geoStepIndex&&this.createGeoSec()};
-mxVsdxCanvas2D.prototype.rect=function(e,k,r,f){1<this.geoStepIndex&&this.createGeoSec();var p=this.state;r*=p.scale;f*=p.scale;var d=this.xmGeo;e=(e-d.x+p.dx)*p.scale;k=(d.height-k+d.y-p.dy)*p.scale;this.geoSec.appendChild(this.createRowScaled("MoveTo",this.geoStepIndex++,e,k));this.geoSec.appendChild(this.createRowScaled("LineTo",this.geoStepIndex++,e+r,k));this.geoSec.appendChild(this.createRowScaled("LineTo",this.geoStepIndex++,e+r,k-f));this.geoSec.appendChild(this.createRowScaled("LineTo",this.geoStepIndex++,
-e,k-f));this.geoSec.appendChild(this.createRowScaled("LineTo",this.geoStepIndex++,e,k))};mxVsdxCanvas2D.prototype.roundrect=function(e,k,r,f,p,d){this.rect(e,k,r,f);this.shape.appendChild(this.createCellElemScaled("Rounding",p))};
-mxVsdxCanvas2D.prototype.ellipse=function(e,k,r,f){1<this.geoStepIndex&&this.createGeoSec();var p=this.state;r*=p.scale;f*=p.scale;var d=this.xmGeo,b=d.height*p.scale,a=d.width*p.scale;e=(e-d.x+p.dx)*p.scale;k=b+(-k+d.y-p.dy)*p.scale;this.geoSec.appendChild(this.createRowScaled("Ellipse",this.geoStepIndex++,e+r/2,k-f/2,e,k-f/2,e+r/2,k,"Width*"+(e+r/2)/a,"Height*"+(k-f/2)/b,"Width*"+e/a,"Height*"+(k-f/2)/b,"Width*"+(e+r/2)/a,"Height*"+k/b))};
-mxVsdxCanvas2D.prototype.moveTo=function(e,k){1<this.geoStepIndex&&this.createGeoSec();this.lastMoveToX=e;this.lastMoveToY=k;this.lastX=e;this.lastY=k;var r=this.xmGeo,f=this.state;e=(e-r.x+f.dx)*f.scale;k=(r.height-k+r.y-f.dy)*f.scale;var p=r.height*f.scale,r=r.width*f.scale;this.geoSec.appendChild(this.createRowRel("RelMoveTo",this.geoStepIndex++,e/r,k/p))};
-mxVsdxCanvas2D.prototype.lineTo=function(e,k){this.lastX=e;this.lastY=k;var r=this.xmGeo,f=this.state;e=(e-r.x+f.dx)*f.scale;k=(r.height-k+r.y-f.dy)*f.scale;var p=r.height*f.scale,r=r.width*f.scale;this.geoSec.appendChild(this.createRowRel("RelLineTo",this.geoStepIndex++,e/r,k/p))};
-mxVsdxCanvas2D.prototype.quadTo=function(e,k,r,f){this.lastX=r;this.lastY=f;var p=this.state,d=this.xmGeo,b=d.height*p.scale,a=d.width*p.scale;e=(e-d.x+p.dx)*p.scale;k=(d.height-k+d.y-p.dy)*p.scale;r=(r-d.x+p.dx)*p.scale;f=(d.height-f+d.y-p.dy)*p.scale;this.geoSec.appendChild(this.createRowRel("RelQuadBezTo",this.geoStepIndex++,r/a,f/b,e/a,k/b))};
-mxVsdxCanvas2D.prototype.curveTo=function(e,k,r,f,p,d){this.lastX=p;this.lastY=d;var b=this.state,a=this.xmGeo,c=a.height*b.scale,h=a.width*b.scale;e=(e-a.x+b.dx)*b.scale;k=(a.height-k+a.y-b.dy)*b.scale;r=(r-a.x+b.dx)*b.scale;f=(a.height-f+a.y-b.dy)*b.scale;p=(p-a.x+b.dx)*b.scale;d=(a.height-d+a.y-b.dy)*b.scale;this.geoSec.appendChild(this.createRowRel("RelCubBezTo",this.geoStepIndex++,p/h,d/c,e/h,k/c,r/h,f/c))};
-mxVsdxCanvas2D.prototype.close=function(){this.lastMoveToX==this.lastX&&this.lastMoveToY==this.lastY||this.lineTo(this.lastMoveToX,this.lastMoveToY)};mxVsdxCanvas2D.prototype.addForeignData=function(e,k){var r=this.createElt("ForeignData");r.setAttribute("ForeignType","Bitmap");e=e.toUpperCase();"BMP"!=e&&r.setAttribute("CompressionType",e);var f=this.createElt("Rel");f.setAttribute("r:id","rId"+k);r.appendChild(f);this.shape.appendChild(r);this.shapeType="Foreign"};
-mxVsdxCanvas2D.prototype.convertSvg2Png=function(e,k,r){var f=this;this.filesLoading++;try{var p=document.createElement("canvas"),d=p.getContext("2d");k||(e=String.fromCharCode.apply(null,new Uint8Array(e)),e=window.btoa?btoa(e):Base64.encode(e,!0));k="data:image/svg+xml;base64,"+e;img=new Image;img.onload=function(){p.width=this.width;p.height=this.height;d.drawImage(this,0,0);try{r(p.toDataURL("image/png"))}catch(b){}f.filesLoading--;if(0==f.filesLoading)f.onFilesLoaded()};img.onerror=function(){console.log("SVG2PNG conversion failed");
-try{r(e)}catch(b){}f.filesLoading--;if(0==f.filesLoading)f.onFilesLoaded()};img.src=k}catch(b){console.log("SVG2PNG conversion failed"+b.message);try{r(e)}catch(a){}this.filesLoading--;if(0==f.filesLoading)f.onFilesLoaded()}};
-mxVsdxCanvas2D.prototype.image=function(e,k,r,f,p,d,b,a){var c=this,h="image"+(this.images.length+1)+".",n;if(0==p.indexOf("data:"))n=p.indexOf("base64,"),d=p.substring(n+7),n=p.substring(11,n-1),0==n.indexOf("svg")?(n="png",h+=n,this.convertSvg2Png(d,!0,function(a){c.zip.file("visio/media/"+h,a.substring(22),{base64:!0})})):(h+=n,this.zip.file("visio/media/"+h,d,{base64:!0}));else if(window.XMLHttpRequest){p=this.converter.convert(p);this.filesLoading++;n=p.lastIndexOf(".");n=p.substring(n+1);var l=
-!1;0==n.indexOf("svg")&&(n="png",l=!0);h+=n;d=new XMLHttpRequest;d.open("GET",p,!0);d.responseType="arraybuffer";d.onreadystatechange=function(a){if(4==this.readyState&&(200==this.status&&(l?c.convertSvg2Png(this.response,!1,function(a){c.zip.file("visio/media/"+h,a.substring(22),{base64:!0})}):c.zip.file("visio/media/"+h,this.response)),c.filesLoading--,0==c.filesLoading))c.onFilesLoaded()};d.send()}this.images.push(h);this.shapeImg={type:n,id:this.images.length+1};p=this.state;r*=p.scale;f*=p.scale;
-n=this.xmGeo;e=(e-n.x+p.dx)*p.scale;k=(n.height-k+n.y-p.dy)*p.scale;this.shape.appendChild(this.createCellElemScaled("ImgOffsetX",e));this.shape.appendChild(this.createCellElemScaled("ImgOffsetY",k-f));this.shape.appendChild(this.createCellElemScaled("ImgWidth",r));this.shape.appendChild(this.createCellElemScaled("ImgHeight",f))};
-mxVsdxCanvas2D.prototype.text=function(e,k,r,f,p,d,b,a,c,h,n,l,x){var w=this;if(this.textEnabled&&null!=p){mxUtils.isNode(p)&&(p=mxUtils.getOuterHtml(p));0==r&&0==f&&(f=mxUtils.getSizeForString(p,w.cellState.style.fontSize,w.cellState.style.fontFamily),r=2*f.width,f=2*f.height);"html"==c&&("0"!=mxUtils.getValue(this.cellState.style,"nl2Br","1")&&(p=p.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n")),null==this.html2txtDiv&&(this.html2txtDiv=document.createElement("div")),this.html2txtDiv.innerHTML=Graph.sanitizeHtml(p),
-p=mxUtils.extractTextWithWhitespace(this.html2txtDiv.childNodes));h=this.state;n=this.xmGeo;r*=h.scale;f*=h.scale;var A=this.createElt("Section");A.setAttribute("N","Character");var B=this.createElt("Section");B.setAttribute("N","Paragraph");var E=this.createElt("Text"),C=0,F=0,D=0,K=0,Z=0,H=0,Y=0,O=function(b,c,h,n,l){var d=b.fontSize,e=b.fontFamily,x=mxUtils.getSizeForString(l,d,e);a&&x.width>r&&(x=mxUtils.getSizeForString(l,d,e,r));b.blockElem?(Z+=x.width,D=Math.min(Math.max(D,Z),r),Z=0,H=Math.max(H,
-x.height),K+=H+Y,Y=H,H=0):(Z+=x.width,D=Math.min(Math.max(D,Z),r),H=Math.max(H,x.height),K=Math.max(K,H));x=w.createElt("Row");x.setAttribute("IX",C);b.fontColor&&x.appendChild(w.createCellElem("Color",b.fontColor));d&&x.appendChild(w.createCellElemScaled("Size",.97*d));e&&x.appendChild(w.createCellElem("Font",e));d=0;b.bold&&(d|=17);b.italic&&(d|=34);b.underline&&(d|=4);x.appendChild(w.createCellElem("Style",d));x.appendChild(w.createCellElem("Case","0"));x.appendChild(w.createCellElem("Pos","0"));
-x.appendChild(w.createCellElem("FontScale","1"));x.appendChild(w.createCellElem("Letterspace","0"));c.appendChild(x);c=w.createElt("Row");c.setAttribute("IX",F);switch(b.align){case "left":d=0;break;case "center":d=1;break;case "right":d=2;break;case "start":d=0;break;case "end":d=2;break;case "justify":d=0;break;default:d=1}c.appendChild(w.createCellElem("HorzAlign",d));h.appendChild(c);h=w.createElt("cp");h.setAttribute("IX",C++);n.appendChild(h);b=w.xmlDoc.createTextNode(l+(b.blockElem?"\n":""));
-n.appendChild(b)},S=function(a,b){b=b||{};for(var c=0;c<a.length;c++){var h=a[c];if(3==h.nodeType){var n=w.cellState.style.fontStyle,l={fontColor:b.fontColor||w.cellState.style.fontColor,fontSize:b.fontSize||w.cellState.style.fontSize,fontFamily:b.fontFamily||w.cellState.style.fontFamily,align:b.align||w.cellState.style.align,bold:b.bold||n&1,italic:b.italic||n&2,underline:b.underline||n&4},n=!1;c+1<a.length&&"BR"==a[c+1].nodeName.toUpperCase()&&(n=!0,c++);O(l,A,B,E,(b.OL?b.LiIndex+". ":"")+h.textContent+
-(n?"\n":""))}else if(1==h.nodeType){var n=h.nodeName.toUpperCase(),d=h.childNodes.length,l=window.getComputedStyle(h,null),e="bold"==l.getPropertyValue("font-weight")||b.bold,x="italic"==l.getPropertyValue("font-style")||b.italic,f=0<=l.getPropertyValue("text-decoration").indexOf("underline")||b.underline,p=l.getPropertyValue("text-align"),k;k=l.getPropertyValue("color");k=(k=k.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===k.length?"#"+("0"+parseInt(k[1],10).toString(16)).slice(-2)+
-("0"+parseInt(k[2],10).toString(16)).slice(-2)+("0"+parseInt(k[3],10).toString(16)).slice(-2):"";l={bold:e,italic:x,underline:f,align:p,fontColor:k,fontSize:parseFloat(l.getPropertyValue("font-size")),fontFamily:l.getPropertyValue("font-family").replace(/"/g,""),blockElem:"block"==l.getPropertyValue("display")||"BR"==n||"LI"==n,OL:b.OL,LiIndex:b.LiIndex};"UL"==n?(e=w.createElt("Row"),e.setAttribute("IX",F),e.appendChild(w.createCellElem("HorzAlign","0")),e.appendChild(w.createCellElem("Bullet","1")),
-B.appendChild(e),e=w.createElt("pp"),e.setAttribute("IX",F++),E.appendChild(e)):"OL"==n?l.OL=!0:"LI"==n&&(l.LiIndex=c+1);0<d?(S(h.childNodes,l),"UL"==n&&(e=w.createElt("Row"),e.setAttribute("IX",F),e.appendChild(w.createCellElem("Bullet","0")),B.appendChild(e),e=w.createElt("pp"),e.setAttribute("IX",F++),E.appendChild(e)),O(l,A,B,E,"")):O(l,A,B,E,(b.OL?b.LiIndex+". ":"")+h.textContent)}}};"html"==c&&mxClient.IS_SVG?(p=this.cellState.text.node.getElementsByTagName("div")[mxClient.NO_FO?0:1],null!=
-p&&S(p.childNodes,{})):O({fontColor:w.cellState.style.fontColor,fontSize:w.cellState.style.fontSize,fontFamily:w.cellState.style.fontFamily},A,B,E,p);c=p=0;f=Math.max(f,K);r=Math.max(r,D);x=r/2;var aa=f/2,ja=parseInt(mxUtils.getValue(this.cellState.style,"rotation","0")),ea=ja*Math.PI/180;switch(d){case "right":0!=ja?(e-=x*Math.cos(ea),k-=x*Math.sin(ea)):p=D/2;break;case "left":0!=ja?(e+=x*Math.cos(ea),k+=x*Math.sin(ea)):p=-D/2}switch(b){case "top":0!=ja?(e+=aa*Math.sin(ea),k+=aa*Math.cos(ea)):c=
-K/2;break;case "bottom":0!=ja?(e-=aa*Math.sin(ea),k-=aa*Math.cos(ea)):c=-K/2}e=(e-n.x+h.dx)*h.scale;k=(n.height-k+n.y-h.dy)*h.scale;this.shape.appendChild(this.createCellElemScaled("TxtPinX",e));this.shape.appendChild(this.createCellElemScaled("TxtPinY",k));this.shape.appendChild(this.createCellElemScaled("TxtWidth",r));this.shape.appendChild(this.createCellElemScaled("TxtHeight",f));this.shape.appendChild(this.createCellElemScaled("TxtLocPinX",x+p));this.shape.appendChild(this.createCellElemScaled("TxtLocPinY",
-aa+c));l-=ja;0!=l&&this.shape.appendChild(this.createCellElem("TxtAngle",(360-l)*Math.PI/180));this.shape.appendChild(A);this.shape.appendChild(B);this.shape.appendChild(E)}};mxVsdxCanvas2D.prototype.rotate=function(e,k,r,f,p){0!=e&&(k=this.state,f+=k.dx,p+=k.dy,f*=k.scale,p*=k.scale,this.shape.appendChild(this.createCellElem("Angle",(360-e)*Math.PI/180)),k.rotation+=e,k.rotationCx=f,k.rotationCy=p)};
-mxVsdxCanvas2D.prototype.stroke=function(){this.geoSec.appendChild(this.createCellElem("NoFill","1"));this.geoSec.appendChild(this.createCellElem("NoLine","0"))};mxVsdxCanvas2D.prototype.fill=function(){this.geoSec.appendChild(this.createCellElem("NoFill","0"));this.geoSec.appendChild(this.createCellElem("NoLine","1"))};mxVsdxCanvas2D.prototype.fillAndStroke=function(){this.geoSec.appendChild(this.createCellElem("NoFill","0"));this.geoSec.appendChild(this.createCellElem("NoLine","0"))};function BmpDecoder(e,k){this.pos=0;this.buffer=e;this.is_with_alpha=!!k;if(66!=this.buffer[0]&&77!=this.buffer[1])throw Error("Invalid BMP File");this.pos+=2;this.parseHeader();this.parseBGR()}
+mxVsdxCanvas2D.prototype.rect=function(e,l,r,f){1<this.geoStepIndex&&this.createGeoSec();var p=this.state;r*=p.scale;f*=p.scale;var d=this.xmGeo;e=(e-d.x+p.dx)*p.scale;l=(d.height-l+d.y-p.dy)*p.scale;this.geoSec.appendChild(this.createRowScaled("MoveTo",this.geoStepIndex++,e,l));this.geoSec.appendChild(this.createRowScaled("LineTo",this.geoStepIndex++,e+r,l));this.geoSec.appendChild(this.createRowScaled("LineTo",this.geoStepIndex++,e+r,l-f));this.geoSec.appendChild(this.createRowScaled("LineTo",this.geoStepIndex++,
+e,l-f));this.geoSec.appendChild(this.createRowScaled("LineTo",this.geoStepIndex++,e,l))};mxVsdxCanvas2D.prototype.roundrect=function(e,l,r,f,p,d){this.rect(e,l,r,f);this.shape.appendChild(this.createCellElemScaled("Rounding",p))};
+mxVsdxCanvas2D.prototype.ellipse=function(e,l,r,f){1<this.geoStepIndex&&this.createGeoSec();var p=this.state;r*=p.scale;f*=p.scale;var d=this.xmGeo,b=d.height*p.scale,a=d.width*p.scale;e=(e-d.x+p.dx)*p.scale;l=b+(-l+d.y-p.dy)*p.scale;this.geoSec.appendChild(this.createRowScaled("Ellipse",this.geoStepIndex++,e+r/2,l-f/2,e,l-f/2,e+r/2,l,"Width*"+(e+r/2)/a,"Height*"+(l-f/2)/b,"Width*"+e/a,"Height*"+(l-f/2)/b,"Width*"+(e+r/2)/a,"Height*"+l/b))};
+mxVsdxCanvas2D.prototype.moveTo=function(e,l){1<this.geoStepIndex&&this.createGeoSec();this.lastMoveToX=e;this.lastMoveToY=l;this.lastX=e;this.lastY=l;var r=this.xmGeo,f=this.state;e=(e-r.x+f.dx)*f.scale;l=(r.height-l+r.y-f.dy)*f.scale;var p=r.height*f.scale,r=r.width*f.scale;this.geoSec.appendChild(this.createRowRel("RelMoveTo",this.geoStepIndex++,e/r,l/p))};
+mxVsdxCanvas2D.prototype.lineTo=function(e,l){this.lastX=e;this.lastY=l;var r=this.xmGeo,f=this.state;e=(e-r.x+f.dx)*f.scale;l=(r.height-l+r.y-f.dy)*f.scale;var p=r.height*f.scale,r=r.width*f.scale;this.geoSec.appendChild(this.createRowRel("RelLineTo",this.geoStepIndex++,e/r,l/p))};
+mxVsdxCanvas2D.prototype.quadTo=function(e,l,r,f){this.lastX=r;this.lastY=f;var p=this.state,d=this.xmGeo,b=d.height*p.scale,a=d.width*p.scale;e=(e-d.x+p.dx)*p.scale;l=(d.height-l+d.y-p.dy)*p.scale;r=(r-d.x+p.dx)*p.scale;f=(d.height-f+d.y-p.dy)*p.scale;this.geoSec.appendChild(this.createRowRel("RelQuadBezTo",this.geoStepIndex++,r/a,f/b,e/a,l/b))};
+mxVsdxCanvas2D.prototype.curveTo=function(e,l,r,f,p,d){this.lastX=p;this.lastY=d;var b=this.state,a=this.xmGeo,c=a.height*b.scale,h=a.width*b.scale;e=(e-a.x+b.dx)*b.scale;l=(a.height-l+a.y-b.dy)*b.scale;r=(r-a.x+b.dx)*b.scale;f=(a.height-f+a.y-b.dy)*b.scale;p=(p-a.x+b.dx)*b.scale;d=(a.height-d+a.y-b.dy)*b.scale;this.geoSec.appendChild(this.createRowRel("RelCubBezTo",this.geoStepIndex++,p/h,d/c,e/h,l/c,r/h,f/c))};
+mxVsdxCanvas2D.prototype.close=function(){this.lastMoveToX==this.lastX&&this.lastMoveToY==this.lastY||this.lineTo(this.lastMoveToX,this.lastMoveToY)};mxVsdxCanvas2D.prototype.addForeignData=function(e,l){var r=this.createElt("ForeignData");r.setAttribute("ForeignType","Bitmap");e=e.toUpperCase();"BMP"!=e&&r.setAttribute("CompressionType",e);var f=this.createElt("Rel");f.setAttribute("r:id","rId"+l);r.appendChild(f);this.shape.appendChild(r);this.shapeType="Foreign"};
+mxVsdxCanvas2D.prototype.convertSvg2Png=function(e,l,r){var f=this;this.filesLoading++;try{var p=document.createElement("canvas"),d=p.getContext("2d");l||(e=String.fromCharCode.apply(null,new Uint8Array(e)),e=window.btoa?btoa(e):Base64.encode(e,!0));l="data:image/svg+xml;base64,"+e;img=new Image;img.onload=function(){p.width=this.width;p.height=this.height;d.drawImage(this,0,0);try{r(p.toDataURL("image/png"))}catch(b){}f.filesLoading--;if(0==f.filesLoading)f.onFilesLoaded()};img.onerror=function(){console.log("SVG2PNG conversion failed");
+try{r(e)}catch(b){}f.filesLoading--;if(0==f.filesLoading)f.onFilesLoaded()};img.src=l}catch(b){console.log("SVG2PNG conversion failed"+b.message);try{r(e)}catch(a){}this.filesLoading--;if(0==f.filesLoading)f.onFilesLoaded()}};
+mxVsdxCanvas2D.prototype.image=function(e,l,r,f,p,d,b,a){var c=this,h="image"+(this.images.length+1)+".",n;if(0==p.indexOf("data:"))n=p.indexOf("base64,"),d=p.substring(n+7),n=p.substring(11,n-1),0==n.indexOf("svg")?(n="png",h+=n,this.convertSvg2Png(d,!0,function(a){c.zip.file("visio/media/"+h,a.substring(22),{base64:!0})})):(h+=n,this.zip.file("visio/media/"+h,d,{base64:!0}));else if(window.XMLHttpRequest){p=this.converter.convert(p);this.filesLoading++;n=p.lastIndexOf(".");n=p.substring(n+1);var k=
+!1;0==n.indexOf("svg")&&(n="png",k=!0);h+=n;d=new XMLHttpRequest;d.open("GET",p,!0);d.responseType="arraybuffer";d.onreadystatechange=function(a){if(4==this.readyState&&(200==this.status&&(k?c.convertSvg2Png(this.response,!1,function(a){c.zip.file("visio/media/"+h,a.substring(22),{base64:!0})}):c.zip.file("visio/media/"+h,this.response)),c.filesLoading--,0==c.filesLoading))c.onFilesLoaded()};d.send()}this.images.push(h);this.shapeImg={type:n,id:this.images.length+1};p=this.state;r*=p.scale;f*=p.scale;
+n=this.xmGeo;e=(e-n.x+p.dx)*p.scale;l=(n.height-l+n.y-p.dy)*p.scale;this.shape.appendChild(this.createCellElemScaled("ImgOffsetX",e));this.shape.appendChild(this.createCellElemScaled("ImgOffsetY",l-f));this.shape.appendChild(this.createCellElemScaled("ImgWidth",r));this.shape.appendChild(this.createCellElemScaled("ImgHeight",f))};
+mxVsdxCanvas2D.prototype.text=function(e,l,r,f,p,d,b,a,c,h,n,k,w){var y=this;if(this.textEnabled&&null!=p){mxUtils.isNode(p)&&(p=mxUtils.getOuterHtml(p));0==r&&0==f&&(f=mxUtils.getSizeForString(p,y.cellState.style.fontSize,y.cellState.style.fontFamily),r=2*f.width,f=2*f.height);"html"==c&&("0"!=mxUtils.getValue(this.cellState.style,"nl2Br","1")&&(p=p.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n")),null==this.html2txtDiv&&(this.html2txtDiv=document.createElement("div")),this.html2txtDiv.innerHTML=Graph.sanitizeHtml(p),
+p=mxUtils.extractTextWithWhitespace(this.html2txtDiv.childNodes));h=this.state;n=this.xmGeo;r*=h.scale;f*=h.scale;var A=this.createElt("Section");A.setAttribute("N","Character");var C=this.createElt("Section");C.setAttribute("N","Paragraph");var E=this.createElt("Text"),B=0,F=0,D=0,K=0,Z=0,H=0,Y=0,O=function(b,c,h,n,k){var d=b.fontSize,e=b.fontFamily,w=mxUtils.getSizeForString(k,d,e);a&&w.width>r&&(w=mxUtils.getSizeForString(k,d,e,r));b.blockElem?(Z+=w.width,D=Math.min(Math.max(D,Z),r),Z=0,H=Math.max(H,
+w.height),K+=H+Y,Y=H,H=0):(Z+=w.width,D=Math.min(Math.max(D,Z),r),H=Math.max(H,w.height),K=Math.max(K,H));w=y.createElt("Row");w.setAttribute("IX",B);b.fontColor&&w.appendChild(y.createCellElem("Color",b.fontColor));d&&w.appendChild(y.createCellElemScaled("Size",.97*d));e&&w.appendChild(y.createCellElem("Font",e));d=0;b.bold&&(d|=17);b.italic&&(d|=34);b.underline&&(d|=4);w.appendChild(y.createCellElem("Style",d));w.appendChild(y.createCellElem("Case","0"));w.appendChild(y.createCellElem("Pos","0"));
+w.appendChild(y.createCellElem("FontScale","1"));w.appendChild(y.createCellElem("Letterspace","0"));c.appendChild(w);c=y.createElt("Row");c.setAttribute("IX",F);switch(b.align){case "left":d=0;break;case "center":d=1;break;case "right":d=2;break;case "start":d=0;break;case "end":d=2;break;case "justify":d=0;break;default:d=1}c.appendChild(y.createCellElem("HorzAlign",d));h.appendChild(c);h=y.createElt("cp");h.setAttribute("IX",B++);n.appendChild(h);b=y.xmlDoc.createTextNode(k+(b.blockElem?"\n":""));
+n.appendChild(b)},S=function(a,b){b=b||{};for(var c=0;c<a.length;c++){var h=a[c];if(3==h.nodeType){var n=y.cellState.style.fontStyle,k={fontColor:b.fontColor||y.cellState.style.fontColor,fontSize:b.fontSize||y.cellState.style.fontSize,fontFamily:b.fontFamily||y.cellState.style.fontFamily,align:b.align||y.cellState.style.align,bold:b.bold||n&1,italic:b.italic||n&2,underline:b.underline||n&4},n=!1;c+1<a.length&&"BR"==a[c+1].nodeName.toUpperCase()&&(n=!0,c++);O(k,A,C,E,(b.OL?b.LiIndex+". ":"")+h.textContent+
+(n?"\n":""))}else if(1==h.nodeType){var n=h.nodeName.toUpperCase(),d=h.childNodes.length,k=window.getComputedStyle(h,null),e="bold"==k.getPropertyValue("font-weight")||b.bold,w="italic"==k.getPropertyValue("font-style")||b.italic,f=0<=k.getPropertyValue("text-decoration").indexOf("underline")||b.underline,p=k.getPropertyValue("text-align"),l;l=k.getPropertyValue("color");l=(l=l.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===l.length?"#"+("0"+parseInt(l[1],10).toString(16)).slice(-2)+
+("0"+parseInt(l[2],10).toString(16)).slice(-2)+("0"+parseInt(l[3],10).toString(16)).slice(-2):"";k={bold:e,italic:w,underline:f,align:p,fontColor:l,fontSize:parseFloat(k.getPropertyValue("font-size")),fontFamily:k.getPropertyValue("font-family").replace(/"/g,""),blockElem:"block"==k.getPropertyValue("display")||"BR"==n||"LI"==n,OL:b.OL,LiIndex:b.LiIndex};"UL"==n?(e=y.createElt("Row"),e.setAttribute("IX",F),e.appendChild(y.createCellElem("HorzAlign","0")),e.appendChild(y.createCellElem("Bullet","1")),
+C.appendChild(e),e=y.createElt("pp"),e.setAttribute("IX",F++),E.appendChild(e)):"OL"==n?k.OL=!0:"LI"==n&&(k.LiIndex=c+1);0<d?(S(h.childNodes,k),"UL"==n&&(e=y.createElt("Row"),e.setAttribute("IX",F),e.appendChild(y.createCellElem("Bullet","0")),C.appendChild(e),e=y.createElt("pp"),e.setAttribute("IX",F++),E.appendChild(e)),O(k,A,C,E,"")):O(k,A,C,E,(b.OL?b.LiIndex+". ":"")+h.textContent)}}};"html"==c&&mxClient.IS_SVG?(p=this.cellState.text.node.getElementsByTagName("div")[mxClient.NO_FO?0:1],null!=
+p&&S(p.childNodes,{})):O({fontColor:y.cellState.style.fontColor,fontSize:y.cellState.style.fontSize,fontFamily:y.cellState.style.fontFamily},A,C,E,p);c=p=0;f=Math.max(f,K);r=Math.max(r,D);w=r/2;var aa=f/2,ha=parseInt(mxUtils.getValue(this.cellState.style,"rotation","0")),ea=ha*Math.PI/180;switch(d){case "right":0!=ha?(e-=w*Math.cos(ea),l-=w*Math.sin(ea)):p=D/2;break;case "left":0!=ha?(e+=w*Math.cos(ea),l+=w*Math.sin(ea)):p=-D/2}switch(b){case "top":0!=ha?(e+=aa*Math.sin(ea),l+=aa*Math.cos(ea)):c=
+K/2;break;case "bottom":0!=ha?(e-=aa*Math.sin(ea),l-=aa*Math.cos(ea)):c=-K/2}e=(e-n.x+h.dx)*h.scale;l=(n.height-l+n.y-h.dy)*h.scale;this.shape.appendChild(this.createCellElemScaled("TxtPinX",e));this.shape.appendChild(this.createCellElemScaled("TxtPinY",l));this.shape.appendChild(this.createCellElemScaled("TxtWidth",r));this.shape.appendChild(this.createCellElemScaled("TxtHeight",f));this.shape.appendChild(this.createCellElemScaled("TxtLocPinX",w+p));this.shape.appendChild(this.createCellElemScaled("TxtLocPinY",
+aa+c));k-=ha;0!=k&&this.shape.appendChild(this.createCellElem("TxtAngle",(360-k)*Math.PI/180));this.shape.appendChild(A);this.shape.appendChild(C);this.shape.appendChild(E)}};mxVsdxCanvas2D.prototype.rotate=function(e,l,r,f,p){0!=e&&(l=this.state,f+=l.dx,p+=l.dy,f*=l.scale,p*=l.scale,this.shape.appendChild(this.createCellElem("Angle",(360-e)*Math.PI/180)),l.rotation+=e,l.rotationCx=f,l.rotationCy=p)};
+mxVsdxCanvas2D.prototype.stroke=function(){this.geoSec.appendChild(this.createCellElem("NoFill","1"));this.geoSec.appendChild(this.createCellElem("NoLine","0"))};mxVsdxCanvas2D.prototype.fill=function(){this.geoSec.appendChild(this.createCellElem("NoFill","0"));this.geoSec.appendChild(this.createCellElem("NoLine","1"))};mxVsdxCanvas2D.prototype.fillAndStroke=function(){this.geoSec.appendChild(this.createCellElem("NoFill","0"));this.geoSec.appendChild(this.createCellElem("NoLine","0"))};function BmpDecoder(e,l){this.pos=0;this.buffer=e;this.is_with_alpha=!!l;if(66!=this.buffer[0]&&77!=this.buffer[1])throw Error("Invalid BMP File");this.pos+=2;this.parseHeader();this.parseBGR()}
BmpDecoder.prototype.parseHeader=function(){var e=this.buffer;this.fileSize=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.reserved=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.offset=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.headerSize=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.width=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];
this.pos+=4;this.height=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.planes=e[this.pos+1]<<8|e[this.pos];this.pos+=2;this.bitPP=e[this.pos+1]<<8|e[this.pos];this.pos+=2;this.compress=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.rawSize=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.hr=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.vr=e[this.pos+3]<<24|e[this.pos+
-2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.colors=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.importantColors=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;16===this.bitPP&&this.is_with_alpha&&(this.bitPP=15);if(15>this.bitPP){e=0===this.colors?1<<this.bitPP:this.colors;this.palette=Array(e);for(var k=0;k<e;k++){var r=this.buffer[this.pos++],f=this.buffer[this.pos++],p=this.buffer[this.pos++],d=this.buffer[this.pos++];
-this.palette[k]={red:p,green:f,blue:r,quad:d}}}};BmpDecoder.prototype.parseBGR=function(){this.pos=this.offset;try{var e="bit"+this.bitPP,k=document.createElement("canvas").getContext("2d").createImageData(this.width,this.height);this.imageData=k;this.data=k.data;this[e]()}catch(r){console.log("bit decode error:"+r)}};
-BmpDecoder.prototype.bit1=function(){for(var e=Math.ceil(this.width/8),k=e%4,r=this.height-1;0<=r;r--){for(var f=0;f<e;f++)for(var p=this.buffer[this.pos++],d=r*this.width*4+32*f,b=0;8>b;b++)if(8*f+b<this.width){var a=this.palette[p>>7-b&1];this.data[d+4*b]=a.red;this.data[d+4*b+1]=a.green;this.data[d+4*b+2]=a.blue;this.data[d+4*b+3]=255}else break;0!=k&&(this.pos+=4-k)}};
-BmpDecoder.prototype.bit4=function(){for(var e=Math.ceil(this.width/2),k=e%4,r=this.height-1;0<=r;r--){for(var f=0;f<e;f++){var p=this.buffer[this.pos++],d=r*this.width*4+8*f,b=p&15,p=this.palette[p>>4];this.data[d]=p.red;this.data[d+1]=p.green;this.data[d+2]=p.blue;this.data[d+3]=255;if(2*f+1>=this.width)break;p=this.palette[b];this.data[d+4]=p.red;this.data[d+4+1]=p.green;this.data[d+4+2]=p.blue;this.data[d+4+3]=255}0!=k&&(this.pos+=4-k)}};
-BmpDecoder.prototype.bit8=function(){for(var e=this.width%4,k=this.height-1;0<=k;k--){for(var r=0;r<this.width;r++){var f=this.buffer[this.pos++],p=k*this.width*4+4*r;f<this.palette.length?(f=this.palette[f],this.data[p]=f.red,this.data[p+1]=f.green,this.data[p+2]=f.blue):(this.data[p]=255,this.data[p+1]=255,this.data[p+2]=255);this.data[p+3]=255}0!=e&&(this.pos+=4-e)}};
-BmpDecoder.prototype.bit15=function(){var e=2*this.width%4;0!=e&&(e=4-e);for(var k=this.height-1;0<=k;k--){for(var r=0;r<this.width;r++){var f=this.buffer[this.pos+1]<<8|this.buffer[this.pos];this.pos+=2;var p=(f&31)/31*255|0,d=(f>>5&31)/31*255|0,b=f>>15?255:0,a=k*this.width*4+4*r;this.data[a]=(f>>10&31)/31*255|0;this.data[a+1]=d;this.data[a+2]=p;this.data[a+3]=b}this.pos+=e}};
-BmpDecoder.prototype.bit16=function(){var e=2*this.width%4;0!=e&&(e=4-e);for(var k=this.height-1;0<=k;k--){for(var r=0;r<this.width;r++){var f=this.buffer[this.pos+1]<<8|this.buffer[this.pos];this.pos+=2;var p=(f&31)/31*255|0,d=(f>>5&31)/31*255|0,b=k*this.width*4+4*r;this.data[b]=(f>>10&31)/31*255|0;this.data[b+1]=d;this.data[b+2]=p;this.data[b+3]=255}this.pos+=e}};
-BmpDecoder.prototype.bit24=function(){var e=3*this.width%4;0!=e&&(e=4-e);for(var k=this.height-1;0<=k;k--){for(var r=0;r<this.width;r++){var f=this.buffer[this.pos++],p=this.buffer[this.pos++],d=this.buffer[this.pos++],b=k*this.width*4+4*r;this.data[b]=d;this.data[b+1]=p;this.data[b+2]=f;this.data[b+3]=255}this.pos+=e}};
-BmpDecoder.prototype.bit32=function(){for(var e=this.height-1;0<=e;e--)for(var k=0;k<this.width;k++){var r=this.buffer[this.pos++],f=this.buffer[this.pos++],p=this.buffer[this.pos++],d=this.buffer[this.pos++],b=e*this.width*4+4*k;this.data[b]=p;this.data[b+1]=f;this.data[b+2]=r;this.data[b+3]=d}};BmpDecoder.prototype.getData=function(){return this.data};var __extends=this&&this.__extends||function(e,k){function r(){this.constructor=e}for(var f in k)k.hasOwnProperty(f)&&(e[f]=k[f]);e.prototype=null===k?Object.create(k):(r.prototype=k.prototype,new r)},com;
-(function(e){(function(k){(function(k){var f=function(){function f(d){this.RESPONSE_END="</mxfile>";this.RESPONSE_DIAGRAM_START="";this.RESPONSE_DIAGRAM_END="</diagram>";this.RESPONSE_HEADER='<?xml version="1.0" encoding="UTF-8"?><mxfile>';this.vertexMap={};this.edgeShapeMap={};this.vertexShapeMap={};this.parentsMap={};this.layersMap={};this.debugPaths=!1;this.vsdxModel=null;this.editorUi=d}f.vsdxPlaceholder_$LI$=function(){null==f.vsdxPlaceholder&&(f.vsdxPlaceholder=window.atob?atob("dmlzaW8="):
+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.colors=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;this.importantColors=e[this.pos+3]<<24|e[this.pos+2]<<16|e[this.pos+1]<<8|e[this.pos];this.pos+=4;16===this.bitPP&&this.is_with_alpha&&(this.bitPP=15);if(15>this.bitPP){e=0===this.colors?1<<this.bitPP:this.colors;this.palette=Array(e);for(var l=0;l<e;l++){var r=this.buffer[this.pos++],f=this.buffer[this.pos++],p=this.buffer[this.pos++],d=this.buffer[this.pos++];
+this.palette[l]={red:p,green:f,blue:r,quad:d}}}};BmpDecoder.prototype.parseBGR=function(){this.pos=this.offset;try{var e="bit"+this.bitPP,l=document.createElement("canvas").getContext("2d").createImageData(this.width,this.height);this.imageData=l;this.data=l.data;this[e]()}catch(r){console.log("bit decode error:"+r)}};
+BmpDecoder.prototype.bit1=function(){for(var e=Math.ceil(this.width/8),l=e%4,r=this.height-1;0<=r;r--){for(var f=0;f<e;f++)for(var p=this.buffer[this.pos++],d=r*this.width*4+32*f,b=0;8>b;b++)if(8*f+b<this.width){var a=this.palette[p>>7-b&1];this.data[d+4*b]=a.red;this.data[d+4*b+1]=a.green;this.data[d+4*b+2]=a.blue;this.data[d+4*b+3]=255}else break;0!=l&&(this.pos+=4-l)}};
+BmpDecoder.prototype.bit4=function(){for(var e=Math.ceil(this.width/2),l=e%4,r=this.height-1;0<=r;r--){for(var f=0;f<e;f++){var p=this.buffer[this.pos++],d=r*this.width*4+8*f,b=p&15,p=this.palette[p>>4];this.data[d]=p.red;this.data[d+1]=p.green;this.data[d+2]=p.blue;this.data[d+3]=255;if(2*f+1>=this.width)break;p=this.palette[b];this.data[d+4]=p.red;this.data[d+4+1]=p.green;this.data[d+4+2]=p.blue;this.data[d+4+3]=255}0!=l&&(this.pos+=4-l)}};
+BmpDecoder.prototype.bit8=function(){for(var e=this.width%4,l=this.height-1;0<=l;l--){for(var r=0;r<this.width;r++){var f=this.buffer[this.pos++],p=l*this.width*4+4*r;f<this.palette.length?(f=this.palette[f],this.data[p]=f.red,this.data[p+1]=f.green,this.data[p+2]=f.blue):(this.data[p]=255,this.data[p+1]=255,this.data[p+2]=255);this.data[p+3]=255}0!=e&&(this.pos+=4-e)}};
+BmpDecoder.prototype.bit15=function(){var e=2*this.width%4;0!=e&&(e=4-e);for(var l=this.height-1;0<=l;l--){for(var r=0;r<this.width;r++){var f=this.buffer[this.pos+1]<<8|this.buffer[this.pos];this.pos+=2;var p=(f&31)/31*255|0,d=(f>>5&31)/31*255|0,b=f>>15?255:0,a=l*this.width*4+4*r;this.data[a]=(f>>10&31)/31*255|0;this.data[a+1]=d;this.data[a+2]=p;this.data[a+3]=b}this.pos+=e}};
+BmpDecoder.prototype.bit16=function(){var e=2*this.width%4;0!=e&&(e=4-e);for(var l=this.height-1;0<=l;l--){for(var r=0;r<this.width;r++){var f=this.buffer[this.pos+1]<<8|this.buffer[this.pos];this.pos+=2;var p=(f&31)/31*255|0,d=(f>>5&31)/31*255|0,b=l*this.width*4+4*r;this.data[b]=(f>>10&31)/31*255|0;this.data[b+1]=d;this.data[b+2]=p;this.data[b+3]=255}this.pos+=e}};
+BmpDecoder.prototype.bit24=function(){var e=3*this.width%4;0!=e&&(e=4-e);for(var l=this.height-1;0<=l;l--){for(var r=0;r<this.width;r++){var f=this.buffer[this.pos++],p=this.buffer[this.pos++],d=this.buffer[this.pos++],b=l*this.width*4+4*r;this.data[b]=d;this.data[b+1]=p;this.data[b+2]=f;this.data[b+3]=255}this.pos+=e}};
+BmpDecoder.prototype.bit32=function(){for(var e=this.height-1;0<=e;e--)for(var l=0;l<this.width;l++){var r=this.buffer[this.pos++],f=this.buffer[this.pos++],p=this.buffer[this.pos++],d=this.buffer[this.pos++],b=e*this.width*4+4*l;this.data[b]=p;this.data[b+1]=f;this.data[b+2]=r;this.data[b+3]=d}};BmpDecoder.prototype.getData=function(){return this.data};var __extends=this&&this.__extends||function(e,l){function r(){this.constructor=e}for(var f in l)l.hasOwnProperty(f)&&(e[f]=l[f]);e.prototype=null===l?Object.create(l):(r.prototype=l.prototype,new r)},com;
+(function(e){(function(l){(function(l){var f=function(){function f(d){this.RESPONSE_END="</mxfile>";this.RESPONSE_DIAGRAM_START="";this.RESPONSE_DIAGRAM_END="</diagram>";this.RESPONSE_HEADER='<?xml version="1.0" encoding="UTF-8"?><mxfile>';this.vertexMap={};this.edgeShapeMap={};this.vertexShapeMap={};this.parentsMap={};this.layersMap={};this.debugPaths=!1;this.vsdxModel=null;this.editorUi=d}f.vsdxPlaceholder_$LI$=function(){null==f.vsdxPlaceholder&&(f.vsdxPlaceholder=window.atob?atob("dmlzaW8="):
Base64.decode("dmlzaW8=",!0));return f.vsdxPlaceholder};f.parsererrorNS_$LI$=function(){if(null==f.parsererrorNS&&(f.parsererrorNS="",window.DOMParser)){var d=new DOMParser;try{f.parsererrorNS=d.parseFromString("<","text/xml").getElementsByTagName("parsererror")[0].namespaceURI}catch(b){}}return f.parsererrorNS};f.parseXml=function(d){try{var b=mxUtils.parseXml(d);return 0<b.getElementsByTagNameNS(f.parsererrorNS,"parsererror").length?null:b}catch(a){return null}};f.decodeUTF16LE=function(d){for(var b=
"",a=0;a<d.length;a+=2)b+=String.fromCharCode(d.charCodeAt(a)|d.charCodeAt(a+1)<<8);return b};f.prototype.scaleGraph=function(d,b){if(1!==b){var a=d.getModel(),c;for(c in a.cells){var h=a.cells[c],n=a.getGeometry(h);if(null!=n&&(this.scaleRect(n,b),this.scaleRect(n.alternateBounds,b),a.isEdge(h)&&(this.scalePoint(n.sourcePoint,b),this.scalePoint(n.targetPoint,b),this.scalePoint(n.offset,b),h=n.points,null!=h)))for(n=0;n<h.length;n++)this.scalePoint(h[n],b)}}};f.incorrectXMLReqExp=[{regExp:/\&(?!amp;|lt;|gt;|quot;|#)/g,
-repl:"&amp;"}];f.prototype.decodeVsdx=function(d,b,a,c){var h=this,n={},l={},x=function(){var a;function c(){a=a.concat(h.RESPONSE_END);b&&b(a)}for(var d=f.vsdxPlaceholder+"/document.xml",w=n[d]?n[d]:null,x=w.firstChild;null!=x&&1!=x.nodeType;)x=x.nextSibling;if(null!=x&&1==x.nodeType)h.importNodes(w,x,d,n);else return null;h.vsdxModel=new e.mxgraph.io.vsdx.mxVsdxModel(w,n,l);d=h.vsdxModel.getPages();a=h.RESPONSE_HEADER;var p=function(a){null==a.entries&&(a.entries=[]);return a.entries}(d),k=function(b,
-c){var n=p[b].getValue(),l=A.createMxGraph();l.getModel().beginUpdate();A.importPage(n,l,l.getDefaultParent(),!0);A.scaleGraph(l,n.getPageScale()/n.getDrawingScale());l.getModel().endUpdate();A.postImportPage(n,l,function(){A.sanitiseGraph(l);a=a.concat(h.RESPONSE_DIAGRAM_START);a=a.concat(h.processPage(l,n));a=a.concat(h.RESPONSE_DIAGRAM_END);b<p.length-1?k(b+1,c):c()})},A=h;0<p.length?k(0,c):c()},w=0,p=0,k=function(){if(p==w)try{x()}catch(E){console.log(E),null!=c?c():b("")}};JSZip.loadAsync(d).then(function(a){0==
-Object.keys(a.files).length?null!=c&&c():a.forEach(function(a,b){var c=b.name,d=c.toLowerCase(),e=d.length;d.indexOf(".xml")==e-4||d.indexOf(".rels")==e-5?(w++,b.async("string").then(function(a){if(0!==a.length){65279==a.charCodeAt(0)&&(a=a.substring(1));var b=f.parseXml(a);if(null==b)if(0===a.charCodeAt(1)&&0===a.charCodeAt(3)&&0===a.charCodeAt(5))b=f.parseXml(f.decodeUTF16LE(a));else{for(b=0;b<f.incorrectXMLReqExp.length;b++)f.incorrectXMLReqExp[b].regExp.test(a)&&(a=a.replace(f.incorrectXMLReqExp[b].regExp,
-f.incorrectXMLReqExp[b].repl));b=f.parseXml(a)}null!=b&&(b.vsdxFileName=c,n[c]=b)}p++;k()})):0===d.indexOf(f.vsdxPlaceholder+"/media")&&(w++,function(a,b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}(d,".emf")?JSZip.support.blob&&window.EMF_CONVERT_URL?b.async("blob").then(function(a){var b=new FormData;b.append("img",a,d);b.append("inputformat","emf");b.append("outputformat","png");var n=new XMLHttpRequest;n.open("POST",EMF_CONVERT_URL);n.responseType="blob";h.editorUi.addRemoteServiceSecurityCheck(n);
-n.onreadystatechange=mxUtils.bind(this,function(){if(4==n.readyState)if(200<=n.status&&299>=n.status)try{var a=new FileReader;a.readAsDataURL(n.response);a.onloadend=function(){var b=a.result.indexOf(",")+1;l[c]=a.result.substr(b);p++;k()}}catch(aa){console.log(aa),p++,k()}else p++,k()});n.send(b)}):(p++,k()):function(a,b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}(d,".bmp")?JSZip.support.uint8array&&b.async("uint8array").then(function(a){a=new BmpDecoder(a);var b=document.createElement("canvas");
-b.width=a.width;b.height=a.height;b.getContext("2d").putImageData(a.imageData,0,0);a=b.toDataURL("image/jpeg");l[c]=a.substr(23);p++;k()}):b.async("base64").then(function(a){l[c]=a;p++;k()}))})},function(a){null!=c&&c(a)})};f.prototype.createMxGraph=function(){var d=new Graph;d.setExtendParents(!1);d.setExtendParentsOnAdd(!1);d.setConstrainChildren(!1);d.setHtmlLabels(!0);d.getModel().maintainEdgeParent=!1;return d};f.prototype.processPage=function(d,b){var a=(new mxCodec).encode(d.getModel());a.setAttribute("style",
-"default-style2");var a=mxUtils.getXml(a),c="";if(null!=b)var h=mxUtils.htmlEntities(b.getPageName())+(b.isBackground()?" (Background)":""),c=c+('<diagram name="'+h+'" id="'+h.replace(/\s/g,"_")+'">');return c+=Graph.compress(a)};f.prototype.scalePoint=function(d,b){null!=d&&(d.x*=b,d.y*=b);return d};f.prototype.scaleRect=function(d,b){null!=d&&(d.x*=b,d.y*=b,d.height*=b,d.width*=b);return d};f.prototype.importNodes=function(d,b,a,c){var h=a.lastIndexOf("/"),n=a,l=a;if(-1!==h&&(n=a.substring(0,h),
-l=a.substring(h+1,a.length),a=function(a,b){return a[b]?a[b]:null}(c,n+"/_rels/"+l+".rels"),null!=a)){var e=a.getElementsByTagName("Relationship");a={};for(h=0;h<e.length;h++){var l=e.item(h),w=l.getAttribute("Id"),l=l.getAttribute("Target");a[w]=l}b=b.getElementsByTagName("Rel");for(h=0;h<b.length;h++)if(e=b.item(h),l=function(a,b){return a[b]?a[b]:null}(a,e.getAttribute("r:id")),l=n+"/"+l,null!=l&&(w=c[l]?c[l]:null,null!=w)){e=e.parentNode;for(w=w.firstChild;null!=w&&1!=w.nodeType;)w=w.nextSibling;
-if(null!=w&&1==w.nodeType)for(w=w.firstChild;null!=w;){if(null!=w&&1==w.nodeType){var f=e.appendChild(d.importNode(w,!0));this.importNodes(d,f,l,c)}w=w.nextSibling}}}};f.prototype.importPage=function(d,b,a,c){var h=d.getBackPage();if(null!=h){b.getModel().setValue(b.getDefaultParent(),d.getPageName());var n=new mxCell(h.getPageName());b.addCell(n,b.getModel().getRoot(),0,null,null);this.importPage(h,b,b.getDefaultParent())}h=d.getLayers();this.layersMap[0]=b.getDefaultParent();var n={},l=0,e=null,
-w=d.getShapes();try{for(var f=0;null!=w.entries&&f<w.entries.length;f++){var p=w.entries[f].getValue().layerMember;null!=p&&(null==e?(n[p]=l,e=p):e!=p&&null==n[p]&&(l++,n[p]=l,e=p))}}catch(E){console.log("VSDX Import: Failed to detect layers order")}for(f=0;f<h.length;f++)p=h[f],l=null!=n[f]?n[f]:f,0==l?e=b.getDefaultParent():(e=new mxCell,b.addCell(e,b.model.root,l)),e.setVisible(1==p.Visible),1==p.Lock&&e.setStyle("locked=1;"),e.setValue(p.Name),this.layersMap[f]=e;n=function(a){var b=0;return{next:function(){return b<
-a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(w));p=d.getPageDimensions().y;for(h=d.getId();n.hasNext();)w=n.next(),w=w.getValue(),f=this.layersMap[w.layerMember],this.addShape(b,w,f?f:a,h,p);for(d=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(d.getConnects()));d.hasNext();)w=d.next(),a=this.addConnectedEdge(b,
-w.getValue(),h,p),null!=a&&function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries.splice(c,1)[0]}(this.edgeShapeMap,a);for(d=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(this.edgeShapeMap));d.hasNext();)a=d.next(),a.getKey().getPageNumber()===h&&
-this.addUnconnectedEdge(b,function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.parentsMap,a.getKey()),a.getValue(),p);c||this.sanitiseGraph(b);return p};f.prototype.postImportPage=function(d,b,a){try{var c=this,h=[],n=d.getShapes().entries||[];for(b=0;b<n.length;b++){var l=n[b].value||{};l.toBeCroppedImg&&h.push(l)}if(0<h.length){var x=function(a,
-b){function n(){a<h.length-1?x(a+1,b):b()}var l=h[a],w=l.toBeCroppedImg,f=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(c.vertexMap,new e.mxgraph.io.vsdx.ShapePageId(d.Id,l.Id)),p=new Image;p.onload=function(){var a=w.iData,b=w.iType;try{var c=p.width/w.imgWidth,h=p.height/w.imgHeight,l=-w.imgOffsetX*c,d=(w.imgHeight-w.height+w.imgOffsetY)*h,
-e=document.createElement("canvas");e.width=w.width*c;e.height=w.height*h;var x=e.getContext("2d");x.fillStyle="#FFFFFF";x.fillRect(0,0,e.width,e.height);x.drawImage(p,l,d,e.width,e.height,0,0,e.width,e.height);a=e.toDataURL("image/jpeg").substr(23);b="jpg"}catch(ea){console.log(ea)}f.style+=";image=data:image/"+b+","+a;n()};p.src="data:image/"+w.iType+";base64,"+w.iData;p.onerror=function(){f.style+=";image=data:image/"+w.iType+","+w.iData;n()}};x(0,a)}else a()}catch(w){console.log(w),a()}};f.prototype.addShape=
-function(d,b,a,c,h){b.parentHeight=h;var n=e.mxgraph.io.vsdx.VsdxShape.getType(b.getShape());if(null!=n&&(function(a,b){return a&&a.equals?a.equals(b):a===b}(n,e.mxgraph.io.vsdx.mxVsdxConstants.TYPE_SHAPE)||function(a,b){return a&&a.equals?a.equals(b):a===b}(n,e.mxgraph.io.vsdx.mxVsdxConstants.TYPE_GROUP)||function(a,b){return a&&a.equals?a.equals(b):a===b}(n,e.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN))){var l=b.getId();if(b.isVertex()){n=null;n=b.isGroup()?this.addGroup(d,b,a,c,h):this.addVertex(d,
-b,a,c,h);(function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.vertexShapeMap,new e.mxgraph.io.vsdx.ShapePageId(c,l),b);a=b.getHyperlink();a.extLink?d.setLinkForCell(n,a.extLink):a.pageLink&&d.setLinkForCell(n,"data:page/id,"+a.pageLink);b=b.getProperties();
-for(a=0;a<b.length;a++)d.setAttributeForCell(n,b[a].key,b[a].val);return n}b.setShapeIndex(d.getModel().getChildCount(a));(function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.edgeShapeMap,new e.mxgraph.io.vsdx.ShapePageId(c,l),b);(function(a,b,c){null==
-a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.parentsMap,new e.mxgraph.io.vsdx.ShapePageId(c,l),a)}return null};f.prototype.addGroup=function(d,b,a,c,h){var n=b.getDimensions(),l=b.getMaster(),x=b.getStyleFromShape(),w=b.getGeomList();w.isNoFill()&&(x[mxConstants.STYLE_FILLCOLOR]=
-"none",x[mxConstants.STYLE_GRADIENTCOLOR]="none");w.isNoLine()&&(x[mxConstants.STYLE_STROKECOLOR]="none");x.html="1";x[mxConstants.STYLE_WHITE_SPACE]="wrap";var f=e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(x,"="),x=null,p=b.getChildShapes(),x=null!=p&&0<function(a){null==a.entries&&(a.entries=[]);return a.entries.length}(p),w=b.isDisplacedLabel()||b.isRotatedLabel()||x,x=b.getOriginPoint(h,!0);if(w)x=d.insertVertex(a,null,null,Math.floor(Math.round(100*x.x)/100),Math.floor(Math.round(100*x.y)/100),
-Math.floor(Math.round(100*n.x)/100),Math.floor(Math.round(100*n.y)/100),f);else var k=b.getTextLabel(),x=d.insertVertex(a,null,k,Math.floor(Math.round(100*x.x)/100),Math.floor(Math.round(100*x.y)/100),Math.floor(Math.round(100*n.x)/100),Math.floor(Math.round(100*n.y)/100),f);for(a=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(p));a.hasNext();)f=a.next().getValue(),p=f.getId(),
-f.isVertex()?(k=e.mxgraph.io.vsdx.VsdxShape.getType(f.getShape()),null!=k&&(function(a,b){return a&&a.equals?a.equals(b):a===b}(k,e.mxgraph.io.vsdx.mxVsdxConstants.TYPE_SHAPE)||function(a,b){return a&&a.equals?a.equals(b):a===b}(k,e.mxgraph.io.vsdx.mxVsdxConstants.TYPE_GROUP)||function(a,b){return a&&a.equals?a.equals(b):a===b}(k,e.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN))&&f.isVertex()&&(f.propagateRotation(b.getRotation()),f.isGroup()?this.addGroup(d,f,x,c,n.y):this.addVertex(d,f,x,c,n.y)),null==
-l&&function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexShapeMap,new e.mxgraph.io.vsdx.ShapePageId(c,p),f)):null==l?(function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||
-a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.edgeShapeMap,new e.mxgraph.io.vsdx.ShapePageId(c,p),f),function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.parentsMap,
-new e.mxgraph.io.vsdx.ShapePageId(c,p),x)):this.addUnconnectedEdge(d,x,f,h);w&&b.createLabelSubShape(d,x);d=b.getRotation();if(0!==d)for(n=x.getGeometry(),h=n.width/2,n=n.height/2,l=0;l<x.getChildCount();l++)w=x.getChildAt(l),e.mxgraph.online.Utils.rotatedGeometry(w.getGeometry(),d,h,n);(function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,
-value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.vertexMap,new e.mxgraph.io.vsdx.ShapePageId(c,b.getId()),x);return x};f.rotatedEdgePoint=function(d,b,a,c){b=b*Math.PI/180;var h=Math.cos(b);b=Math.sin(b);var n=d.x-a,l=d.y-c;d.x=Math.round(n*h-l*b+a);d.y=Math.round(l*h+n*b+c)};f.prototype.addVertex=function(d,b,a,c,h){var n="",l=b.isDisplacedLabel()||b.isRotatedLabel();l||(n=b.getTextLabel());var x=b.getDimensions(),w=b.getStyleFromShape();w.html="1";var f=
-w.hasOwnProperty(mxConstants.STYLE_SHAPE)||w.hasOwnProperty("stencil");w.hasOwnProperty(mxConstants.STYLE_FILLCOLOR)&&f||(w[mxConstants.STYLE_FILLCOLOR]="none");f||(w[mxConstants.STYLE_STROKECOLOR]="none");w.hasOwnProperty(mxConstants.STYLE_GRADIENTCOLOR)&&f||(w[mxConstants.STYLE_GRADIENTCOLOR]="none");w[mxConstants.STYLE_WHITE_SPACE]="wrap";h=b.getOriginPoint(h,!0);return f||null!=n?(w=e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(w,"="),f=null,f=l?d.insertVertex(a,null,null,Math.floor(Math.round(100*
-h.x)/100),Math.floor(Math.round(100*h.y)/100),Math.floor(Math.round(100*x.x)/100),Math.floor(Math.round(100*x.y)/100),w):d.insertVertex(a,null,n,Math.floor(Math.round(100*h.x)/100),Math.floor(Math.round(100*h.y)/100),Math.floor(Math.round(100*x.x)/100),Math.floor(Math.round(100*x.y)/100),w),function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,
-value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexMap,new e.mxgraph.io.vsdx.ShapePageId(c,b.getId()),f),b.setLabelOffset(f,w),l&&b.createLabelSubShape(d,f),f):null};f.calculateAbsolutePoint=function(d){for(var b=0,a=0;null!=d;){var c=d.geometry;null!=c&&(b+=c.x,a+=c.y);d=d.parent}return new mxPoint(b,a)};f.prototype.addConnectedEdge=function(d,b,a,c){var h=b.getFromSheet(),h=new e.mxgraph.io.vsdx.ShapePageId(a,h),n=function(a,b){null==a.entries&&(a.entries=
-[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.edgeShapeMap,h);if(null==n)return null;var l=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.parentsMap,new e.mxgraph.io.vsdx.ShapePageId(a,n.getId()));if(null!=l){var x=d.getModel().getGeometry(l);
-null!=x&&(c=x.height)}var w=n.getStartXY(c),p=n.getEndXY(c),x=n.getRoutingPoints(c,w,n.getRotation());this.rotateChildEdge(d.getModel(),l,w,p,x);var k=null,r=b.getSourceToSheet(),r=null!=r?function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.vertexMap,new e.mxgraph.io.vsdx.ShapePageId(a,r)):null,C=!0;if(null==r)r=d.insertVertex(l,null,null,Math.floor(Math.round(100*
-w.x)/100),Math.floor(Math.round(100*w.y)/100),0,0);else if(r.style&&-1==r.style.indexOf(";rotation="))var k=f.calculateAbsolutePoint(r),F=f.calculateAbsolutePoint(l),D=r.geometry,k=new mxPoint((F.x+w.x-k.x)/D.width,(F.y+w.y-k.y)/D.height);else C=!1;w=null;b=b.getTargetToSheet();b=null!=b?function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.vertexMap,
-new e.mxgraph.io.vsdx.ShapePageId(a,b)):null;F=!0;null==b?b=d.insertVertex(l,null,null,Math.floor(Math.round(100*p.x)/100),Math.floor(Math.round(100*p.y)/100),0,0):b.style&&-1==b.style.indexOf(";rotation=")?(a=f.calculateAbsolutePoint(b),w=f.calculateAbsolutePoint(l),D=b.geometry,w=new mxPoint((w.x+p.x-a.x)/D.width,(w.y+p.y-a.y)/D.height)):F=!1;p=n.getStyleFromEdgeShape(c);D=n.getRotation();0!==D?(a=d.insertEdge(l,null,null,r,b,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(p,"=")),C=n.createLabelSubShape(d,
-a),null!=C&&(C.setStyle(C.getStyle()+";rotation="+(60<D&&240>D?(D+180)%360:D)),C=C.getGeometry(),C.x=0,C.y=0,C.relative=!0,C.offset=new mxPoint(-C.width/2,-C.height/2))):(a=d.insertEdge(l,null,n.getTextLabel(),r,b,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(p,"=")),D=n.getLblEdgeOffset(d.getView(),x),a.getGeometry().offset=D,null!=k&&d.setConnectionConstraint(a,r,!0,new mxConnectionConstraint(k,!1)),C&&x.shift(),null!=w&&d.setConnectionConstraint(a,b,!1,new mxConnectionConstraint(w,!1)),F&&x.pop());
-C=d.getModel().getGeometry(a);if(r.parent!=b.parent&&null!=l&&1!=l.id&&1==r.parent.id){b=k=0;do w=l.geometry,null!=w&&(k+=w.x,b+=w.y),l=l.parent;while(null!=l);a.parent=r.parent;for(l=0;l<x.length;l++)x[l].x+=k,x[l].y+=b}C.points=x;p.hasOwnProperty("curved")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(function(a,b){return a[b]?a[b]:null}(p,"curved"),"1")&&(C=d.getModel().getGeometry(a),d=n.getControlPoints(c),C.points=d);return h};f.prototype.addUnconnectedEdge=function(d,b,a,c){if(null!=
-b){var h=d.getModel().getGeometry(b);null!=h&&(c=h.height)}var n=a.getStartXY(c),l=a.getEndXY(c),f=a.getStyleFromEdgeShape(c),w=a.getRoutingPoints(c,n,a.getRotation()),p=a.getRotation();if(0!==p){0===a.getShapeIndex()?h=d.insertEdge(b,null,null,null,null,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"=")):(h=d.createEdge(b,null,null,null,null,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"=")),h=d.addEdge(h,b,null,null,a.getShapeIndex()));var k=a.createLabelSubShape(d,h);null!=k&&(k.setStyle(k.getStyle()+
-";rotation="+(60<p&&240>p?(p+180)%360:p)),p=k.getGeometry(),p.x=0,p.y=0,p.relative=!0,p.offset=new mxPoint(-p.width/2,-p.height/2))}else 0===a.getShapeIndex()?h=d.insertEdge(b,null,a.getTextLabel(),null,null,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"=")):(h=d.createEdge(b,null,a.getTextLabel(),null,null,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"=")),h=d.addEdge(h,b,null,null,a.getShapeIndex())),p=a.getLblEdgeOffset(d.getView(),w),h.getGeometry().offset=p;this.rotateChildEdge(d.getModel(),
-b,n,l,w);b=d.getModel().getGeometry(h);w.pop();w.shift();b.points=w;b.setTerminalPoint(n,!0);b.setTerminalPoint(l,!1);f.hasOwnProperty("curved")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(function(a,b){return a[b]?a[b]:null}(f,"curved"),"1")&&(b=d.getModel().getGeometry(h),d=a.getControlPoints(c),b.points=d);return h};f.prototype.rotateChildEdge=function(d,b,a,c,h){if(null!=b){var n=d.getGeometry(b);d=d.getStyle(b);if(null!=n&&null!=d&&(b=d.indexOf("rotation="),-1<b))for(d=parseFloat(d.substring(b+
-9,d.indexOf(";",b))),b=n.width/2,n=n.height/2,f.rotatedEdgePoint(a,d,b,n),f.rotatedEdgePoint(c,d,b,n),a=0;a<h.length;a++)f.rotatedEdgePoint(h[a],d,b,n)}};f.prototype.sanitiseGraph=function(d){var b=d.getModel().getRoot();this.sanitiseCell(d,b)};f.prototype.sanitiseCell=function(d,b){for(var a=d.getModel(),c=a.getChildCount(b),h=[],n=0;n<c;n++){var l=a.getChildAt(b,n);this.sanitiseCell(d,l)&&h.push(l)}for(n=0;n<h.length;n++)a.remove(h[n]);h=b.geometry;null!=h&&(0>h.height&&(h.height=Math.abs(h.height),
-h.y-=h.height,b.style+=";flipV=1;"),0>h.width&&(h.width=Math.abs(h.width),h.x-=h.width,b.style+=";flipH=1;"));0<c&&(c=a.getChildCount(b));h=(new String(a.getValue(b))).toString();n=a.getStyle(b);return 0!==c||!a.isVertex(b)||null!=a.getValue(b)&&0!==h.length||null==n||-1==n.indexOf(mxConstants.STYLE_FILLCOLOR+"=none")||-1==n.indexOf(mxConstants.STYLE_STROKECOLOR+"=none")||-1!=n.indexOf("image=")?!1:!0};return f}();k.mxVsdxCodec=f;f.__class="com.mxgraph.io.mxVsdxCodec"})(k.io||(k.io={}))})(e.mxgraph||
+repl:"&amp;"}];f.prototype.decodeVsdx=function(d,b,a,c){var h=this,n={},k={},w=function(){var a;function c(){a=a.concat(h.RESPONSE_END);b&&b(a)}for(var d=f.vsdxPlaceholder+"/document.xml",w=n[d]?n[d]:null,y=w.firstChild;null!=y&&1!=y.nodeType;)y=y.nextSibling;if(null!=y&&1==y.nodeType)h.importNodes(w,y,d,n);else return null;h.vsdxModel=new e.mxgraph.io.vsdx.mxVsdxModel(w,n,k);d=h.vsdxModel.getPages();a=h.RESPONSE_HEADER;var p=function(a){null==a.entries&&(a.entries=[]);return a.entries}(d),l=function(b,
+c){var n=p[b].getValue(),k=A.createMxGraph();k.getModel().beginUpdate();A.importPage(n,k,k.getDefaultParent(),!0);A.scaleGraph(k,n.getPageScale()/n.getDrawingScale());k.getModel().endUpdate();A.postImportPage(n,k,function(){A.sanitiseGraph(k);a=a.concat(h.RESPONSE_DIAGRAM_START);a=a.concat(h.processPage(k,n));a=a.concat(h.RESPONSE_DIAGRAM_END);b<p.length-1?l(b+1,c):c()})},A=h;0<p.length?l(0,c):c()},y=0,p=0,l=function(){if(p==y)try{w()}catch(E){console.log(E),null!=c?c():b("")}};JSZip.loadAsync(d).then(function(a){0==
+Object.keys(a.files).length?null!=c&&c():a.forEach(function(a,b){var c=b.name,d=c.toLowerCase(),e=d.length;d.indexOf(".xml")==e-4||d.indexOf(".rels")==e-5?(y++,b.async("string").then(function(a){if(0!==a.length){65279==a.charCodeAt(0)&&(a=a.substring(1));var b=f.parseXml(a);if(null==b)if(0===a.charCodeAt(1)&&0===a.charCodeAt(3)&&0===a.charCodeAt(5))b=f.parseXml(f.decodeUTF16LE(a));else{for(b=0;b<f.incorrectXMLReqExp.length;b++)f.incorrectXMLReqExp[b].regExp.test(a)&&(a=a.replace(f.incorrectXMLReqExp[b].regExp,
+f.incorrectXMLReqExp[b].repl));b=f.parseXml(a)}null!=b&&(b.vsdxFileName=c,n[c]=b)}p++;l()})):0===d.indexOf(f.vsdxPlaceholder+"/media")&&(y++,function(a,b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}(d,".emf")?JSZip.support.blob&&window.EMF_CONVERT_URL?b.async("blob").then(function(a){var b=new FormData;b.append("img",a,d);b.append("inputformat","emf");b.append("outputformat","png");var n=new XMLHttpRequest;n.open("POST",EMF_CONVERT_URL);n.responseType="blob";h.editorUi.addRemoteServiceSecurityCheck(n);
+n.onreadystatechange=mxUtils.bind(this,function(){if(4==n.readyState)if(200<=n.status&&299>=n.status)try{var a=new FileReader;a.readAsDataURL(n.response);a.onloadend=function(){var b=a.result.indexOf(",")+1;k[c]=a.result.substr(b);p++;l()}}catch(aa){console.log(aa),p++,l()}else p++,l()});n.send(b)}):(p++,l()):function(a,b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}(d,".bmp")?JSZip.support.uint8array&&b.async("uint8array").then(function(a){a=new BmpDecoder(a);var b=document.createElement("canvas");
+b.width=a.width;b.height=a.height;b.getContext("2d").putImageData(a.imageData,0,0);a=b.toDataURL("image/jpeg");k[c]=a.substr(23);p++;l()}):b.async("base64").then(function(a){k[c]=a;p++;l()}))})},function(a){null!=c&&c(a)})};f.prototype.createMxGraph=function(){var d=new Graph;d.setExtendParents(!1);d.setExtendParentsOnAdd(!1);d.setConstrainChildren(!1);d.setHtmlLabels(!0);d.getModel().maintainEdgeParent=!1;return d};f.prototype.processPage=function(d,b){var a=(new mxCodec).encode(d.getModel());a.setAttribute("style",
+"default-style2");var a=mxUtils.getXml(a),c="";if(null!=b)var h=mxUtils.htmlEntities(b.getPageName())+(b.isBackground()?" (Background)":""),c=c+('<diagram name="'+h+'" id="'+h.replace(/\s/g,"_")+'">');return c+=Graph.compress(a)};f.prototype.scalePoint=function(d,b){null!=d&&(d.x*=b,d.y*=b);return d};f.prototype.scaleRect=function(d,b){null!=d&&(d.x*=b,d.y*=b,d.height*=b,d.width*=b);return d};f.prototype.importNodes=function(d,b,a,c){var h=a.lastIndexOf("/"),n=a,k=a;if(-1!==h&&(n=a.substring(0,h),
+k=a.substring(h+1,a.length),a=function(a,b){return a[b]?a[b]:null}(c,n+"/_rels/"+k+".rels"),null!=a)){var e=a.getElementsByTagName("Relationship");a={};for(h=0;h<e.length;h++){var k=e.item(h),y=k.getAttribute("Id"),k=k.getAttribute("Target");a[y]=k}b=b.getElementsByTagName("Rel");for(h=0;h<b.length;h++)if(e=b.item(h),k=function(a,b){return a[b]?a[b]:null}(a,e.getAttribute("r:id")),k=n+"/"+k,null!=k&&(y=c[k]?c[k]:null,null!=y)){e=e.parentNode;for(y=y.firstChild;null!=y&&1!=y.nodeType;)y=y.nextSibling;
+if(null!=y&&1==y.nodeType)for(y=y.firstChild;null!=y;){if(null!=y&&1==y.nodeType){var f=e.appendChild(d.importNode(y,!0));this.importNodes(d,f,k,c)}y=y.nextSibling}}}};f.prototype.importPage=function(d,b,a,c){var h=d.getBackPage();if(null!=h){b.getModel().setValue(b.getDefaultParent(),d.getPageName());var n=new mxCell(h.getPageName());b.addCell(n,b.getModel().getRoot(),0,null,null);this.importPage(h,b,b.getDefaultParent())}h=d.getLayers();this.layersMap[0]=b.getDefaultParent();var n={},k=0,e=null,
+y=d.getShapes();try{for(var f=0;null!=y.entries&&f<y.entries.length;f++){var p=y.entries[f].getValue().layerMember;null!=p&&(null==e?(n[p]=k,e=p):e!=p&&null==n[p]&&(k++,n[p]=k,e=p))}}catch(E){console.log("VSDX Import: Failed to detect layers order")}for(f=0;f<h.length;f++)p=h[f],k=null!=n[f]?n[f]:f,0==k?e=b.getDefaultParent():(e=new mxCell,b.addCell(e,b.model.root,k)),e.setVisible(1==p.Visible),1==p.Lock&&e.setStyle("locked=1;"),e.setValue(p.Name),this.layersMap[f]=e;n=function(a){var b=0;return{next:function(){return b<
+a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(y));p=d.getPageDimensions().y;for(h=d.getId();n.hasNext();)y=n.next(),y=y.getValue(),f=this.layersMap[y.layerMember],this.addShape(b,y,f?f:a,h,p);for(d=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(d.getConnects()));d.hasNext();)y=d.next(),a=this.addConnectedEdge(b,
+y.getValue(),h,p),null!=a&&function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries.splice(c,1)[0]}(this.edgeShapeMap,a);for(d=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(this.edgeShapeMap));d.hasNext();)a=d.next(),a.getKey().getPageNumber()===h&&
+this.addUnconnectedEdge(b,function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.parentsMap,a.getKey()),a.getValue(),p);c||this.sanitiseGraph(b);return p};f.prototype.postImportPage=function(d,b,a){try{var c=this,h=[],n=d.getShapes().entries||[];for(b=0;b<n.length;b++){var k=n[b].value||{};k.toBeCroppedImg&&h.push(k)}if(0<h.length){var w=function(a,
+b){function n(){a<h.length-1?w(a+1,b):b()}var k=h[a],y=k.toBeCroppedImg,f=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(c.vertexMap,new e.mxgraph.io.vsdx.ShapePageId(d.Id,k.Id)),p=new Image;p.onload=function(){var a=y.iData,b=y.iType;try{var c=p.width/y.imgWidth,h=p.height/y.imgHeight,k=-y.imgOffsetX*c,d=(y.imgHeight-y.height+y.imgOffsetY)*h,
+e=document.createElement("canvas");e.width=y.width*c;e.height=y.height*h;var w=e.getContext("2d");w.fillStyle="#FFFFFF";w.fillRect(0,0,e.width,e.height);w.drawImage(p,k,d,e.width,e.height,0,0,e.width,e.height);a=e.toDataURL("image/jpeg").substr(23);b="jpg"}catch(ea){console.log(ea)}f.style+=";image=data:image/"+b+","+a;n()};p.src="data:image/"+y.iType+";base64,"+y.iData;p.onerror=function(){f.style+=";image=data:image/"+y.iType+","+y.iData;n()}};w(0,a)}else a()}catch(y){console.log(y),a()}};f.prototype.addShape=
+function(d,b,a,c,h){b.parentHeight=h;var n=e.mxgraph.io.vsdx.VsdxShape.getType(b.getShape());if(null!=n&&(function(a,b){return a&&a.equals?a.equals(b):a===b}(n,e.mxgraph.io.vsdx.mxVsdxConstants.TYPE_SHAPE)||function(a,b){return a&&a.equals?a.equals(b):a===b}(n,e.mxgraph.io.vsdx.mxVsdxConstants.TYPE_GROUP)||function(a,b){return a&&a.equals?a.equals(b):a===b}(n,e.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN))){var k=b.getId();if(b.isVertex()){n=null;n=b.isGroup()?this.addGroup(d,b,a,c,h):this.addVertex(d,
+b,a,c,h);(function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.vertexShapeMap,new e.mxgraph.io.vsdx.ShapePageId(c,k),b);a=b.getHyperlink();a.extLink?d.setLinkForCell(n,a.extLink):a.pageLink&&d.setLinkForCell(n,"data:page/id,"+a.pageLink);b=b.getProperties();
+for(a=0;a<b.length;a++)d.setAttributeForCell(n,b[a].key,b[a].val);return n}b.setShapeIndex(d.getModel().getChildCount(a));(function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.edgeShapeMap,new e.mxgraph.io.vsdx.ShapePageId(c,k),b);(function(a,b,c){null==
+a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.parentsMap,new e.mxgraph.io.vsdx.ShapePageId(c,k),a)}return null};f.prototype.addGroup=function(d,b,a,c,h){var n=b.getDimensions(),k=b.getMaster(),w=b.getStyleFromShape(),f=b.getGeomList();f.isNoFill()&&(w[mxConstants.STYLE_FILLCOLOR]=
+"none",w[mxConstants.STYLE_GRADIENTCOLOR]="none");f.isNoLine()&&(w[mxConstants.STYLE_STROKECOLOR]="none");w.html="1";w[mxConstants.STYLE_WHITE_SPACE]="wrap";var p=e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(w,"="),w=null,l=b.getChildShapes(),w=null!=l&&0<function(a){null==a.entries&&(a.entries=[]);return a.entries.length}(l),f=b.isDisplacedLabel()||b.isRotatedLabel()||w,w=b.getOriginPoint(h,!0);if(f)w=d.insertVertex(a,null,null,Math.floor(Math.round(100*w.x)/100),Math.floor(Math.round(100*w.y)/100),
+Math.floor(Math.round(100*n.x)/100),Math.floor(Math.round(100*n.y)/100),p);else var r=b.getTextLabel(),w=d.insertVertex(a,null,r,Math.floor(Math.round(100*w.x)/100),Math.floor(Math.round(100*w.y)/100),Math.floor(Math.round(100*n.x)/100),Math.floor(Math.round(100*n.y)/100),p);for(a=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){null==a.entries&&(a.entries=[]);return a.entries}(l));a.hasNext();)p=a.next().getValue(),l=p.getId(),
+p.isVertex()?(r=e.mxgraph.io.vsdx.VsdxShape.getType(p.getShape()),null!=r&&(function(a,b){return a&&a.equals?a.equals(b):a===b}(r,e.mxgraph.io.vsdx.mxVsdxConstants.TYPE_SHAPE)||function(a,b){return a&&a.equals?a.equals(b):a===b}(r,e.mxgraph.io.vsdx.mxVsdxConstants.TYPE_GROUP)||function(a,b){return a&&a.equals?a.equals(b):a===b}(r,e.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN))&&p.isVertex()&&(p.propagateRotation(b.getRotation()),p.isGroup()?this.addGroup(d,p,w,c,n.y):this.addVertex(d,p,w,c,n.y)),null==
+k&&function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexShapeMap,new e.mxgraph.io.vsdx.ShapePageId(c,l),p)):null==k?(function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||
+a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.edgeShapeMap,new e.mxgraph.io.vsdx.ShapePageId(c,l),p),function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.parentsMap,
+new e.mxgraph.io.vsdx.ShapePageId(c,l),w)):this.addUnconnectedEdge(d,w,p,h);f&&b.createLabelSubShape(d,w);d=b.getRotation();if(0!==d)for(n=w.getGeometry(),h=n.width/2,n=n.height/2,k=0;k<w.getChildCount();k++)f=w.getChildAt(k),e.mxgraph.online.Utils.rotatedGeometry(f.getGeometry(),d,h,n);(function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,
+value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.vertexMap,new e.mxgraph.io.vsdx.ShapePageId(c,b.getId()),w);return w};f.rotatedEdgePoint=function(d,b,a,c){b=b*Math.PI/180;var h=Math.cos(b);b=Math.sin(b);var n=d.x-a,k=d.y-c;d.x=Math.round(n*h-k*b+a);d.y=Math.round(k*h+n*b+c)};f.prototype.addVertex=function(d,b,a,c,h){var n="",k=b.isDisplacedLabel()||b.isRotatedLabel();k||(n=b.getTextLabel());var w=b.getDimensions(),f=b.getStyleFromShape();f.html="1";var p=
+f.hasOwnProperty(mxConstants.STYLE_SHAPE)||f.hasOwnProperty("stencil");f.hasOwnProperty(mxConstants.STYLE_FILLCOLOR)&&p||(f[mxConstants.STYLE_FILLCOLOR]="none");p||(f[mxConstants.STYLE_STROKECOLOR]="none");f.hasOwnProperty(mxConstants.STYLE_GRADIENTCOLOR)&&p||(f[mxConstants.STYLE_GRADIENTCOLOR]="none");f[mxConstants.STYLE_WHITE_SPACE]="wrap";h=b.getOriginPoint(h,!0);return p||null!=n?(f=e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(f,"="),p=null,p=k?d.insertVertex(a,null,null,Math.floor(Math.round(100*
+h.x)/100),Math.floor(Math.round(100*h.y)/100),Math.floor(Math.round(100*w.x)/100),Math.floor(Math.round(100*w.y)/100),f):d.insertVertex(a,null,n,Math.floor(Math.round(100*h.x)/100),Math.floor(Math.round(100*h.y)/100),Math.floor(Math.round(100*w.x)/100),Math.floor(Math.round(100*w.y)/100),f),function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,
+value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.vertexMap,new e.mxgraph.io.vsdx.ShapePageId(c,b.getId()),p),b.setLabelOffset(p,f),k&&b.createLabelSubShape(d,p),p):null};f.calculateAbsolutePoint=function(d){for(var b=0,a=0;null!=d;){var c=d.geometry;null!=c&&(b+=c.x,a+=c.y);d=d.parent}return new mxPoint(b,a)};f.prototype.addConnectedEdge=function(d,b,a,c){var h=b.getFromSheet(),h=new e.mxgraph.io.vsdx.ShapePageId(a,h),n=function(a,b){null==a.entries&&(a.entries=
+[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.edgeShapeMap,h);if(null==n)return null;var k=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.parentsMap,new e.mxgraph.io.vsdx.ShapePageId(a,n.getId()));if(null!=k){var w=d.getModel().getGeometry(k);
+null!=w&&(c=w.height)}var y=n.getStartXY(c),p=n.getEndXY(c),w=n.getRoutingPoints(c,y,n.getRotation());this.rotateChildEdge(d.getModel(),k,y,p,w);var l=null,r=b.getSourceToSheet(),r=null!=r?function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.vertexMap,new e.mxgraph.io.vsdx.ShapePageId(a,r)):null,B=!0;if(null==r)r=d.insertVertex(k,null,null,Math.floor(Math.round(100*
+y.x)/100),Math.floor(Math.round(100*y.y)/100),0,0);else if(r.style&&-1==r.style.indexOf(";rotation="))var l=f.calculateAbsolutePoint(r),F=f.calculateAbsolutePoint(k),D=r.geometry,l=new mxPoint((F.x+y.x-l.x)/D.width,(F.y+y.y-l.y)/D.height);else B=!1;y=null;b=b.getTargetToSheet();b=null!=b?function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.vertexMap,
+new e.mxgraph.io.vsdx.ShapePageId(a,b)):null;F=!0;null==b?b=d.insertVertex(k,null,null,Math.floor(Math.round(100*p.x)/100),Math.floor(Math.round(100*p.y)/100),0,0):b.style&&-1==b.style.indexOf(";rotation=")?(a=f.calculateAbsolutePoint(b),y=f.calculateAbsolutePoint(k),D=b.geometry,y=new mxPoint((y.x+p.x-a.x)/D.width,(y.y+p.y-a.y)/D.height)):F=!1;p=n.getStyleFromEdgeShape(c);D=n.getRotation();0!==D?(a=d.insertEdge(k,null,null,r,b,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(p,"=")),B=n.createLabelSubShape(d,
+a),null!=B&&(B.setStyle(B.getStyle()+";rotation="+(60<D&&240>D?(D+180)%360:D)),B=B.getGeometry(),B.x=0,B.y=0,B.relative=!0,B.offset=new mxPoint(-B.width/2,-B.height/2))):(a=d.insertEdge(k,null,n.getTextLabel(),r,b,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(p,"=")),D=n.getLblEdgeOffset(d.getView(),w),a.getGeometry().offset=D,null!=l&&d.setConnectionConstraint(a,r,!0,new mxConnectionConstraint(l,!1)),B&&w.shift(),null!=y&&d.setConnectionConstraint(a,b,!1,new mxConnectionConstraint(y,!1)),F&&w.pop());
+B=d.getModel().getGeometry(a);if(r.parent!=b.parent&&null!=k&&1!=k.id&&1==r.parent.id){b=l=0;do y=k.geometry,null!=y&&(l+=y.x,b+=y.y),k=k.parent;while(null!=k);a.parent=r.parent;for(k=0;k<w.length;k++)w[k].x+=l,w[k].y+=b}B.points=w;p.hasOwnProperty("curved")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(function(a,b){return a[b]?a[b]:null}(p,"curved"),"1")&&(B=d.getModel().getGeometry(a),d=n.getControlPoints(c),B.points=d);return h};f.prototype.addUnconnectedEdge=function(d,b,a,c){if(null!=
+b){var h=d.getModel().getGeometry(b);null!=h&&(c=h.height)}var n=a.getStartXY(c),k=a.getEndXY(c),w=a.getStyleFromEdgeShape(c),f=a.getRoutingPoints(c,n,a.getRotation()),p=a.getRotation();if(0!==p){0===a.getShapeIndex()?h=d.insertEdge(b,null,null,null,null,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(w,"=")):(h=d.createEdge(b,null,null,null,null,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(w,"=")),h=d.addEdge(h,b,null,null,a.getShapeIndex()));var l=a.createLabelSubShape(d,h);null!=l&&(l.setStyle(l.getStyle()+
+";rotation="+(60<p&&240>p?(p+180)%360:p)),p=l.getGeometry(),p.x=0,p.y=0,p.relative=!0,p.offset=new mxPoint(-p.width/2,-p.height/2))}else 0===a.getShapeIndex()?h=d.insertEdge(b,null,a.getTextLabel(),null,null,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(w,"=")):(h=d.createEdge(b,null,a.getTextLabel(),null,null,e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(w,"=")),h=d.addEdge(h,b,null,null,a.getShapeIndex())),p=a.getLblEdgeOffset(d.getView(),f),h.getGeometry().offset=p;this.rotateChildEdge(d.getModel(),
+b,n,k,f);b=d.getModel().getGeometry(h);f.pop();f.shift();b.points=f;b.setTerminalPoint(n,!0);b.setTerminalPoint(k,!1);w.hasOwnProperty("curved")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(function(a,b){return a[b]?a[b]:null}(w,"curved"),"1")&&(b=d.getModel().getGeometry(h),d=a.getControlPoints(c),b.points=d);return h};f.prototype.rotateChildEdge=function(d,b,a,c,h){if(null!=b){var n=d.getGeometry(b);d=d.getStyle(b);if(null!=n&&null!=d&&(b=d.indexOf("rotation="),-1<b))for(d=parseFloat(d.substring(b+
+9,d.indexOf(";",b))),b=n.width/2,n=n.height/2,f.rotatedEdgePoint(a,d,b,n),f.rotatedEdgePoint(c,d,b,n),a=0;a<h.length;a++)f.rotatedEdgePoint(h[a],d,b,n)}};f.prototype.sanitiseGraph=function(d){var b=d.getModel().getRoot();this.sanitiseCell(d,b)};f.prototype.sanitiseCell=function(d,b){for(var a=d.getModel(),c=a.getChildCount(b),h=[],n=0;n<c;n++){var k=a.getChildAt(b,n);this.sanitiseCell(d,k)&&h.push(k)}for(n=0;n<h.length;n++)a.remove(h[n]);h=b.geometry;null!=h&&(0>h.height&&(h.height=Math.abs(h.height),
+h.y-=h.height,b.style+=";flipV=1;"),0>h.width&&(h.width=Math.abs(h.width),h.x-=h.width,b.style+=";flipH=1;"));0<c&&(c=a.getChildCount(b));h=(new String(a.getValue(b))).toString();n=a.getStyle(b);return 0!==c||!a.isVertex(b)||null!=a.getValue(b)&&0!==h.length||null==n||-1==n.indexOf(mxConstants.STYLE_FILLCOLOR+"=none")||-1==n.indexOf(mxConstants.STYLE_STROKECOLOR+"=none")||-1!=n.indexOf("image=")?!1:!0};return f}();l.mxVsdxCodec=f;f.__class="com.mxgraph.io.mxVsdxCodec"})(l.io||(l.io={}))})(e.mxgraph||
(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){var f=function(f){function d(b){var a=f.call(this)||this;a.RESPONSE_END="";a.RESPONSE_DIAGRAM_START="";a.RESPONSE_DIAGRAM_END="";a.RESPONSE_HEADER="";a.editorUi=b;return a}__extends(d,f);d.prototype.decodeVssx=function(b,a,c,h){var n=this,l="<mxlibrary>[";this.decodeVsdx(b,function(b){l=l.concat(b);var c=n.vsdxModel.getMasterShapes(),d=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){var b=
-[];null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)b.push(a.entries[c].value);return b}(n.vsdxModel.getPages())).next();if(null!=c){var x={str:"",toString:function(){return this.str}},p=0===b.length?"":",",k=function(a){return Object.keys(a).map(function(b){return a[b]})}(c);b=function(a){a=k[a];var b=r.createMxGraph(),h=1;if(null!=a.pageSheet){var n=h=1,l=a.pageSheet.DrawingScale;null!=l&&(h=parseFloat(l.getAttribute("V"))||1);l=a.pageSheet.PageScale;null!=l&&(n=parseFloat(l.getAttribute("V"))||
-1);h=n/h}n=!1;for(l=0;null!=a.firstLevelShapes&&l<a.firstLevelShapes.length;l++){var w=a.firstLevelShapes[l].getShape(),A=new e.mxgraph.io.vsdx.VsdxShape(d,w,!d.isEdge(w),c,null,r.vsdxModel),w=null;if(A.isVertex()){r.edgeShapeMap.entries=[];r.parentsMap.entries=[];for(var w=r.addShape(b,A,b.getDefaultParent(),0,1169),A=function(a){null==a.entries&&(a.entries=[]);return a.entries}(r.edgeShapeMap),B=0;B<A.length;B++){var E=A[B],C=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=
-a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(r.parentsMap,E.getKey());r.addUnconnectedEdge(b,C,E.getValue(),1169)}}else w=r.addUnconnectedEdge(b,null,A,1169);n|=null!=w}if(n){r.scaleGraph(b,h);h=r.normalizeGraph(b);r.sanitiseGraph(b);if(0===b.getModel().getChildCount(b.getDefaultParent()))return"continue";x.str=x.str.concat(p);x.str=x.str.concat('{"xml":"');b=f.prototype.processPage.call(r,b,null);x.str=x.str.concat(b);x.str=x.str.concat('","w":');
-x.str=x.str.concat(h.width);x.str=x.str.concat(',"h":');x.str=x.str.concat(h.height);x.str=x.str.concat(',"title":');a=a.getName();null==a&&(a="");a=mxUtils.htmlEntities(JSON.stringify(a));x.str=x.str.concat(a);x.str=x.str.concat("}");p=","}};for(var r=n,D=0;D<k.length;D++)b(D);l=l.concat(x)}l=l.concat("]</mxlibrary>");if(a)try{a(l)}catch(K){null!=h?h(K):a("")}},c)};d.prototype.normalizeGeo=function(b){var a=b.getGeometry();a.x=0;a.y=0;var c=a.sourcePoint;if(b.isEdge()&&null!=c){this.transPoint(a.targetPoint,
-c);this.transPoint(a.offset,c);b=a.points;if(null!=b)for(var h=0;h<b.length;h++)this.transPoint(b[h],c);this.transPoint(c,c)}return a};d.prototype.normalizeGraph=function(b){function a(a){null!=a&&(null==c?(c=a.x,h=a.y,n=a.x+(a.width||0),l=a.y+(a.height||0)):(c=Math.min(a.x,c),h=Math.min(a.y,h),n=Math.max(a.x+(a.width||0),n),l=Math.max(a.y+(a.height||0),l)))}var c,h,n,l,d;for(d in b.model.cells){var e=b.model.cells[d],f=e.geometry;if(null!=f&&1==e.parent.id)if(e.vertex)a(f);else for(a(f.sourcePoint),
-a(f.targetPoint),e=f.points,f=0;null!=e&&f<e.length;f++)a(e[f])}var p={x:c,y:h};for(d in b.model.cells)if(e=b.model.cells[d],f=e.geometry,null!=f&&1==e.parent.id&&(f.x-=c,f.y-=h,e.isEdge()))for(this.transPoint(f.sourcePoint,p),this.transPoint(f.targetPoint,p),this.transPoint(f.offset,p),e=f.points,f=0;null!=e&&f<e.length;f++)this.transPoint(e[f],p);return{width:n-c,height:l-h}};d.prototype.transPoint=function(b,a){null!=b&&(b.x-=a.x,b.y-=a.y)};d.prototype.processPage=function(b,a){var c=b.getModel(),
-h="",n="",l;for(l in c.cells){var d=c.cells[l];if(b.getDefaultParent()===c.getParent(d)){var h=h.concat(n),h=h.concat('{"xml":"'),w=this.createMxGraph();w.addCell(d);this.sanitiseGraph(w);if(0===w.getModel().getChildCount(w.getDefaultParent()))return"continue";n=this.normalizeGeo(d);w=f.prototype.processPage.call(this,w,null);h=h.concat(w);h=h.concat('","w":');h=h.concat(n.width);h=h.concat(',"h":');h=h.concat(n.height);h=h.concat(',"title":"');n=c.getStyle(d);d="";if(null!=n&&(w=n.indexOf(e.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID),
-0<=w)){w+=e.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID.length+1;l=parseInt(n.substring(w,n.indexOf(";",w)));a:{n=this.vertexShapeMap;w=new e.mxgraph.io.vsdx.ShapePageId(a.getId(),l);null==n.entries&&(n.entries=[]);for(var p=0;p<n.entries.length;p++)if(null!=n.entries[p].key.equals&&n.entries[p].key.equals(w)||n.entries[p].key===w){n=n.entries[p].value;break a}n=null}null!=n&&(d=n.getName())}h=h.concat(d);h=h.concat('"}');n=","}}this.RESPONSE_DIAGRAM_START=0<h.length?",":"";return h};return d}(e.mxgraph.io.mxVsdxCodec);
-k.mxVssxCodec=f;f.__class="com.mxgraph.io.mxVssxCodec"})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){var f=function(f){function d(b){var a=f.call(this)||this;a.RESPONSE_END="";a.RESPONSE_DIAGRAM_START="";a.RESPONSE_DIAGRAM_END="";a.RESPONSE_HEADER="";a.editorUi=b;return a}__extends(d,f);d.prototype.decodeVssx=function(b,a,c,h){var n=this,k="<mxlibrary>[";this.decodeVsdx(b,function(b){k=k.concat(b);var c=n.vsdxModel.getMasterShapes(),d=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){var b=
+[];null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)b.push(a.entries[c].value);return b}(n.vsdxModel.getPages())).next();if(null!=c){var w={str:"",toString:function(){return this.str}},p=0===b.length?"":",",l=function(a){return Object.keys(a).map(function(b){return a[b]})}(c);b=function(a){a=l[a];var b=r.createMxGraph(),h=1;if(null!=a.pageSheet){var n=h=1,k=a.pageSheet.DrawingScale;null!=k&&(h=parseFloat(k.getAttribute("V"))||1);k=a.pageSheet.PageScale;null!=k&&(n=parseFloat(k.getAttribute("V"))||
+1);h=n/h}n=!1;for(k=0;null!=a.firstLevelShapes&&k<a.firstLevelShapes.length;k++){var y=a.firstLevelShapes[k].getShape(),A=new e.mxgraph.io.vsdx.VsdxShape(d,y,!d.isEdge(y),c,null,r.vsdxModel),y=null;if(A.isVertex()){r.edgeShapeMap.entries=[];r.parentsMap.entries=[];for(var y=r.addShape(b,A,b.getDefaultParent(),0,1169),A=function(a){null==a.entries&&(a.entries=[]);return a.entries}(r.edgeShapeMap),C=0;C<A.length;C++){var E=A[C],B=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=
+a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(r.parentsMap,E.getKey());r.addUnconnectedEdge(b,B,E.getValue(),1169)}}else y=r.addUnconnectedEdge(b,null,A,1169);n|=null!=y}if(n){r.scaleGraph(b,h);h=r.normalizeGraph(b);r.sanitiseGraph(b);if(0===b.getModel().getChildCount(b.getDefaultParent()))return"continue";w.str=w.str.concat(p);w.str=w.str.concat('{"xml":"');b=f.prototype.processPage.call(r,b,null);w.str=w.str.concat(b);w.str=w.str.concat('","w":');
+w.str=w.str.concat(h.width);w.str=w.str.concat(',"h":');w.str=w.str.concat(h.height);w.str=w.str.concat(',"title":');a=a.getName();null==a&&(a="");a=mxUtils.htmlEntities(JSON.stringify(a));w.str=w.str.concat(a);w.str=w.str.concat("}");p=","}};for(var r=n,D=0;D<l.length;D++)b(D);k=k.concat(w)}k=k.concat("]</mxlibrary>");if(a)try{a(k)}catch(K){null!=h?h(K):a("")}},c)};d.prototype.normalizeGeo=function(b){var a=b.getGeometry();a.x=0;a.y=0;var c=a.sourcePoint;if(b.isEdge()&&null!=c){this.transPoint(a.targetPoint,
+c);this.transPoint(a.offset,c);b=a.points;if(null!=b)for(var h=0;h<b.length;h++)this.transPoint(b[h],c);this.transPoint(c,c)}return a};d.prototype.normalizeGraph=function(b){function a(a){null!=a&&(null==c?(c=a.x,h=a.y,n=a.x+(a.width||0),k=a.y+(a.height||0)):(c=Math.min(a.x,c),h=Math.min(a.y,h),n=Math.max(a.x+(a.width||0),n),k=Math.max(a.y+(a.height||0),k)))}var c,h,n,k,d;for(d in b.model.cells){var e=b.model.cells[d],f=e.geometry;if(null!=f&&1==e.parent.id)if(e.vertex)a(f);else for(a(f.sourcePoint),
+a(f.targetPoint),e=f.points,f=0;null!=e&&f<e.length;f++)a(e[f])}var p={x:c,y:h};for(d in b.model.cells)if(e=b.model.cells[d],f=e.geometry,null!=f&&1==e.parent.id&&(f.x-=c,f.y-=h,e.isEdge()))for(this.transPoint(f.sourcePoint,p),this.transPoint(f.targetPoint,p),this.transPoint(f.offset,p),e=f.points,f=0;null!=e&&f<e.length;f++)this.transPoint(e[f],p);return{width:n-c,height:k-h}};d.prototype.transPoint=function(b,a){null!=b&&(b.x-=a.x,b.y-=a.y)};d.prototype.processPage=function(b,a){var c=b.getModel(),
+h="",n="",k;for(k in c.cells){var d=c.cells[k];if(b.getDefaultParent()===c.getParent(d)){var h=h.concat(n),h=h.concat('{"xml":"'),y=this.createMxGraph();y.addCell(d);this.sanitiseGraph(y);if(0===y.getModel().getChildCount(y.getDefaultParent()))return"continue";n=this.normalizeGeo(d);y=f.prototype.processPage.call(this,y,null);h=h.concat(y);h=h.concat('","w":');h=h.concat(n.width);h=h.concat(',"h":');h=h.concat(n.height);h=h.concat(',"title":"');n=c.getStyle(d);d="";if(null!=n&&(y=n.indexOf(e.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID),
+0<=y)){y+=e.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID.length+1;k=parseInt(n.substring(y,n.indexOf(";",y)));a:{n=this.vertexShapeMap;y=new e.mxgraph.io.vsdx.ShapePageId(a.getId(),k);null==n.entries&&(n.entries=[]);for(var p=0;p<n.entries.length;p++)if(null!=n.entries[p].key.equals&&n.entries[p].key.equals(y)||n.entries[p].key===y){n=n.entries[p].value;break a}n=null}null!=n&&(d=n.getName())}h=h.concat(d);h=h.concat('"}');n=","}}this.RESPONSE_DIAGRAM_START=0<h.length?",":"";return h};return d}(e.mxgraph.io.mxVsdxCodec);
+l.mxVssxCodec=f;f.__class="com.mxgraph.io.mxVssxCodec"})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
(function(e){(function(e){(function(e){(function(e){(function(e){var d=function(){function b(a,b,h){this.formulaE=this.formulaA=this.d=this.c=this.b=this.a=this.y=this.x=null;this.index=0;this.index=a;this.x=b;this.y=h}b.prototype.getX=function(){return this.x};b.prototype.getY=function(){return this.y};b.prototype.getA=function(){return this.a};b.prototype.getB=function(){return this.b};b.prototype.getC=function(){return this.c};b.prototype.getD=function(){return this.d};b.prototype.getFormulaA=
function(){return this.formulaA};b.prototype.getFormulaE=function(){return this.formulaE};b.prototype.getIndex=function(){return this.index};return b}();e.Row=d;d.__class="com.mxgraph.io.vsdx.geometry.Row"})(e.geometry||(e.geometry={}))})(e.vsdx||(e.vsdx={}))})(e.io||(e.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))||1}catch(c){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(h){}return null};b.getRowObj=function(a,c){var h=a.getAttribute("T"),n=b.getIndex(a),l;l=(l=a.getAttribute("Del"))&&l.equals?l.equals("1"):"1"===l;if(!l){var d=null;n<=c.length&&(d=c[n-1]);var f=l=null,p=null,
-k=null,r=null,C=null,F=null,D=null;null!=d&&(l=d.x,f=d.y,p=d.getA(),k=d.getB(),r=d.getC(),C=d.getD(),D=d.getFormulaA(),F=d.getFormulaE());for(var d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),K=0;K<d.length;K++){var Z=d[K],H=Z.getAttribute("N"),Y=Z.getAttribute("V");switch(H){case "X":l=b.getDoubleVal(Y);break;case "Y":f=b.getDoubleVal(Y);break;case "A":p=b.getDoubleVal(Y);D=Z.getAttribute("V");break;case "B":k=b.getDoubleVal(Y);break;case "C":r=b.getDoubleVal(Y);break;case "D":C=b.getDoubleVal(Y);
-break;case "E":F=Y}}switch(h){case "MoveTo":return new e.mxgraph.io.vsdx.geometry.MoveTo(n,l,f);case "LineTo":return new e.mxgraph.io.vsdx.geometry.LineTo(n,l,f);case "ArcTo":return new e.mxgraph.io.vsdx.geometry.ArcTo(n,l,f,p);case "Ellipse":return new e.mxgraph.io.vsdx.geometry.Ellipse(n,l,f,p,k,r,C);case "EllipticalArcTo":return new e.mxgraph.io.vsdx.geometry.EllipticalArcTo(n,l,f,p,k,r,C);case "InfiniteLine":return new e.mxgraph.io.vsdx.geometry.InfiniteLine(n,l,f,p,k);case "NURBSTo":return new e.mxgraph.io.vsdx.geometry.NURBSTo(n,
-l,f,p,k,r,C,F);case "PolylineTo":return new e.mxgraph.io.vsdx.geometry.PolylineTo(n,l,f,D);case "RelCubBezTo":return new e.mxgraph.io.vsdx.geometry.RelCubBezTo(n,l,f,p,k,r,C);case "RelEllipticalArcTo":return new e.mxgraph.io.vsdx.geometry.RelEllipticalArcTo(n,l,f,p,k,r,C);case "RelLineTo":return new e.mxgraph.io.vsdx.geometry.RelLineTo(n,l,f);case "RelMoveTo":return new e.mxgraph.io.vsdx.geometry.RelMoveTo(n,l,f);case "RelQuadBezTo":return new e.mxgraph.io.vsdx.geometry.RelQuadBezTo(n,l,f,p,k);case "SplineKnot":return new e.mxgraph.io.vsdx.geometry.SplineKnot(n,
-l,f,p);case "SplineStart":return new e.mxgraph.io.vsdx.geometry.SplineStart(n,l,f,p,k,r,C)}}return new e.mxgraph.io.vsdx.geometry.DelRow(n)};return b}();f.RowFactory=d;d.__class="com.mxgraph.io.vsdx.geometry.RowFactory"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(){this.colorElementMap={};this.fontElementMap={}}d.__static_initialize=function(){d.__static_initialized||(d.__static_initialized=!0,d.__static_initializer_0())};d.defaultColors_$LI$=function(){d.__static_initialize();null==d.defaultColors&&(d.defaultColors={});return d.defaultColors};d.__static_initializer_0=function(){d.defaultColors_$LI$()["0"]="#000000";d.defaultColors_$LI$()["1"]="#FFFFFF";d.defaultColors_$LI$()["2"]=
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))||1}catch(c){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(h){}return null};b.getRowObj=function(a,c){var h=a.getAttribute("T"),n=b.getIndex(a),k;k=(k=a.getAttribute("Del"))&&k.equals?k.equals("1"):"1"===k;if(!k){var d=null;n<=c.length&&(d=c[n-1]);var f=k=null,p=null,
+l=null,r=null,B=null,F=null,D=null;null!=d&&(k=d.x,f=d.y,p=d.getA(),l=d.getB(),r=d.getC(),B=d.getD(),D=d.getFormulaA(),F=d.getFormulaE());for(var d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),K=0;K<d.length;K++){var Z=d[K],H=Z.getAttribute("N"),Y=Z.getAttribute("V");switch(H){case "X":k=b.getDoubleVal(Y);break;case "Y":f=b.getDoubleVal(Y);break;case "A":p=b.getDoubleVal(Y);D=Z.getAttribute("V");break;case "B":l=b.getDoubleVal(Y);break;case "C":r=b.getDoubleVal(Y);break;case "D":B=b.getDoubleVal(Y);
+break;case "E":F=Y}}switch(h){case "MoveTo":return new e.mxgraph.io.vsdx.geometry.MoveTo(n,k,f);case "LineTo":return new e.mxgraph.io.vsdx.geometry.LineTo(n,k,f);case "ArcTo":return new e.mxgraph.io.vsdx.geometry.ArcTo(n,k,f,p);case "Ellipse":return new e.mxgraph.io.vsdx.geometry.Ellipse(n,k,f,p,l,r,B);case "EllipticalArcTo":return new e.mxgraph.io.vsdx.geometry.EllipticalArcTo(n,k,f,p,l,r,B);case "InfiniteLine":return new e.mxgraph.io.vsdx.geometry.InfiniteLine(n,k,f,p,l);case "NURBSTo":return new e.mxgraph.io.vsdx.geometry.NURBSTo(n,
+k,f,p,l,r,B,F);case "PolylineTo":return new e.mxgraph.io.vsdx.geometry.PolylineTo(n,k,f,D);case "RelCubBezTo":return new e.mxgraph.io.vsdx.geometry.RelCubBezTo(n,k,f,p,l,r,B);case "RelEllipticalArcTo":return new e.mxgraph.io.vsdx.geometry.RelEllipticalArcTo(n,k,f,p,l,r,B);case "RelLineTo":return new e.mxgraph.io.vsdx.geometry.RelLineTo(n,k,f);case "RelMoveTo":return new e.mxgraph.io.vsdx.geometry.RelMoveTo(n,k,f);case "RelQuadBezTo":return new e.mxgraph.io.vsdx.geometry.RelQuadBezTo(n,k,f,p,l);case "SplineKnot":return new e.mxgraph.io.vsdx.geometry.SplineKnot(n,
+k,f,p);case "SplineStart":return new e.mxgraph.io.vsdx.geometry.SplineStart(n,k,f,p,l,r,B)}}return new e.mxgraph.io.vsdx.geometry.DelRow(n)};return b}();f.RowFactory=d;d.__class="com.mxgraph.io.vsdx.geometry.RowFactory"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(){this.colorElementMap={};this.fontElementMap={}}d.__static_initialize=function(){d.__static_initialized||(d.__static_initialized=!0,d.__static_initializer_0())};d.defaultColors_$LI$=function(){d.__static_initialize();null==d.defaultColors&&(d.defaultColors={});return d.defaultColors};d.__static_initializer_0=function(){d.defaultColors_$LI$()["0"]="#000000";d.defaultColors_$LI$()["1"]="#FFFFFF";d.defaultColors_$LI$()["2"]=
"#FF0000";d.defaultColors_$LI$()["3"]="#00FF00";d.defaultColors_$LI$()["4"]="#0000FF";d.defaultColors_$LI$()["5"]="#FFFF00";d.defaultColors_$LI$()["6"]="#FF00FF";d.defaultColors_$LI$()["7"]="#00FFFF";d.defaultColors_$LI$()["8"]="#800000";d.defaultColors_$LI$()["9"]="#008000";d.defaultColors_$LI$()["10"]="#000080";d.defaultColors_$LI$()["11"]="#808000";d.defaultColors_$LI$()["12"]="#800080";d.defaultColors_$LI$()["13"]="#008080";d.defaultColors_$LI$()["14"]="#C0C0C0";d.defaultColors_$LI$()["15"]="#E6E6E6";
d.defaultColors_$LI$()["16"]="#CDCDCD";d.defaultColors_$LI$()["17"]="#B3B3B3";d.defaultColors_$LI$()["18"]="#9A9A9A";d.defaultColors_$LI$()["19"]="#808080";d.defaultColors_$LI$()["20"]="#666666";d.defaultColors_$LI$()["21"]="#4D4D4D";d.defaultColors_$LI$()["22"]="#333333";d.defaultColors_$LI$()["23"]="#1A1A1A"};d.prototype.initialise=function(b,a){if(null!=b){var c=b.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.COLORS);if(0<c.length)for(var h=c.item(0).getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.COLOR_ENTRY),
-n=h.length,c=0;c<n;c++){var l=h.item(c),d=l.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.INDEX),l=l.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.RGB);this.colorElementMap[d]=l}c=b.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.FACE_NAMES);if(0<c.length)for(h=c.item(0).getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.FACE_NAME),n=h.length,c=0;c<n;c++)l=h.item(c),d=l.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.ID),l=l.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.FONT_NAME),this.fontElementMap[d]=
-l}};d.prototype.getColor=function(b){var a=function(a,b){return a[b]?a[b]:null}(this.colorElementMap,b);return null==a&&(a=function(a,b){return a[b]?a[b]:null}(d.defaultColors_$LI$(),b),null==a)?"":a};d.prototype.getFont=function(b){var a=this.fontElementMap;b=a[b]?a[b]:null;return null==b?"":b};return d}();p.__static_initialized=!1;f.mxPropertiesManager=p;p.__class="com.mxgraph.io.vsdx.mxPropertiesManager"})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(b){this.sourceToSheet=this.fromSheet=null;this.sourceToPart=-1;this.targetToSheet=null;this.targetToPart=-1;this.endShape=this.fromCell=null;var a=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.FROM_SHEET);this.fromSheet=null!=a&&0!==a.length?parseFloat(a):-1;a=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.FROM_CELL);this.addFromCell(b,a)}d.prototype.addFromCell=function(b,a){var c=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.TO_SHEET),
+n=h.length,c=0;c<n;c++){var k=h.item(c),d=k.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.INDEX),k=k.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.RGB);this.colorElementMap[d]=k}c=b.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.FACE_NAMES);if(0<c.length)for(h=c.item(0).getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.FACE_NAME),n=h.length,c=0;c<n;c++)k=h.item(c),d=k.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.ID),k=k.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.FONT_NAME),this.fontElementMap[d]=
+k}};d.prototype.getColor=function(b){var a=function(a,b){return a[b]?a[b]:null}(this.colorElementMap,b);return null==a&&(a=function(a,b){return a[b]?a[b]:null}(d.defaultColors_$LI$(),b),null==a)?"":a};d.prototype.getFont=function(b){var a=this.fontElementMap;b=a[b]?a[b]:null;return null==b?"":b};return d}();p.__static_initialized=!1;f.mxPropertiesManager=p;p.__class="com.mxgraph.io.vsdx.mxPropertiesManager"})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(b){this.sourceToSheet=this.fromSheet=null;this.sourceToPart=-1;this.targetToSheet=null;this.targetToPart=-1;this.endShape=this.fromCell=null;var a=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.FROM_SHEET);this.fromSheet=null!=a&&0!==a.length?parseFloat(a):-1;a=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.FROM_CELL);this.addFromCell(b,a)}d.prototype.addFromCell=function(b,a){var c=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.TO_SHEET),
h=!0;null!=a&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_X)?(this.sourceToSheet=null!=c&&0!==c.length?parseFloat(c):-1,h=!0):null!=a&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,e.mxgraph.io.vsdx.mxVsdxConstants.END_X)?(this.targetToSheet=null!=c&&0!==c.length?parseFloat(c):-1,h=!1):null==this.sourceToSheet?(this.sourceToSheet=null!=c&&0!==c.length?parseFloat(c):-1,h=!0):null==this.targetToSheet&&(this.targetToSheet=null!=c&&0!==c.length?
parseFloat(c):-1,h=!1);this.findToPart(b,h)};d.prototype.findToPart=function(b,a){var c=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.TO_PART),c=null!=c&&0!==c.length?parseFloat(c):-1;a?this.sourceToPart=c:this.targetToPart=c};d.prototype.getFromSheet=function(){return this.fromSheet};d.prototype.getSourceToSheet=function(){return this.sourceToSheet};d.prototype.getTargetToSheet=function(){return this.targetToSheet};d.prototype.getSourceToPart=function(){return this.sourceToPart};d.prototype.getTargetToPart=
-function(){return this.targetToPart};d.prototype.addConnect=function(b){this.endShape=b;var a=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.FROM_CELL);this.addFromCell(b,a)};return d}();f.mxVsdxConnect=p;p.__class="com.mxgraph.io.vsdx.mxVsdxConnect"})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+function(){return this.targetToPart};d.prototype.addConnect=function(b){this.endShape=b;var a=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.FROM_CELL);this.addFromCell(b,a)};return d}();f.mxVsdxConnect=p;p.__class="com.mxgraph.io.vsdx.mxVsdxConnect"})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
(function(e){(function(e){(function(e){(function(e){var f=function(){function d(){}d.SET_VALUES_$LI$=function(){null==d.SET_VALUES&&(d.SET_VALUES=["a","b"]);return d.SET_VALUES};d.MY_SET_$LI$=function(){null==d.MY_SET&&(d.MY_SET=d.SET_VALUES_$LI$().slice(0).slice(0));return d.MY_SET};return d}();f.ANGLE="Angle";f.ARC_TO="ArcTo";f.BACKGROUND="Background";f.BACK_PAGE="BackPage";f.BEGIN_ARROW="BeginArrow";f.BEGIN_ARROW_SIZE="BeginArrowSize";f.BEGIN_X="BeginX";f.BEGIN_Y="BeginY";f.BOTTOM_MARGIN="BottomMargin";
f.BULLET="Bullet";f.CASE="Case";f.CHARACTER="Character";f.COLOR="Color";f.COLOR_ENTRY="ColorEntry";f.COLORS="Colors";f.COLOR_TRANS="ColorTrans";f.CONNECT="Connect";f.CONNECTS="Connects";f.CONNECTION="Connection";f.CONTROL="Control";f.DELETED="Del";f.DOCUMENT_SHEET="DocumentSheet";f.ELLIPSE="Ellipse";f.ELLIPTICAL_ARC_TO="EllipticalArcTo";f.END_ARROW="EndArrow";f.END_ARROW_SIZE="EndArrowSize";f.END_X="EndX";f.END_Y="EndY";f.FACE_NAME="FaceName";f.FACE_NAMES="FaceNames";f.FALSE="0";f.FILL="Fill";f.FILL_BKGND=
"FillBkgnd";f.FILL_BKGND_TRANS="FillBkgndTrans";f.FILL_FOREGND="FillForegnd";f.FILL_FOREGND_TRANS="FillForegndTrans";f.FILL_PATTERN="FillPattern";f.FILL_STYLE="FillStyle";f.FILL_GRADIENT_ENABLED="FillGradientEnabled";f.FLAGS="Flags";f.FLIP_X="FlipX";f.FLIP_Y="FlipY";f.FONT="Font";f.FONT_NAME="Name";f.FOREIGN="Foreign";f.FROM_CELL="FromCell";f.FROM_SHEET="FromSheet";f.GEOM="Geom";f.HEIGHT="Height";f.HORIZONTAL_ALIGN="HorzAlign";f.ID="ID";f.INDENT_FIRST="IndFirst";f.INDENT_LEFT="IndLeft";f.INDENT_RIGHT=
@@ -1171,28 +1171,28 @@ f.BULLET="Bullet";f.CASE="Case";f.CHARACTER="Character";f.COLOR="Color";f.COLOR_
"PageWidth";f.PAGES="Pages";f.PARAGRAPH="Paragraph";f.PIN_X="PinX";f.PIN_Y="PinY";f.POS="Pos";f.RGB="RGB";f.RIGHT_MARGIN="RightMargin";f.ROUNDING="Rounding";f.RTL_TEXT="RTLText";f.SIZE="Size";f.SHAPE="Shape";f.SHAPES="Shapes";f.SHAPE_SHDW_SHOW="ShapeShdwShow";f.SHDW_PATTERN="ShdwPattern";f.SPACE_AFTER="SpAfter";f.SPACE_BEFORE="SpBefore";f.SPACE_LINE="SpLine";f.STRIKETHRU="Strikethru";f.STYLE="Style";f.STYLE_SHEET="StyleSheet";f.STYLE_SHEETS="StyleSheets";f.TEXT="Text";f.TEXT_BKGND="TextBkgnd";f.TEXT_BLOCK=
"TextBlock";f.TEXT_STYLE="TextStyle";f.TO_PART="ToPart";f.TO_SHEET="ToSheet";f.TOP_MARGIN="TopMargin";f.TRUE="1";f.TXT_ANGLE="TxtAngle";f.TXT_HEIGHT="TxtHeight";f.TXT_LOC_PIN_X="TxtLocPinX";f.TXT_LOC_PIN_Y="TxtLocPinY";f.TXT_PIN_X="TxtPinX";f.TXT_PIN_Y="TxtPinY";f.TXT_WIDTH="TxtWidth";f.TYPE="Type";f.TYPE_GROUP="Group";f.TYPE_SHAPE="Shape";f.UNIQUE_ID="UniqueID";f.VERTICAL_ALIGN="VerticalAlign";f.WIDTH="Width";f.X_CON="XCon";f.X_DYN="XDyn";f.X="X";f.Y_CON="YCon";f.Y_DYN="YDyn";f.Y="Y";f.HIDE_TEXT=
"HideText";f.VSDX_ID="vsdxID";f.CONNECT_TO_PART_WHOLE_SHAPE=3;e.mxVsdxConstants=f;f.__class="com.mxgraph.io.vsdx.mxVsdxConstants"})(e.vsdx||(e.vsdx={}))})(e.io||(e.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(b,a){this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1;this.rows=null;if((null!=b&&1==b.nodeType||null===b)&&(null!=a&&a instanceof Array||null===a))Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),null!=a&&this.index<a.length&&this.inheritGeo(a[this.index]),
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(b,a){this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1;this.rows=null;if((null!=b&&1==b.nodeType||null===b)&&(null!=a&&a instanceof Array||null===a))Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),null!=a&&this.index<a.length&&this.inheritGeo(a[this.index]),
this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}d.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))||0}catch(a){return 0}};d.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType||
null===b)return this.getIndex$org_w3c_dom_Element(b);if(void 0===b)return this.getIndex$();throw Error("invalid overload");};d.prototype.processGeoElem=function(b){var a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Cell");b=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Row");if(null==this.rows){this.rows=[];for(var c=0;c<b.length;c++)this.rows.push(null)}for(c=0;c<a.length;c++){var h=a[c],n=h.getAttribute("N"),h=h.getAttribute("V");switch(n){case "NoFill":this.noFill=
function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h);break;case "NoLine":this.noLine=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h);break;case "NoShow":this.noShow=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h);break;case "NoSnap":this.noSnap=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h);break;case "NoQuickDrag":this.noQuickDrag=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",h)}}a=this.rows.length;c=!1;for(n=0;n<b.length;n++)h=e.mxgraph.io.vsdx.geometry.RowFactory.getRowObj(b[n],
this.rows),h.getIndex()>a?(this.rows.push(h),c=!0):this.rows[h.getIndex()-1]=h;c&&function(a,b){b.compare?a.sort(function(a,c){return b.compare(a,c)}):a.sort(b)}(this.rows,new d.mxVsdxGeometry$0(this))};d.prototype.inheritGeo=function(b){this.noFill=b.noFill;this.noLine=b.noLine;this.noShow=b.noShow;this.noSnap=b.noSnap;this.noQuickDrag=b.noQuickDrag;var a=this.rows=[];a.push.apply(a,b.rows)};d.prototype.getIndex$=function(){return this.index};d.prototype.isNoFill=function(){return this.noFill};d.prototype.isNoLine=
function(){return this.noLine};d.prototype.isNoShow=function(){return this.noShow};d.prototype.isNoSnap=function(){return this.noSnap};d.prototype.isNoQuickDrag=function(){return this.noQuickDrag};d.prototype.getRows=function(){return this.rows};d.prototype.getPathXML=function(b,a){if(this.noShow)return"";for(var c="",h=0;h<this.rows.length;h++)var n=this.rows[h],c=c.concat(null!=n?n.handle(b,a):"");return c};return d}();f.mxVsdxGeometry=p;p.__class="com.mxgraph.io.vsdx.mxVsdxGeometry";(function(d){var b=
-function(){function a(a){this.__parent=a}a.prototype.compare=function(a,b){var c=null!=a?a.getIndex():0,h=null!=b?b.getIndex():0;return c-h};return a}();d.mxVsdxGeometry$0=b;b.__interfaces=["java.util.Comparator"]})(p=f.mxVsdxGeometry||(f.mxVsdxGeometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(b){this.geomList=[];this.parentGeomList=null;this.sortNeeded=!1;if(null!=b){this.parentGeomList=b.geomList;var a=this.geomList;a.push.apply(a,b.geomList)}}d.prototype.addGeometry=function(b){b=new e.mxgraph.io.vsdx.mxVsdxGeometry(b,this.parentGeomList);b.getIndex()<this.geomList.length?this.geomList[b.getIndex()]=b:(this.geomList.push(b),this.sortNeeded=!0)};d.prototype.sort=function(){this.sortNeeded&&(function(b,a){a.compare?
+function(){function a(a){this.__parent=a}a.prototype.compare=function(a,b){var c=null!=a?a.getIndex():0,h=null!=b?b.getIndex():0;return c-h};return a}();d.mxVsdxGeometry$0=b;b.__interfaces=["java.util.Comparator"]})(p=f.mxVsdxGeometry||(f.mxVsdxGeometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(b){this.geomList=[];this.parentGeomList=null;this.sortNeeded=!1;if(null!=b){this.parentGeomList=b.geomList;var a=this.geomList;a.push.apply(a,b.geomList)}}d.prototype.addGeometry=function(b){b=new e.mxgraph.io.vsdx.mxVsdxGeometry(b,this.parentGeomList);b.getIndex()<this.geomList.length?this.geomList[b.getIndex()]=b:(this.geomList.push(b),this.sortNeeded=!0)};d.prototype.sort=function(){this.sortNeeded&&(function(b,a){a.compare?
b.sort(function(b,h){return a.compare(b,h)}):b.sort(a)}(this.geomList,new d.mxVsdxGeometryList$0(this)),this.sortNeeded=!1)};d.prototype.isNoShow=function(){for(var b=0;b<this.geomList.length;b++)if(!this.geomList[b].isNoShow())return!1;return!0};d.prototype.isNoFill=function(){for(var b=0;b<this.geomList.length;b++){var a=this.geomList[b];if(!a.isNoShow()&&!a.isNoFill())return!1}return!0};d.prototype.isNoLine=function(){for(var b=0;b<this.geomList.length;b++){var a=this.geomList[b];if(!a.isNoShow()&&
-!a.isNoLine())return!1}return!0};d.prototype.hasGeom=function(){return 0!=this.geomList.length};d.prototype.getGeoCount=function(){for(var b=0,a=0;a<this.geomList.length;a++)this.geomList[a].isNoShow()||b++;return b};d.prototype.rotatedPoint=function(b,a,c){var h=b.y*a+b.x*c;b.x=b.x*a-b.y*c;b.y=h};d.prototype.getRoutingPoints=function(b,a,c){this.sort();b=[];b.push(a.clone());for(var h=0,n=0,l=0;l<this.geomList.length;l++){var d=this.geomList[l];if(!d.isNoShow())for(var d=d.getRows(),f=0;f<d.length;f++){var p=
-d[f];if(0==f&&null!=p&&p instanceof e.mxgraph.io.vsdx.geometry.MoveTo)h=null!=p.x?p.x:0,n=null!=p.y?p.y:0;else if(null!=p&&p instanceof e.mxgraph.io.vsdx.geometry.LineTo){var k=null!=p.x?p.x:0,p=null!=p.y?p.y:0,r=new mxPoint(k,p);0!==c&&(c=(360-c)*Math.PI/180,this.rotatedPoint(r,Math.cos(c),Math.sin(c)));k=(r.x-h)*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();k+=a.x;p=(r.y-n)*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$()*-1;p+=a.y;k=Math.round(100*k)/100;p=Math.round(100*p)/100;r.x=
-k;r.y=p;b.push(r)}}}return b};d.prototype.getShapeXML=function(b){var a=new mxPoint(0,0),c={str:'<shape strokewidth="inherit"><foreground>',toString:function(){return this.str}},h=c.str.length,n;n=this.processGeo(b,a,c,-1,!0);n=this.processGeo(b,a,c,n,!1);if(c.str.length===h)return"";this.closePath(c,n);c.str=c.str.concat("</foreground></shape>");return c.str};d.prototype.processGeo=function(b,a,c,h,n){var l=b.getRounding(),d="";0<l&&(d=' rounded="1" arcSize="'+l*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor+
-'" ');for(l=0;l<this.geomList.length;l++){var f=this.geomList[l];if(n!==f.isNoFill()){var p=f.getPathXML(a,b);0!==p.length&&(f=this.getGeoStyle(f),-1===h?c.str=c.str.concat("<path"+d+">"):h!==f&&(this.closePath(c,h),c.str=c.str.concat("<path"+d+">")),c.str=c.str.concat(p),h=f)}}return h};d.prototype.getGeoStyle=function(b){var a=0;b.isNoLine()||b.isNoFill()?b.isNoFill()?b.isNoLine()||(a=3):a=2:a=1;return a};d.prototype.closePath=function(b,a){b.str=b.str.concat("</path>");1===a?b.str=b.str.concat("<fillstroke/>"):
-2===a?b.str=b.str.concat("<fill/>"):3===a&&(b.str=b.str.concat("<stroke/>"))};return d}();f.mxVsdxGeometryList=p;p.__class="com.mxgraph.io.vsdx.mxVsdxGeometryList";(function(d){var b=function(){function a(a){this.__parent=a}a.prototype.compare=function(a,b){return a.getIndex()-b.getIndex()};return a}();d.mxVsdxGeometryList$0=b;b.__interfaces=["java.util.Comparator"]})(p=f.mxVsdxGeometryList||(f.mxVsdxGeometryList={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com=
+!a.isNoLine())return!1}return!0};d.prototype.hasGeom=function(){return 0!=this.geomList.length};d.prototype.getGeoCount=function(){for(var b=0,a=0;a<this.geomList.length;a++)this.geomList[a].isNoShow()||b++;return b};d.prototype.rotatedPoint=function(b,a,c){var h=b.y*a+b.x*c;b.x=b.x*a-b.y*c;b.y=h};d.prototype.getRoutingPoints=function(b,a,c){this.sort();b=[];b.push(a.clone());for(var h=0,n=0,k=0;k<this.geomList.length;k++){var d=this.geomList[k];if(!d.isNoShow())for(var d=d.getRows(),f=0;f<d.length;f++){var p=
+d[f];if(0==f&&null!=p&&p instanceof e.mxgraph.io.vsdx.geometry.MoveTo)h=null!=p.x?p.x:0,n=null!=p.y?p.y:0;else if(null!=p&&p instanceof e.mxgraph.io.vsdx.geometry.LineTo){var l=null!=p.x?p.x:0,p=null!=p.y?p.y:0,r=new mxPoint(l,p);0!==c&&(c=(360-c)*Math.PI/180,this.rotatedPoint(r,Math.cos(c),Math.sin(c)));l=(r.x-h)*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();l+=a.x;p=(r.y-n)*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$()*-1;p+=a.y;l=Math.round(100*l)/100;p=Math.round(100*p)/100;r.x=
+l;r.y=p;b.push(r)}}}return b};d.prototype.getShapeXML=function(b){var a=new mxPoint(0,0),c={str:'<shape strokewidth="inherit"><foreground>',toString:function(){return this.str}},h=c.str.length,n;n=this.processGeo(b,a,c,-1,!0);n=this.processGeo(b,a,c,n,!1);if(c.str.length===h)return"";this.closePath(c,n);c.str=c.str.concat("</foreground></shape>");return c.str};d.prototype.processGeo=function(b,a,c,h,n){var k=b.getRounding(),d="";0<k&&(d=' rounded="1" arcSize="'+k*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor+
+'" ');for(k=0;k<this.geomList.length;k++){var f=this.geomList[k];if(n!==f.isNoFill()){var p=f.getPathXML(a,b);0!==p.length&&(f=this.getGeoStyle(f),-1===h?c.str=c.str.concat("<path"+d+">"):h!==f&&(this.closePath(c,h),c.str=c.str.concat("<path"+d+">")),c.str=c.str.concat(p),h=f)}}return h};d.prototype.getGeoStyle=function(b){var a=0;b.isNoLine()||b.isNoFill()?b.isNoFill()?b.isNoLine()||(a=3):a=2:a=1;return a};d.prototype.closePath=function(b,a){b.str=b.str.concat("</path>");1===a?b.str=b.str.concat("<fillstroke/>"):
+2===a?b.str=b.str.concat("<fill/>"):3===a&&(b.str=b.str.concat("<stroke/>"))};return d}();f.mxVsdxGeometryList=p;p.__class="com.mxgraph.io.vsdx.mxVsdxGeometryList";(function(d){var b=function(){function a(a){this.__parent=a}a.prototype.compare=function(a,b){return a.getIndex()-b.getIndex()};return a}();d.mxVsdxGeometryList$0=b;b.__interfaces=["java.util.Comparator"]})(p=f.mxVsdxGeometryList||(f.mxVsdxGeometryList={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com=
{}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(b,a){this.masterShape=this.Id=null;this.childShapes={};this.master=b;this.Id=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.ID)||"";this.processMasterShapes(a)}d.prototype.processMasterShapes=function(b){for(var a=this.master.firstChild;null!=a;){if(null!=a&&1==a.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a.nodeName,"Rel")){var c=b.getRelationship(a.getAttribute("r:id"),e.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/masters/_rels/masters.xml.rels"),
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(b,a){this.masterShape=this.Id=null;this.childShapes={};this.master=b;this.Id=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.ID)||"";this.processMasterShapes(a)}d.prototype.processMasterShapes=function(b){for(var a=this.master.firstChild;null!=a;){if(null!=a&&1==a.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a.nodeName,"Rel")){var c=b.getRelationship(a.getAttribute("r:id"),e.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/masters/_rels/masters.xml.rels"),
h=c.getAttribute("Target"),c=c.getAttribute("Type"),n=null;null!=c&&function(a,b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}(c,"master")&&(n=b.getXmlDoc(e.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/masters/"+h));if(null!=n)for(h=n.firstChild;null!=h;){if(null!=h&&1==h.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(h.nodeName,"MasterContents")){this.processMasterShape(h,b);break}h=h.nextSibling}}else if(1==a.nodeType&&"PageSheet"==a.nodeName)for(this.pageSheet={},h=
-e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Cell"),c=0;c<h.length;c++)this.pageSheet[h[c].getAttribute("N")]=h[c];a=a.nextSibling}};d.prototype.processMasterShape=function(b,a,c){c||(this.firstLevelShapes=[]);for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.nodeName,"Shapes"))for(var h=b.firstChild;null!=h;){if(null!=h&&1==h.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(h.nodeName,"Shape")){var n=h,l=n.getAttribute("ID"),
-d=new e.mxgraph.io.vsdx.Shape(n,a);this.masterShape=null==this.masterShape?d:this.masterShape;this.childShapes[l]=d;c||this.firstLevelShapes.push(d);this.processMasterShape(n,a,!0)}h=h.nextSibling}else if(null!=b&&1==b.nodeType&&"Connects"==b.nodeName)for(this.connects={},h=b.firstChild;null!=h;)null!=h&&1==h.nodeType&&"Connect"==h.nodeName&&(n=new e.mxgraph.io.vsdx.mxVsdxConnect(h),this.connects[n.getFromSheet()]=n),h=h.nextSibling;b=b.nextSibling}};d.prototype.getMasterShape=function(){return this.masterShape};
+e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Cell"),c=0;c<h.length;c++)this.pageSheet[h[c].getAttribute("N")]=h[c];a=a.nextSibling}};d.prototype.processMasterShape=function(b,a,c){c||(this.firstLevelShapes=[]);for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.nodeName,"Shapes"))for(var h=b.firstChild;null!=h;){if(null!=h&&1==h.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(h.nodeName,"Shape")){var n=h,k=n.getAttribute("ID"),
+d=new e.mxgraph.io.vsdx.Shape(n,a);this.masterShape=null==this.masterShape?d:this.masterShape;this.childShapes[k]=d;c||this.firstLevelShapes.push(d);this.processMasterShape(n,a,!0)}h=h.nextSibling}else if(null!=b&&1==b.nodeType&&"Connects"==b.nodeName)for(this.connects={},h=b.firstChild;null!=h;)null!=h&&1==h.nodeType&&"Connect"==h.nodeName&&(n=new e.mxgraph.io.vsdx.mxVsdxConnect(h),this.connects[n.getFromSheet()]=n),h=h.nextSibling;b=b.nextSibling}};d.prototype.getMasterShape=function(){return this.masterShape};
d.prototype.getSubShape=function(b){var a=this.childShapes;return a[b]?a[b]:null};d.prototype.getNameU=function(){return this.master.getAttribute("NameU")||""};d.prototype.getName=function(){return this.master.getAttribute("Name")||""};d.prototype.getUniqueID=function(){var b="";this.master.hasAttribute("UniqueID")&&(b=this.master.getAttribute("UniqueID"));return b};d.prototype.getId=function(){return this.Id};d.prototype.getMasterElement=function(){return this.master};return d}();f.mxVsdxMaster=
-p;p.__class="com.mxgraph.io.vsdx.mxVsdxMaster"})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(b,a,c){this.pages=this.media=this.xmlDocs=null;this.masters={};this.stylesheets={};this.themes={};this.pm=this.rootElement=null;this.xmlDocs=a;this.media=c;for(b=b.firstChild;null!=b;){if(a=null!=b&&1==b.nodeType)a=b.tagName.toLowerCase(),c=e.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"document",a=a&&a.equals?a.equals(c):a===c;if(a){this.rootElement=b;break}b=b.nextSibling}this.pm=new e.mxgraph.io.vsdx.mxPropertiesManager;
+p;p.__class="com.mxgraph.io.vsdx.mxVsdxMaster"})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(b,a,c){this.pages=this.media=this.xmlDocs=null;this.masters={};this.stylesheets={};this.themes={};this.pm=this.rootElement=null;this.xmlDocs=a;this.media=c;for(b=b.firstChild;null!=b;){if(a=null!=b&&1==b.nodeType)a=b.tagName.toLowerCase(),c=e.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"document",a=a&&a.equals?a.equals(c):a===c;if(a){this.rootElement=b;break}b=b.nextSibling}this.pm=new e.mxgraph.io.vsdx.mxPropertiesManager;
this.pm.initialise(this.rootElement,this);this.initStylesheets();this.initThemes();this.initMasters();this.initPages()}d.prototype.initThemes=function(){if(null!=this.xmlDocs)for(var b=!0,a=1;b;){var c=function(a,b){return a[b]?a[b]:null}(this.xmlDocs,e.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/theme/theme"+a+".xml");if(null!=c){for(c=c.firstChild;null!=c;){if(null!=c&&1==c.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(c.tagName,"a:theme")){c=new e.mxgraph.io.vsdx.mxVsdxTheme(c);0>
c.getThemeIndex()&&c.processTheme();var h=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.themes,c.getThemeIndex());null!=h&&h.isPure()||function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,
value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(this.themes,c.getThemeIndex(),c);break}c=c.nextSibling}a++}else b=!1}};d.prototype.initStylesheets=function(){var b=this.rootElement.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.STYLE_SHEETS);if(0<b.length)for(var b=b.item(0).getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.STYLE_SHEET),a=b.length,c=0;c<a;c++){var h=b.item(c),n=h.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.ID),h=new e.mxgraph.io.vsdx.Style(h,
@@ -1202,11 +1202,11 @@ b&&1==b.nodeType&&function(a,b){return a&&a.equals?a.equals(b):a===b}(b.tagName,
a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})}(b,n.getId(),n);(function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},getValue:function(){return this.value}})})(this.pages,
n.getId(),n)}a=function(a){null==a.entries&&(a.entries=[]);return a.entries}(this.pages);for(c=0;c<a.length;c++)n=a[c].getValue(),h=n.getBackPageId(),null!=h&&(h=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(b,h),n.setBackPage(h))}break}b=b.nextSibling}}};d.prototype.getPages=function(){return this.pages};d.prototype.getThemes=function(){return this.themes};
d.prototype.getRelationship=function(b,a){var c=function(a,b){return a[b]?a[b]:null}(this.xmlDocs,a);if(null==c||null==b||0===b.length)return null;for(var c=c.getElementsByTagName("Relationship"),h=0;h<c.length;h++){var n=c.item(h);if(function(a,b){return a&&a.equals?a.equals(b):a===b}(n.getAttribute("Id"),b))return n}return null};d.prototype.getMaster=function(b){var a=this.masters;return a[b]?a[b]:null};d.prototype.createPage=function(b){return new e.mxgraph.io.vsdx.mxVsdxPage(b,this)};d.prototype.getPropertiesManager=
-function(){return this.pm};d.prototype.setPropertiesManager=function(b){this.pm=b};d.prototype.getMasterShapes=function(){return this.masters};d.prototype.setMasterShapes=function(b){this.masters=b};d.prototype.getStylesheet=function(b){var a=this.stylesheets;return a[b]?a[b]:null};d.prototype.getXmlDoc=function(b){var a=this.xmlDocs;return a[b]?a[b]:null};d.prototype.getMedia=function(b){var a=this.media;return a[b]?a[b]:null};return d}();f.mxVsdxModel=p;p.__class="com.mxgraph.io.vsdx.mxVsdxModel"})(k.vsdx||
-(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(b,a){this.pageName=this.Id=null;this.__isBackground=!1;this.pageSheet=this.backPage=this.backPageId=null;this.shapes={};this.connects={};this.cellElements={};this.model=a;this.pageElement=b;this.layers=[];var c=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.BACKGROUND),h;if(h=null!=c)h=e.mxgraph.io.vsdx.mxVsdxConstants.TRUE,h=c&&c.equals?c.equals(h):c===h;this.__isBackground=h?!0:!1;c=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.BACK_PAGE);
-null!=c&&0<c.length&&(this.backPageId=parseFloat(c));this.Id=parseFloat(b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.ID));this.pageName=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.NAME)||"";c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"PageSheet");if(0<c.length){c=c[0];h=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(c,"Cell");for(var n=0;n<h.length;n++){var d=h[n],f=d.getAttribute("N");this.cellElements[f]=d}c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(c,
-"Section");for(h=0;h<c.length;h++)if(n=c[h],f=n.getAttribute("N"),"Layer"==f)for(f=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(n,"Row"),n=0;n<f.length;n++){for(var d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(f[n],"Cell"),w={},p=0;p<d.length;p++)w[d[p].getAttribute("N")]=d[p].getAttribute("V");this.layers[parseInt(f[n].getAttribute("IX"))]=w}}this.parseNodes(b,a,"pages")}d.prototype.parseNodes=function(b,a,c){for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType){var h=
+function(){return this.pm};d.prototype.setPropertiesManager=function(b){this.pm=b};d.prototype.getMasterShapes=function(){return this.masters};d.prototype.setMasterShapes=function(b){this.masters=b};d.prototype.getStylesheet=function(b){var a=this.stylesheets;return a[b]?a[b]:null};d.prototype.getXmlDoc=function(b){var a=this.xmlDocs;return a[b]?a[b]:null};d.prototype.getMedia=function(b){var a=this.media;return a[b]?a[b]:null};return d}();f.mxVsdxModel=p;p.__class="com.mxgraph.io.vsdx.mxVsdxModel"})(l.vsdx||
+(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(b,a){this.pageName=this.Id=null;this.__isBackground=!1;this.pageSheet=this.backPage=this.backPageId=null;this.shapes={};this.connects={};this.cellElements={};this.model=a;this.pageElement=b;this.layers=[];var c=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.BACKGROUND),h;if(h=null!=c)h=e.mxgraph.io.vsdx.mxVsdxConstants.TRUE,h=c&&c.equals?c.equals(h):c===h;this.__isBackground=h?!0:!1;c=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.BACK_PAGE);
+null!=c&&0<c.length&&(this.backPageId=parseFloat(c));this.Id=parseFloat(b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.ID));this.pageName=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.NAME)||"";c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"PageSheet");if(0<c.length){c=c[0];h=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(c,"Cell");for(var n=0;n<h.length;n++){var k=h[n],d=k.getAttribute("N");this.cellElements[d]=k}c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(c,
+"Section");for(h=0;h<c.length;h++)if(n=c[h],d=n.getAttribute("N"),"Layer"==d)for(d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(n,"Row"),n=0;n<d.length;n++){for(var k=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d[n],"Cell"),f={},p=0;p<k.length;p++)f[k[p].getAttribute("N")]=k[p].getAttribute("V");this.layers[parseInt(d[n].getAttribute("IX"))]=f}}this.parseNodes(b,a,"pages")}d.prototype.parseNodes=function(b,a,c){for(b=b.firstChild;null!=b;){if(null!=b&&1==b.nodeType){var h=
b,n=h.nodeName;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(n,"Rel"))this.resolveRel(h,a,c);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(n,"Shapes"))this.shapes=this.parseShapes(h,null,!1);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(n,"Connects"))for(h=h.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.CONNECT),h=null!=h&&0<h.length?h.item(0):null;null!=h;){if(null!=h&&1==h.nodeType){var n=h,d=new e.mxgraph.io.vsdx.mxVsdxConnect(n),f=d.getFromSheet(),
f=null!=f&&-1<f?function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(this.connects,f):null;null!=f?f.addConnect(n):function(a,b,c){null==a.entries&&(a.entries=[]);for(var h=0;h<a.entries.length;h++)if(null!=a.entries[h].key.equals&&a.entries[h].key.equals(b)||a.entries[h].key===b){a.entries[h].value=c;return}a.entries.push({key:b,value:c,getKey:function(){return this.key},
getValue:function(){return this.value}})}(this.connects,d.getFromSheet(),d)}h=h.nextSibling}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(n,"PageSheet")&&(this.pageSheet=h)}b=b.nextSibling}};d.prototype.resolveRel=function(b,a,c){c=a.getRelationship(b.getAttribute("r:id"),e.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/pages/_rels/"+c+".xml.rels");b=c.getAttribute("Target");c=c.getAttribute("Type");if(function(a,b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}((new String(c)).toString(),
@@ -1217,8 +1217,8 @@ d.prototype.isEdge=function(b){if(null!=b&&(b=b.childNodes,null!=b))for(b=b.item
d.prototype.getPageDimensions=function(){var b=0,a=0,c=function(a,b){return a[b]?a[b]:null}(this.cellElements,"PageHeight"),h=function(a,b){return a[b]?a[b]:null}(this.cellElements,"PageWidth");null!=c&&(b=parseFloat(c.getAttribute("V"))*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),b=Math.round(100*b)/100);null!=h&&(a=parseFloat(h.getAttribute("V"))*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),a=Math.round(100*a)/100);return new mxPoint(a,b)};d.prototype.getDrawingScale=function(){var b;
b=this.cellElements;b=b.DrawingScale?b.DrawingScale:null;return null!=b?parseFloat(b.getAttribute("V"))*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$():1};d.prototype.getPageScale=function(){var b;b=this.cellElements;b=b.PageScale?b.PageScale:null;return null!=b?parseFloat(b.getAttribute("V"))*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$():1};d.prototype.getCellValue=function(b){var a=this.cellElements;b=a[b]?a[b]:null;return null!=b?b.getAttribute("V")||"":null};d.prototype.getCellIntValue=
function(b,a){var c=this.getCellValue(b);return null!=c?parseInt(c):a};d.prototype.getId=function(){return this.Id};d.prototype.getPageName=function(){return this.pageName};d.prototype.getShapes=function(){return this.shapes};d.prototype.getLayers=function(){return this.layers};d.prototype.getConnects=function(){return this.connects};d.prototype.isBackground=function(){return this.__isBackground};d.prototype.getBackPageId=function(){return this.backPageId};d.prototype.setBackPage=function(b){this.backPage=
-b};d.prototype.getBackPage=function(){return this.backPage};return d}();f.mxVsdxPage=p;p.__class="com.mxgraph.io.vsdx.mxVsdxPage"})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(b){this.themeIndex=-1;this.themeVariant=0;this.baseColors={};this.variantsColors=function(a){var b=function(a){if(0!=a.length){for(var c=[],h=0;h<a[0];h++)c.push(b(a.slice(1)));return c}};return b(a)}([4,7]);this.isMonotoneVariant=Array(4);this.defaultClr=new e.mxgraph.io.vsdx.theme.Color(255,255,255);this.defaultLineClr=new e.mxgraph.io.vsdx.theme.Color(0,0,0);this.defaultLineStyle=new e.mxgraph.io.vsdx.theme.LineStyle;
+b};d.prototype.getBackPage=function(){return this.backPage};return d}();f.mxVsdxPage=p;p.__class="com.mxgraph.io.vsdx.mxVsdxPage"})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(b){this.themeIndex=-1;this.themeVariant=0;this.baseColors={};this.variantsColors=function(a){var b=function(a){if(0!=a.length){for(var c=[],h=0;h<a[0];h++)c.push(b(a.slice(1)));return c}};return b(a)}([4,7]);this.isMonotoneVariant=Array(4);this.defaultClr=new e.mxgraph.io.vsdx.theme.Color(255,255,255);this.defaultLineClr=new e.mxgraph.io.vsdx.theme.Color(0,0,0);this.defaultLineStyle=new e.mxgraph.io.vsdx.theme.LineStyle;
this.fillStyles=[];this.connFillStyles=[];this.lineStyles=[];this.connLineStyles=[];this.lineStylesExt=[];this.connLineStylesExt=[];this.connFontColors=[];this.connFontStyles=[];this.fontColors=[];this.fontStyles=[];this.variantEmbellishment=[0,0,0,0];this.variantFillIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var c=[],h=0;h<a[0];h++)c.push(b(a.slice(1)));return c};return b(a)}([4,4]);this.variantLineIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var c=[],h=0;h<a[0];h++)c.push(b(a.slice(1)));
return c};return b(a)}([4,4]);this.variantEffectIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var c=[],h=0;h<a[0];h++)c.push(b(a.slice(1)));return c};return b(a)}([4,4]);this.variantFontIdx=function(a){var b=function(a){if(0==a.length)return 0;for(var c=[],h=0;h<a[0];h++)c.push(b(a.slice(1)));return c};return b(a)}([4,4]);this.isProcessed=!1;this.__isPure=!0;this.name=this.bkgndColor=this.theme=null;this.theme=b;this.name=b.getAttribute("name")||"";b=function(a,b){return a[b]?a[b]:
null}(d.themesIds_$LI$(),this.name);null!=b&&(this.themeIndex=b)}d.__static_initialize=function(){d.__static_initialized||(d.__static_initialized=!0,d.__static_initializer_0(),d.__static_initializer_1())};d.themesIds_$LI$=function(){d.__static_initialize();null==d.themesIds&&(d.themesIds={});return d.themesIds};d.__static_initializer_0=function(){d.themesIds_$LI$().Office=33;d.themesIds_$LI$().Linear=34;d.themesIds_$LI$().Zephyr=35;d.themesIds_$LI$().Integral=36;d.themesIds_$LI$().Simple=37;d.themesIds_$LI$().Whisp=
@@ -1234,8 +1234,8 @@ a.equals(b):a===b}(h,"a:fontScheme")?(function(a,b){return a&&a.equals?a.equals(
n)}this.isProcessed=!0}};d.prototype.processExtras=function(b){b=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);for(var a=0;a<b.length;a++){var c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(b[a]);switch(c.nodeName){case "vt:fmtConnectorScheme":var h;h=this.name;var n=c.getAttribute("name");h=h&&h.equals?h.equals(n):h===n;h||(this.__isPure=!1);c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(c);for(h=0;h<c.length;h++)switch(n=c[h],n.nodeName){case "a:fillStyleLst":for(var n=
e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(n),d=0;d<n.length;d++)this.connFillStyles.push(e.mxgraph.io.vsdx.theme.FillStyleFactory.getFillStyle(n[d]));break;case "a:lnStyleLst":for(n=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(n),d=0;d<n.length;d++)this.connLineStyles.push(new e.mxgraph.io.vsdx.theme.LineStyle(n[d]))}break;case "vt:lineStyles":c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(c);for(h=0;h<c.length;h++)switch(n=c[h],n.nodeName){case "vt:fmtConnectorSchemeLineStyles":n=
e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(n);for(d=0;d<n.length;d++)this.connLineStylesExt.push(new e.mxgraph.io.vsdx.theme.LineStyleExt(n[d]));break;case "vt:fmtSchemeLineStyles":for(n=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(n),d=0;d<n.length;d++)this.lineStylesExt.push(new e.mxgraph.io.vsdx.theme.LineStyleExt(n[d]))}break;case "vt:fontStylesGroup":c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(c);for(h=0;h<c.length;h++)switch(n=c[h],n.nodeName){case "vt:connectorFontStyles":this.fillFontStyles(n,
-this.connFontColors,this.connFontStyles);break;case "vt:fontStyles":this.fillFontStyles(n,this.fontColors,this.fontStyles)}break;case "vt:variationStyleSchemeLst":for(c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(c),n=h=0;n<c.length;n++){d=c[n];this.variantEmbellishment[h]=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(d,"embellishment");for(var d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d),f=0,w=0;w<d.length;w++){var p=d[w];this.variantFillIdx[h][f]=
-e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(p,"fillIdx");this.variantLineIdx[h][f]=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(p,"lineIdx");this.variantEffectIdx[h][f]=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(p,"effectIdx");this.variantFontIdx[h][f]=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(p,"fontIdx");f++}h++}}}};d.prototype.fillFontStyles=function(b,a,c){b=
+this.connFontColors,this.connFontStyles);break;case "vt:fontStyles":this.fillFontStyles(n,this.fontColors,this.fontStyles)}break;case "vt:variationStyleSchemeLst":for(c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(c),n=h=0;n<c.length;n++){d=c[n];this.variantEmbellishment[h]=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(d,"embellishment");for(var d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(d),f=0,p=0;p<d.length;p++){var l=d[p];this.variantFillIdx[h][f]=
+e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(l,"fillIdx");this.variantLineIdx[h][f]=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(l,"lineIdx");this.variantEffectIdx[h][f]=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(l,"effectIdx");this.variantFontIdx[h][f]=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(l,"fontIdx");f++}h++}}}};d.prototype.fillFontStyles=function(b,a,c){b=
e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);for(var h=0;h<b.length;h++){var n=b[h];c.push(e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(n,"style"));n=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(n);null!=n&&a.push(e.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(n)))}};d.prototype.processFormats=function(b){b=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);for(var a=0;a<
b.length;a++){var c=b[a];switch(c.nodeName){case "a:fillStyleLst":for(var c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(c),h=0;h<c.length;h++)this.fillStyles.push(e.mxgraph.io.vsdx.theme.FillStyleFactory.getFillStyle(c[h]));break;case "a:lnStyleLst":for(c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(c),h=0;h<c.length;h++)this.lineStyles.push(new e.mxgraph.io.vsdx.theme.LineStyle(c[h]))}}};d.prototype.processFonts=function(b){};d.prototype.processColors=function(b){for(b=b.firstChild;null!=
b;){if(null!=b&&1==b.nodeType){var a=b,c=a.nodeName,a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),h;h=(h=c)&&h.equals?h.equals("a:extLst"):"a:extLst"===h;h?3===a.length&&(0>this.themeIndex&&this.extractThemeIndex(a[0]),this.addBkgndColor(a[1]),this.addVariantColors(a[2])):(c=c.substring(2),0<a.length&&this.addBasicColor(c,a[0]))}b=b.nextSibling}};d.prototype.addVariantColors=function(b){b=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(b);if(null!=b){b=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(b);
@@ -1259,68 +1259,68 @@ Array||null===a)&&(null!=c&&c instanceof Array||null===c))return this.getLineDas
this.lineStylesExt,this.lineStyles)};d.prototype.getConnLineDashPattern=function(b){return this.getLineDashPattern$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList$java_util_ArrayList(b,this.connLineStylesExt,this.connLineStyles)};d.prototype.getArrowSize=function(b,a,c,h){c=this.getLineStyleExt(b.getQuickStyleLineMatrix(),c);if(null!=c)return a?c.getStartSize():c.getEndSize();b=this.getLineStyle(b.getQuickStyleLineMatrix(),h);return null!=b?a?b.getStartSize():b.getEndSize():4};d.prototype.getStartSize=
function(b){return this.getArrowSize(b,!0,this.lineStylesExt,this.lineStyles)};d.prototype.getConnStartSize=function(b){return this.getArrowSize(b,!0,this.connLineStylesExt,this.connLineStyles)};d.prototype.getEndSize=function(b){return this.getArrowSize(b,!1,this.lineStylesExt,this.lineStyles)};d.prototype.getConnEndSize=function(b){return this.getArrowSize(b,!1,this.connLineStylesExt,this.connLineStyles)};d.prototype.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList=function(b,
a){this.processTheme();var c=b.getQuickStyleFontColor(),h=null;switch(b.getQuickStyleFontMatrix()){case 1:case 2:case 3:case 4:case 5:case 6:h=a[b.getQuickStyleFontMatrix()-1];break;case 100:case 101:case 102:case 103:this.isMonotoneVariant[this.themeVariant]&&(c=100),h=b.getQuickStyleFontMatrix()-100,a!==this.fontColors?(h=this.baseColors,h=h.dk1?h.dk1:null):h=a[this.variantFontIdx[this.themeVariant][h]-1]}c=null!=h?h.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(c,this):this.getStyleColor(c);if(0<
-(b.getQuickStyleVariation()&2)){var n=this.getStyleColor(8).toHsl(),d=c.toHsl(),h=this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),f=h.toHsl(),w=this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),p=w.toHsl();.1666<=Math.abs(n.getLum()-d.getLum())||(.7292>=n.getLum()?c=new e.mxgraph.io.vsdx.theme.Color(255,255,255):(p=Math.abs(n.getLum()-p.getLum()),f=Math.abs(n.getLum()-f.getLum()),n=Math.abs(n.getLum()-d.getLum()),n=Math.max(p,f,n),n==p?c=w:n==f&&(c=h)))}return c};d.prototype.getFontColor=
+(b.getQuickStyleVariation()&2)){var n=this.getStyleColor(8).toHsl(),d=c.toHsl(),h=this.getFillColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),f=h.toHsl(),p=this.getLineColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b),l=p.toHsl();.1666<=Math.abs(n.getLum()-d.getLum())||(.7292>=n.getLum()?c=new e.mxgraph.io.vsdx.theme.Color(255,255,255):(l=Math.abs(n.getLum()-l.getLum()),f=Math.abs(n.getLum()-f.getLum()),n=Math.abs(n.getLum()-d.getLum()),n=Math.max(l,f,n),n==l?c=p:n==f&&(c=h)))}return c};d.prototype.getFontColor=
function(b,a){if((null!=b&&b instanceof e.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&(null!=a&&a instanceof Array||null===a))return this.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,a);if((null!=b&&b instanceof e.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&void 0===a)return this.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals(b);throw Error("invalid overload");};d.prototype.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals=function(b){return this.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,
this.fontColors)};d.prototype.getConnFontColor=function(b){return this.getFontColor$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,this.connFontColors)};d.prototype.getArrowType=function(b,a,c,h){c=this.getLineStyleExt(b.getQuickStyleLineMatrix(),c);if(null!=c)return a?c.getStart():c.getEnd();b=this.getLineStyle(b.getQuickStyleLineMatrix(),h);return null!=b?a?b.getStart():b.getEnd():0};d.prototype.getEdgeMarker=function(b,a){return this.getArrowType(a,b,this.lineStylesExt,this.lineStyles)};
d.prototype.getConnEdgeMarker=function(b,a){return this.getArrowType(a,b,this.connLineStylesExt,this.connLineStyles)};d.prototype.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList=function(b,a){var c=this.getLineStyle(b.getQuickStyleLineMatrix(),a);return null!=c?c.getLineWidth():0};d.prototype.getLineWidth=function(b,a){if((null!=b&&b instanceof e.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&(null!=a&&a instanceof Array||null===a))return this.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,
a);if((null!=b&&b instanceof e.mxgraph.io.vsdx.theme.QuickStyleVals||null===b)&&void 0===a)return this.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals(b);throw Error("invalid overload");};d.prototype.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals=function(b){return this.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,this.lineStyles)};d.prototype.getConnLineWidth=function(b){return this.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals$java_util_ArrayList(b,
-this.connLineStyles)};return d}();p.__static_initialized=!1;f.mxVsdxTheme=p;p.__class="com.mxgraph.io.vsdx.mxVsdxTheme"})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(){}d.conversionFactor_$LI$=function(){null==d.conversionFactor&&(d.conversionFactor=d.screenCoordinatesPerCm*d.CENTIMETERS_PER_INCHES);return d.conversionFactor};d.getDirectChildNamedElements=function(b,a){for(var c=[],h=b.firstChild;null!=h;h=h.nextSibling){var n;if(n=null!=h&&1==h.nodeType){n=a;var d=h.nodeName;n=n&&n.equals?n.equals(d):n===d}n&&c.push(h)}return c};d.getDirectChildElements=function(b){var a=[];for(b=
+this.connLineStyles)};return d}();p.__static_initialized=!1;f.mxVsdxTheme=p;p.__class="com.mxgraph.io.vsdx.mxVsdxTheme"})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(){}d.conversionFactor_$LI$=function(){null==d.conversionFactor&&(d.conversionFactor=d.screenCoordinatesPerCm*d.CENTIMETERS_PER_INCHES);return d.conversionFactor};d.getDirectChildNamedElements=function(b,a){for(var c=[],h=b.firstChild;null!=h;h=h.nextSibling){var n;if(n=null!=h&&1==h.nodeType){n=a;var d=h.nodeName;n=n&&n.equals?n.equals(d):n===d}n&&c.push(h)}return c};d.getDirectChildElements=function(b){var a=[];for(b=
b.firstChild;null!=b;b=b.nextSibling)null!=b&&1==b.nodeType&&a.push(b);return a};d.getDirectFirstChildElement=function(b){for(b=b.firstChild;null!=b;b=b.nextSibling)if(null!=b&&1==b.nodeType)return b;return null};d.getIntAttr$org_w3c_dom_Element$java_lang_String$int=function(b,a,c){try{var h=b.getAttribute(a);if(null!=h)return parseInt(h)}catch(n){}return c};d.getIntAttr=function(b,a,c){if((null==b||1!=b.nodeType)&&null!==b||"string"!==typeof a&&null!==a||"number"!==typeof c&&null!==c){if((null==
b||1!=b.nodeType)&&null!==b||"string"!==typeof a&&null!==a||void 0!==c)throw Error("invalid overload");return e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(b,a)}return e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String$int(b,a,c)};d.getIntAttr$org_w3c_dom_Element$java_lang_String=function(b,a){return d.getIntAttr$org_w3c_dom_Element$java_lang_String$int(b,a,0)};d.getStyleString=function(b,a){for(var c="",h=function(a){var b=0;return{next:function(){return b<
a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){return Object.keys(a).map(function(b){return a[b]})}(b)),n=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(Object.keys(b));n.hasNext();){var d=n.next(),e=h.next();if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(d,mxConstants.STYLE_SHAPE)||!function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(b[d]?b[d]:null,"image")&&!function(a,b,c){void 0===
-c&&(c=0);return a.substr(c,b.length)===b}(b[d]?b[d]:null,"rounded="))try{c=c+d+a}catch(w){console.error("mxVsdxUtils.getStyleString,"+w+",style.length="+c.length+",key.length="+d.length+",asig.length="+a.length)}c=c+e+";"}return c};d.surroundByTags=function(b,a){return"<"+a+">"+b+"</"+a+">"};d.htmlEntities=function(b){return b.replace(RegExp("&","g"),"&amp;").replace(RegExp('"',"g"),"&quot;").replace(RegExp("'","g"),"&prime;").replace(RegExp("<","g"),"&lt;").replace(RegExp(">","g"),"&gt;")};d.toInitialCapital=
+c&&(c=0);return a.substr(c,b.length)===b}(b[d]?b[d]:null,"rounded="))try{c=c+d+a}catch(y){console.error("mxVsdxUtils.getStyleString,"+y+",style.length="+c.length+",key.length="+d.length+",asig.length="+a.length)}c=c+e+";"}return c};d.surroundByTags=function(b,a){return"<"+a+">"+b+"</"+a+">"};d.htmlEntities=function(b){return b.replace(RegExp("&","g"),"&amp;").replace(RegExp('"',"g"),"&quot;").replace(RegExp("'","g"),"&prime;").replace(RegExp("<","g"),"&lt;").replace(RegExp(">","g"),"&gt;")};d.toInitialCapital=
function(b){b=b.split(" ");for(var a="",c=0;c<b.length;c++)var h=b[c],n=h.substring(0,1),h=h.substring(1),n=n.toUpperCase(),a=a+(n+h);return a.substring(0,a.length)};d.toSmallCaps=function(b,a){var c="",h=c;if(a&&a.equals?a.equals(h):a===h)c=b;else for(var h=b.split(""),n=0;n<h.length;n++){var d=h[n];(null==d.charCodeAt?d:d.charCodeAt(0))>=(null=="a".charCodeAt?"a":97)&&(null==d.charCodeAt?d:d.charCodeAt(0))<=(null=="z".charCodeAt?"z":122)?(d=(new String(d)).toString(),d=d.toUpperCase(),c+='<font style="font-size:'+
-parseFloat(a)/1.28+'px">'+d+"</font>"):c+=d}return c};d.getStyleMap=function(b,a){for(var c={},h=b.split(";"),n=0;n<h.length;n++){var d=h[n],e=d.indexOf(a),f=d.substring(0,e),d=d.substring(e+1);c[f]=d}return c};d.isInsideTriangle=function(b,a,c,h,d,e,f,w){var n=(b-d)*(h-e)-(c-d)*(a-e);d=(b-f)*(e-w)-(d-f)*(a-w);b=(b-c)*(w-h)-(f-c)*(a-h);return!((0>n||0>d||0>b)&&(0<n||0<d||0<b))};return d}();p.screenCoordinatesPerCm=40;p.CENTIMETERS_PER_INCHES=2.54;f.mxVsdxUtils=p;p.__class="com.mxgraph.io.vsdx.mxVsdxUtils"})(k.vsdx||
-(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+parseFloat(a)/1.28+'px">'+d+"</font>"):c+=d}return c};d.getStyleMap=function(b,a){for(var c={},h=b.split(";"),d=0;d<h.length;d++){var k=h[d],e=k.indexOf(a),f=k.substring(0,e),k=k.substring(e+1);c[f]=k}return c};d.isInsideTriangle=function(b,a,c,h,d,k,e,f){var n=(b-d)*(h-k)-(c-d)*(a-k);d=(b-e)*(k-f)-(d-e)*(a-f);b=(b-c)*(f-h)-(e-c)*(a-h);return!((0>n||0>d||0>b)&&(0<n||0<d||0<b))};return d}();p.screenCoordinatesPerCm=40;p.CENTIMETERS_PER_INCHES=2.54;f.mxVsdxUtils=p;p.__class="com.mxgraph.io.vsdx.mxVsdxUtils"})(l.vsdx||
+(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
(function(e){(function(e){(function(e){(function(e){var f=function(){function d(b,a,c,h){this.paraIndex=this.fields=this.charIndices=this.values=null;this.values=[];this.values.push(b);this.charIndices=[];this.charIndices.push(a);this.fields=[];this.fields.push(h);this.paraIndex=c}d.prototype.addText=function(b,a,c){this.values.push(b);this.charIndices.push(a);this.fields.push(c)};d.prototype.getParagraphIndex=function(){return this.paraIndex};d.prototype.getValue=function(b){return this.values[b]};
d.prototype.numValues=function(){return this.values.length};d.prototype.getChar=function(b){return this.charIndices[b]};d.prototype.getField=function(b){return this.fields[b]};return d}();e.Paragraph=f;f.__class="com.mxgraph.io.vsdx.Paragraph"})(e.vsdx||(e.vsdx={}))})(e.io||(e.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var p=function(){function d(b){this.elem=b}d.prototype.getIndexedCell=function(b,a){for(var c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(this.elem,"Row"),h=0;h<c.length;h++){var d=c[h],l=d.getAttribute("IX");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(l,b)||null==b)for(var d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),f=0;f<d.length;f++){var w=d[f],l=w.getAttribute("N");if(function(a,b){return a&&
-a.equals?a.equals(b):a===b}(l,a))return w}}return null};return d}();f.Section=p;p.__class="com.mxgraph.io.vsdx.Section"})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var p=function(){function d(b){this.elem=b}d.prototype.getIndexedCell=function(b,a){for(var c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(this.elem,"Row"),h=0;h<c.length;h++){var d=c[h],k=d.getAttribute("IX");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(k,b)||null==b)for(var d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),f=0;f<d.length;f++){var p=d[f],k=p.getAttribute("N");if(function(a,b){return a&&
+a.equals?a.equals(b):a===b}(k,a))return p}}return null};return d}();f.Section=p;p.__class="com.mxgraph.io.vsdx.Section"})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
(function(e){(function(e){(function(e){(function(e){var f=function(){function d(b,a){this.pageNumber=0;this.pageNumber=b;this.Id=a}d.prototype.getId=function(){return this.Id};d.prototype.getPageNumber=function(){return this.pageNumber};d.prototype.equals=function(b){return null==b||this.constructor!==b.constructor||this.pageNumber!==b.pageNumber||this.Id!==b.Id?!1:!0};d.prototype.hashCode=function(){return 1E5*this.pageNumber+this.Id};return d}();e.ShapePageId=f;f.__class="com.mxgraph.io.vsdx.ShapePageId"})(e.vsdx||
(e.vsdx={}))})(e.io||(e.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(a,b,h){this.blue=this.green=this.red=0;this.gradientClr=null;this.red=a;this.green=b;this.blue=h}b.NONE_$LI$=function(){null==b.NONE&&(b.NONE=new b(-1,-1,-1));return b.NONE};b.prototype.getRed=function(){return this.red};b.prototype.setRed=function(a){this.red=a};b.prototype.getGreen=function(){return this.green};b.prototype.setGreen=function(a){this.green=a};b.prototype.getBlue=function(){return this.blue};
-b.prototype.setBlue=function(a){this.blue=a};b.prototype.toHsl=function(){var a=this.getRed()/255,b=this.getGreen()/255,h=this.getBlue()/255,d=Math.max(a,Math.max(b,h)),l=Math.min(a,Math.min(b,h)),f=(d+l)/2;if(d===l)a=l=0;else var w=d-l,l=.5<f?w/(2-d-l):w/(d+l),a=(d===a?(b-h)/w+(b<h?6:0):d===b?(h-a)/w+2:(a-b)/w+4)/6;return new e.mxgraph.io.vsdx.theme.HSLColor(a,l,f)};b.prototype.toHsv=function(){var a=this.getRed()/255,b=this.getGreen()/255,h=this.getBlue()/255,d=Math.max(a,Math.max(b,h)),l=Math.min(a,
-Math.min(b,h)),f=d-l,a=d===l?0:(d===a?(b-h)/f+(b<h?6:0):d===b?(h-a)/f+2:(a-b)/f+4)/6;return new e.mxgraph.io.vsdx.theme.HSVColor(a,0===d?0:f/d,d)};b.decodeColorHex=function(a){a=parseInt(a,16);return new b(a>>16&255,a>>8&255,a&255)};b.prototype.toHexStr=function(){var a=this.red.toString(16),a=1==a.length?"0"+a:a,b=this.green.toString(16),b=1==b.length?"0"+b:b,h=this.blue.toString(16),h=1==h.length?"0"+h:h;return"#"+a+b+h};b.prototype.getGradientClr=function(){return this.gradientClr};b.prototype.setGradientClr=
-function(a){this.gradientClr=a};return b}();f.Color=d;d.__class="com.mxgraph.io.vsdx.theme.Color"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(){}b.getFillStyle=function(a){var b=null;switch(a.nodeName){case "a:solidFill":b=new e.mxgraph.io.vsdx.theme.SolidFillStyle(e.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a)));break;case "a:noFill":b=new e.mxgraph.io.vsdx.theme.NoFillStyle;break;case "a:gradFill":b=new e.mxgraph.io.vsdx.theme.GradFill(a)}return b};return b}();f.FillStyleFactory=
-d;d.__class="com.mxgraph.io.vsdx.theme.FillStyleFactory"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(a){this.color2=this.color1=null;a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"a:gsLst");0<a.length&&(a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a[0]),2<=a.length&&(this.color2=e.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a[0])),this.color1=e.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a[a.length-
-1]))));null==this.color1&&(this.color1=this.color2=new e.mxgraph.io.vsdx.theme.SrgbClr("FFFFFF"))}b.prototype.applyStyle=function(a,b){var c=this.color1.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(a,b);c.setGradientClr(this.color2.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(a,b));return c};return b}();f.GradFill=d;d.__class="com.mxgraph.io.vsdx.theme.GradFill";d.__interfaces=["com.mxgraph.io.vsdx.theme.FillStyle"]})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph=
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(a,b,h){this.blue=this.green=this.red=0;this.gradientClr=null;this.red=a;this.green=b;this.blue=h}b.NONE_$LI$=function(){null==b.NONE&&(b.NONE=new b(-1,-1,-1));return b.NONE};b.prototype.getRed=function(){return this.red};b.prototype.setRed=function(a){this.red=a};b.prototype.getGreen=function(){return this.green};b.prototype.setGreen=function(a){this.green=a};b.prototype.getBlue=function(){return this.blue};
+b.prototype.setBlue=function(a){this.blue=a};b.prototype.toHsl=function(){var a=this.getRed()/255,b=this.getGreen()/255,h=this.getBlue()/255,d=Math.max(a,Math.max(b,h)),k=Math.min(a,Math.min(b,h)),f=(d+k)/2;if(d===k)a=k=0;else var p=d-k,k=.5<f?p/(2-d-k):p/(d+k),a=(d===a?(b-h)/p+(b<h?6:0):d===b?(h-a)/p+2:(a-b)/p+4)/6;return new e.mxgraph.io.vsdx.theme.HSLColor(a,k,f)};b.prototype.toHsv=function(){var a=this.getRed()/255,b=this.getGreen()/255,h=this.getBlue()/255,d=Math.max(a,Math.max(b,h)),k=Math.min(a,
+Math.min(b,h)),f=d-k,a=d===k?0:(d===a?(b-h)/f+(b<h?6:0):d===b?(h-a)/f+2:(a-b)/f+4)/6;return new e.mxgraph.io.vsdx.theme.HSVColor(a,0===d?0:f/d,d)};b.decodeColorHex=function(a){a=parseInt(a,16);return new b(a>>16&255,a>>8&255,a&255)};b.prototype.toHexStr=function(){var a=this.red.toString(16),a=1==a.length?"0"+a:a,b=this.green.toString(16),b=1==b.length?"0"+b:b,h=this.blue.toString(16),h=1==h.length?"0"+h:h;return"#"+a+b+h};b.prototype.getGradientClr=function(){return this.gradientClr};b.prototype.setGradientClr=
+function(a){this.gradientClr=a};return b}();f.Color=d;d.__class="com.mxgraph.io.vsdx.theme.Color"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(){}b.getFillStyle=function(a){var b=null;switch(a.nodeName){case "a:solidFill":b=new e.mxgraph.io.vsdx.theme.SolidFillStyle(e.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a)));break;case "a:noFill":b=new e.mxgraph.io.vsdx.theme.NoFillStyle;break;case "a:gradFill":b=new e.mxgraph.io.vsdx.theme.GradFill(a)}return b};return b}();f.FillStyleFactory=
+d;d.__class="com.mxgraph.io.vsdx.theme.FillStyleFactory"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(a){this.color2=this.color1=null;a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"a:gsLst");0<a.length&&(a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a[0]),2<=a.length&&(this.color2=e.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a[0])),this.color1=e.mxgraph.io.vsdx.theme.OoxmlColorFactory.getOoxmlColor(e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a[a.length-
+1]))));null==this.color1&&(this.color1=this.color2=new e.mxgraph.io.vsdx.theme.SrgbClr("FFFFFF"))}b.prototype.applyStyle=function(a,b){var c=this.color1.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(a,b);c.setGradientClr(this.color2.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(a,b));return c};return b}();f.GradFill=d;d.__class="com.mxgraph.io.vsdx.theme.GradFill";d.__interfaces=["com.mxgraph.io.vsdx.theme.FillStyle"]})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph=
{}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(a,b,h){this.lum=this.sat=this.hue=0;this.hue=a;this.sat=b;this.lum=h}b.prototype.getHue=function(){return this.hue};b.prototype.setHue=function(a){this.hue=a};b.prototype.getSat=function(){return this.sat};b.prototype.setSat=function(a){this.sat=a};b.prototype.getLum=function(){return this.lum};b.prototype.setLum=function(a){this.lum=a};b.prototype.hue2rgb=function(a,b,h){0>h&&(h+=1);1<h&&--h;return h<1/6?
-a+6*(b-a)*h:.5>h?b:h<2/3?a+(b-a)*(2/3-h)*6:a};b.prototype.toRgb=function(){var a,b,h;h=this.hue;b=this.sat;a=this.lum;if(0===b)a=b=h=a;else{var d=.5>a?a*(1+b):a+b-a*b,l=2*a-d;a=this.hue2rgb(l,d,h+1/3);b=this.hue2rgb(l,d,h);h=this.hue2rgb(l,d,h-1/3)}return new e.mxgraph.io.vsdx.theme.Color(255*a|0,255*b|0,255*h|0)};b.prototype.clamp01=function(a){return Math.min(1,Math.max(0,a))};b.prototype.tint=function(a){this.lum*=1+a/100;this.lum=this.clamp01(this.lum);return this};b.prototype.shade=function(a){this.lum*=
-a/100;this.lum=this.clamp01(this.lum);return this};b.prototype.satMod=function(a){this.sat*=a/100;this.sat=this.clamp01(this.sat);return this};b.prototype.lumMod=function(a){this.lum*=a/100;this.lum=this.clamp01(this.lum);return this};return b}();f.HSLColor=d;d.__class="com.mxgraph.io.vsdx.theme.HSLColor"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(a,b,h){this.h=a;this.s=b;this.v=h}b.prototype.toRgb=function(){var a=6*this.h,b=this.s,h=Math.floor(a),d=a-h,a=this.v*(1-b),l=this.v*(1-d*b),b=this.v*(1-(1-d)*b),h=(h|0)%6;return new e.mxgraph.io.vsdx.theme.Color(255*[this.v,l,a,a,b,this.v][h]|0,255*[b,this.v,this.v,l,a,a][h]|0,255*[a,a,b,this.v,this.v,l][h]|0)};b.prototype.clamp01=function(a){return Math.min(1,Math.max(0,a))};b.prototype.tint=function(a){this.v*=
-1+a/100;this.v=this.clamp01(this.v);return this};b.prototype.shade=function(a){this.v*=a/100;this.v=this.clamp01(this.v);return this};b.prototype.satMod=function(a){this.s*=a/100;this.s=this.clamp01(this.s);return this};b.prototype.lumMod=function(a){this.v*=a/100;this.v=this.clamp01(this.v);return this};b.prototype.hueMod=function(a){this.h*=a/100;this.h=this.clamp01(this.h);return this};return b}();f.HSVColor=d;d.__class="com.mxgraph.io.vsdx.theme.HSVColor"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx=
-{}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(a){this.isLineDashed=!1;this.lineDashPattern=[];this.isMiterJoin=this.isBevelJoin=this.isRoundJoin=!1;if(null!=a&&1==a.nodeType||null===a){Array.prototype.slice.call(arguments);this.lineWidth=0;this.headEndType=this.fillStyle=this.lineComp=this.lineCap=null;this.headEndLen=this.headEndWidth=0;this.tailEndType=null;this.tailEndLen=this.tailEndWidth=0;this.isLineDashed=!1;this.lineDashPattern=[];this.isMiterJoin=
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(a,b,h){this.lum=this.sat=this.hue=0;this.hue=a;this.sat=b;this.lum=h}b.prototype.getHue=function(){return this.hue};b.prototype.setHue=function(a){this.hue=a};b.prototype.getSat=function(){return this.sat};b.prototype.setSat=function(a){this.sat=a};b.prototype.getLum=function(){return this.lum};b.prototype.setLum=function(a){this.lum=a};b.prototype.hue2rgb=function(a,b,h){0>h&&(h+=1);1<h&&--h;return h<1/6?
+a+6*(b-a)*h:.5>h?b:h<2/3?a+(b-a)*(2/3-h)*6:a};b.prototype.toRgb=function(){var a,b,h;h=this.hue;b=this.sat;a=this.lum;if(0===b)a=b=h=a;else{var d=.5>a?a*(1+b):a+b-a*b,k=2*a-d;a=this.hue2rgb(k,d,h+1/3);b=this.hue2rgb(k,d,h);h=this.hue2rgb(k,d,h-1/3)}return new e.mxgraph.io.vsdx.theme.Color(255*a|0,255*b|0,255*h|0)};b.prototype.clamp01=function(a){return Math.min(1,Math.max(0,a))};b.prototype.tint=function(a){this.lum*=1+a/100;this.lum=this.clamp01(this.lum);return this};b.prototype.shade=function(a){this.lum*=
+a/100;this.lum=this.clamp01(this.lum);return this};b.prototype.satMod=function(a){this.sat*=a/100;this.sat=this.clamp01(this.sat);return this};b.prototype.lumMod=function(a){this.lum*=a/100;this.lum=this.clamp01(this.lum);return this};return b}();f.HSLColor=d;d.__class="com.mxgraph.io.vsdx.theme.HSLColor"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(a,b,h){this.h=a;this.s=b;this.v=h}b.prototype.toRgb=function(){var a=6*this.h,b=this.s,h=Math.floor(a),d=a-h,a=this.v*(1-b),k=this.v*(1-d*b),b=this.v*(1-(1-d)*b),h=(h|0)%6;return new e.mxgraph.io.vsdx.theme.Color(255*[this.v,k,a,a,b,this.v][h]|0,255*[b,this.v,this.v,k,a,a][h]|0,255*[a,a,b,this.v,this.v,k][h]|0)};b.prototype.clamp01=function(a){return Math.min(1,Math.max(0,a))};b.prototype.tint=function(a){this.v*=
+1+a/100;this.v=this.clamp01(this.v);return this};b.prototype.shade=function(a){this.v*=a/100;this.v=this.clamp01(this.v);return this};b.prototype.satMod=function(a){this.s*=a/100;this.s=this.clamp01(this.s);return this};b.prototype.lumMod=function(a){this.v*=a/100;this.v=this.clamp01(this.v);return this};b.prototype.hueMod=function(a){this.h*=a/100;this.h=this.clamp01(this.h);return this};return b}();f.HSVColor=d;d.__class="com.mxgraph.io.vsdx.theme.HSVColor"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx=
+{}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(a){this.isLineDashed=!1;this.lineDashPattern=[];this.isMiterJoin=this.isBevelJoin=this.isRoundJoin=!1;if(null!=a&&1==a.nodeType||null===a){Array.prototype.slice.call(arguments);this.lineWidth=0;this.headEndType=this.fillStyle=this.lineComp=this.lineCap=null;this.headEndLen=this.headEndWidth=0;this.tailEndType=null;this.tailEndLen=this.tailEndWidth=0;this.isLineDashed=!1;this.lineDashPattern=[];this.isMiterJoin=
this.isBevelJoin=this.isRoundJoin=!1;this.lineWidth=0;this.headEndType=this.fillStyle=this.lineComp=this.lineCap=null;this.headEndLen=this.headEndWidth=0;this.tailEndType=null;this.tailEndLen=this.tailEndWidth=0;this.lineWidth=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,"w");var c=a.getAttribute("cap");if(null!=c)switch(c){case "rnd":this.lineCap=b.LineCapType.ROUND;break;case "sq":this.lineCap=b.LineCapType.SQUARE;break;case "flat":this.lineCap=b.LineCapType.FLAT}c=
a.getAttribute("cmpd");if(null!=c)switch(c){case "sng":this.lineComp=b.CompoundLineType.SINGLE;break;case "dbl":this.lineComp=b.CompoundLineType.DOUBLE;break;case "thickThin":this.lineComp=b.CompoundLineType.THICK_THIN_DOUBLE;break;case "thinThick":this.lineComp=b.CompoundLineType.THIN_THICK_DOUBLE;break;case "tri":this.lineComp=b.CompoundLineType.THIN_THICK_THIN_TRIPLE}for(var c=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),h=0;h<c.length;h++){var d=c[h];switch(d.nodeName){case "a:noFill":case "a:solidFill":case "a:gradFill":case "a:pattFill":this.fillStyle=
e.mxgraph.io.vsdx.theme.FillStyleFactory.getFillStyle(d);break;case "a:prstDash":d=d.getAttribute("val");this.isLineDashed=!0;switch(d){case "solid":this.isLineDashed=!1;break;case "sysDot":case "dot":this.lineDashPattern.push(1);this.lineDashPattern.push(4);break;case "lgDash":this.lineDashPattern.push(12);this.lineDashPattern.push(4);break;case "sysDashDot":case "dashDot":this.lineDashPattern.push(8);this.lineDashPattern.push(4);this.lineDashPattern.push(1);this.lineDashPattern.push(4);break;case "lgDashDot":this.lineDashPattern.push(12);
-this.lineDashPattern.push(4);this.lineDashPattern.push(1);this.lineDashPattern.push(4);break;case "sysDashDotDot":case "lgDashDotDot":this.lineDashPattern.push(12),this.lineDashPattern.push(4),this.lineDashPattern.push(1),this.lineDashPattern.push(4),this.lineDashPattern.push(1),this.lineDashPattern.push(4)}break;case "a:custDash":this.isLineDashed=!0;for(var d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"a:ds"),l=0;l<d.length;l++){var f=d[l],w=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(f,
-"d"),f=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(f,"sp");this.lineDashPattern.push(w/1E4);this.lineDashPattern.push(f/1E4)}break;case "a:round":this.isRoundJoin=!0;break;case "a:bevel":this.isBevelJoin=!0;break;case "a:miter":e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(d,"lim");this.isMiterJoin=!0;break;case "a:headEnd":this.headEndType=this.getLineEndType(d);this.headEndWidth=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(d,
+this.lineDashPattern.push(4);this.lineDashPattern.push(1);this.lineDashPattern.push(4);break;case "sysDashDotDot":case "lgDashDotDot":this.lineDashPattern.push(12),this.lineDashPattern.push(4),this.lineDashPattern.push(1),this.lineDashPattern.push(4),this.lineDashPattern.push(1),this.lineDashPattern.push(4)}break;case "a:custDash":this.isLineDashed=!0;for(var d=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"a:ds"),k=0;k<d.length;k++){var f=d[k],p=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(f,
+"d"),f=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(f,"sp");this.lineDashPattern.push(p/1E4);this.lineDashPattern.push(f/1E4)}break;case "a:round":this.isRoundJoin=!0;break;case "a:bevel":this.isBevelJoin=!0;break;case "a:miter":e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(d,"lim");this.isMiterJoin=!0;break;case "a:headEnd":this.headEndType=this.getLineEndType(d);this.headEndWidth=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(d,
"w");this.headEndLen=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(d,"len");break;case "a:tailEnd":this.tailEndType=this.getLineEndType(d),this.tailEndWidth=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(d,"w"),this.tailEndLen=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(d,"len")}}}else if(void 0===a)Array.prototype.slice.call(arguments),this.lineWidth=0,this.headEndType=this.fillStyle=this.lineComp=this.lineCap=
null,this.headEndLen=this.headEndWidth=0,this.tailEndType=null,this.tailEndLen=this.tailEndWidth=0,this.isLineDashed=!1,this.lineDashPattern=[],this.isMiterJoin=this.isBevelJoin=this.isRoundJoin=!1,this.lineWidth=0,this.headEndType=this.fillStyle=this.lineComp=this.lineCap=null,this.headEndLen=this.headEndWidth=0,this.tailEndType=null,this.tailEndLen=this.tailEndWidth=0;else throw Error("invalid overload");}b.prototype.getLineEndType=function(a){var c=null;switch(a.getAttribute("type")){case "none":c=
b.LineEndType.NONE;break;case "triangle":c=b.LineEndType.TRIANGLE;break;case "stealth":c=b.LineEndType.STEALTH;break;case "diamond":c=b.LineEndType.DIAMOND;break;case "oval":c=b.LineEndType.OVAL;break;case "arrow":c=b.LineEndType.ARROW}return c};b.prototype.getLineColor=function(a,b){return null!=this.fillStyle?this.fillStyle.applyStyle(a,b):b.getDefaultLineClr()};b.prototype.isDashed=function(){return this.isLineDashed};b.prototype.getLineDashPattern=function(){return this.lineDashPattern};b.prototype.getStartSize=
function(){return 4};b.prototype.getEndSize=function(){return 4};b.prototype.getStart=function(){return 0};b.prototype.getEnd=function(){return 0};b.prototype.getLineWidth=function(){return this.lineWidth};return b}();f.LineStyle=d;d.__class="com.mxgraph.io.vsdx.theme.LineStyle";(function(b){(function(a){a[a.ROUND=0]="ROUND";a[a.SQUARE=1]="SQUARE";a[a.FLAT=2]="FLAT"})(b.LineCapType||(b.LineCapType={}));(function(a){a[a.SINGLE=0]="SINGLE";a[a.DOUBLE=1]="DOUBLE";a[a.THICK_THIN_DOUBLE=2]="THICK_THIN_DOUBLE";
-a[a.THIN_THICK_DOUBLE=3]="THIN_THICK_DOUBLE";a[a.THIN_THICK_THIN_TRIPLE=4]="THIN_THICK_THIN_TRIPLE"})(b.CompoundLineType||(b.CompoundLineType={}));(function(a){a[a.NONE=0]="NONE";a[a.TRIANGLE=1]="TRIANGLE";a[a.STEALTH=2]="STEALTH";a[a.DIAMOND=3]="DIAMOND";a[a.OVAL=4]="OVAL";a[a.ARROW=5]="ARROW"})(b.LineEndType||(b.LineEndType={}))})(d=f.LineStyle||(f.LineStyle={}))})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(a){this.pattern=this.endSize=this.end=this.startSize=this.start=this.rndg=0;this.lineDashPattern=null;a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a);this.rndg=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,"rndg");this.start=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,"start");this.startSize=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,
+a[a.THIN_THICK_DOUBLE=3]="THIN_THICK_DOUBLE";a[a.THIN_THICK_THIN_TRIPLE=4]="THIN_THICK_THIN_TRIPLE"})(b.CompoundLineType||(b.CompoundLineType={}));(function(a){a[a.NONE=0]="NONE";a[a.TRIANGLE=1]="TRIANGLE";a[a.STEALTH=2]="STEALTH";a[a.DIAMOND=3]="DIAMOND";a[a.OVAL=4]="OVAL";a[a.ARROW=5]="ARROW"})(b.LineEndType||(b.LineEndType={}))})(d=f.LineStyle||(f.LineStyle={}))})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(a){this.pattern=this.endSize=this.end=this.startSize=this.start=this.rndg=0;this.lineDashPattern=null;a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectFirstChildElement(a);this.rndg=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,"rndg");this.start=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,"start");this.startSize=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,
"startSize");this.end=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,"end");this.endSize=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,"endSize");this.pattern=e.mxgraph.io.vsdx.mxVsdxUtils.getIntAttr$org_w3c_dom_Element$java_lang_String(a,"pattern");this.lineDashPattern=e.mxgraph.io.vsdx.Style.getLineDashPattern(this.pattern)}b.prototype.getRndg=function(){return this.rndg};b.prototype.getStart=function(){return this.start};b.prototype.getStartSize=
-function(){return this.startSize};b.prototype.getEnd=function(){return this.end};b.prototype.getEndSize=function(){return this.endSize};b.prototype.isDashed=function(){return 1<this.pattern};b.prototype.getLineDashPattern=function(){return this.lineDashPattern};return b}();f.LineStyleExt=d;d.__class="com.mxgraph.io.vsdx.theme.LineStyleExt"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(){}b.prototype.applyStyle=function(a,b){return e.mxgraph.io.vsdx.theme.Color.NONE_$LI$()};return b}();f.NoFillStyle=d;d.__class="com.mxgraph.io.vsdx.theme.NoFillStyle";d.__interfaces=["com.mxgraph.io.vsdx.theme.FillStyle"]})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(){this.invGamma=this.gamma=this.blueMod=this.blueOff=this.blue=this.greenMod=this.greenOff=this.green=this.redMod=this.redOff=this.red=this.lumMod=this.lumOff=this.lum=this.satMod=this.satOff=this.sat=this.hueMod=this.hueOff=this.hue=this.alphaMod=this.alphaOff=this.alpha=this.gray=this.inv=this.comp=this.shade=this.tint=0;this.hasEffects=this.isInitialized=this.isDynamic=!1;this.color=null}b.prototype.calcColor=
+function(){return this.startSize};b.prototype.getEnd=function(){return this.end};b.prototype.getEndSize=function(){return this.endSize};b.prototype.isDashed=function(){return 1<this.pattern};b.prototype.getLineDashPattern=function(){return this.lineDashPattern};return b}();f.LineStyleExt=d;d.__class="com.mxgraph.io.vsdx.theme.LineStyleExt"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(){}b.prototype.applyStyle=function(a,b){return e.mxgraph.io.vsdx.theme.Color.NONE_$LI$()};return b}();f.NoFillStyle=d;d.__class="com.mxgraph.io.vsdx.theme.NoFillStyle";d.__interfaces=["com.mxgraph.io.vsdx.theme.FillStyle"]})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(){this.invGamma=this.gamma=this.blueMod=this.blueOff=this.blue=this.greenMod=this.greenOff=this.green=this.redMod=this.redOff=this.red=this.lumMod=this.lumOff=this.lum=this.satMod=this.satOff=this.sat=this.hueMod=this.hueOff=this.hue=this.alphaMod=this.alphaOff=this.alpha=this.gray=this.inv=this.comp=this.shade=this.tint=0;this.hasEffects=this.isInitialized=this.isDynamic=!1;this.color=null}b.prototype.calcColor=
function(a,b){if(this.hasEffects){var c=this.color.toHsv();0!==this.tint&&c.tint(this.tint);0!==this.shade&&c.shade(this.shade);0!==this.satMod&&c.satMod(this.satMod);0!==this.lumMod&&c.lumMod(this.lumMod);0!==this.hueMod&&c.hueMod(this.hueMod);this.color=c.toRgb()}};b.prototype.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme=function(a,b){if(this.isDynamic||!this.isInitialized)this.calcColor(a,b),this.isInitialized=!0;return this.color};b.prototype.getColor=function(a,b){if("number"!==typeof a&&null!==
a||!(null!=b&&b instanceof e.mxgraph.io.vsdx.mxVsdxTheme||null===b)){if((null!=a&&a instanceof e.mxgraph.io.vsdx.mxVsdxTheme||null===a)&&void 0===b)return this.getColor$com_mxgraph_io_vsdx_mxVsdxTheme(a);throw Error("invalid overload");}return this.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(a,b)};b.prototype.getColor$com_mxgraph_io_vsdx_mxVsdxTheme=function(a){return this.getColor$int$com_mxgraph_io_vsdx_mxVsdxTheme(-1,a)};b.prototype.setTint=function(a){this.tint=a;this.hasEffects=!0};b.prototype.setShade=
function(a){this.shade=a;this.hasEffects=!0};b.prototype.setComp=function(a){this.comp=a;this.hasEffects=!0};b.prototype.setInv=function(a){this.inv=a;this.hasEffects=!0};b.prototype.setGray=function(a){this.gray=a;this.hasEffects=!0};b.prototype.setAlpha=function(a){this.alpha=a;this.hasEffects=!0};b.prototype.setAlphaOff=function(a){this.alphaOff=a;this.hasEffects=!0};b.prototype.setAlphaMod=function(a){this.alphaMod=a;this.hasEffects=!0};b.prototype.setHue=function(a){this.hue=a;this.hasEffects=
!0};b.prototype.setHueOff=function(a){this.hueOff=a;this.hasEffects=!0};b.prototype.setHueMod=function(a){this.hueMod=a;this.hasEffects=!0};b.prototype.setSat=function(a){this.sat=a;this.hasEffects=!0};b.prototype.setSatOff=function(a){this.satOff=a;this.hasEffects=!0};b.prototype.setSatMod=function(a){this.satMod=a;this.hasEffects=!0};b.prototype.setLum=function(a){this.lum=a;this.hasEffects=!0};b.prototype.setLumOff=function(a){this.lumOff=a;this.hasEffects=!0};b.prototype.setLumMod=function(a){this.lumMod=
a;this.hasEffects=!0};b.prototype.setRed=function(a){this.red=a;this.hasEffects=!0};b.prototype.setRedOff=function(a){this.redOff=a;this.hasEffects=!0};b.prototype.setRedMod=function(a){this.redMod=a;this.hasEffects=!0};b.prototype.setGreen=function(a){this.green=a;this.hasEffects=!0};b.prototype.setGreenOff=function(a){this.greenOff=a;this.hasEffects=!0};b.prototype.setGreenMod=function(a){this.greenMod=a;this.hasEffects=!0};b.prototype.setBlue=function(a){this.blue=a;this.hasEffects=!0};b.prototype.setBlueOff=
-function(a){this.blueOff=a;this.hasEffects=!0};b.prototype.setBlueMod=function(a){this.blueMod=a;this.hasEffects=!0};b.prototype.setGamma=function(a){this.gamma=a;this.hasEffects=!0};b.prototype.setInvGamma=function(a){this.invGamma=a;this.hasEffects=!0};return b}();f.OoxmlColor=d;d.__class="com.mxgraph.io.vsdx.theme.OoxmlColor"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(){function b(){}b.getOoxmlColor=function(a){var b=null;switch(a.nodeName){case "a:scrgbClr":b=new e.mxgraph.io.vsdx.theme.ScrgbClr(parseInt(a.getAttribute("r")),parseInt(a.getAttribute("g")),parseInt(a.getAttribute("b")));break;case "a:srgbClr":b=new e.mxgraph.io.vsdx.theme.SrgbClr(a.getAttribute("val"));break;case "a:hslClr":b=new e.mxgraph.io.vsdx.theme.HslClr(parseInt(a.getAttribute("hue")),parseInt(a.getAttribute("sat")),
-parseInt(a.getAttribute("lum")));break;case "a:sysClr":b=new e.mxgraph.io.vsdx.theme.SysClr(a.getAttribute("val"),a.getAttribute("lastClr"));break;case "a:schemeClr":b=new e.mxgraph.io.vsdx.theme.SchemeClr(a.getAttribute("val"));break;case "a:prstClr":b=new e.mxgraph.io.vsdx.theme.SrgbClr(a.getAttribute("val"))}a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a);for(var h=0;h<a.length;h++){var d=a[h],l=parseInt(d.getAttribute("val"))/1E3|0;switch(d.nodeName){case "a:tint":b.setTint(l);break;
-case "a:shade":b.setShade(l);break;case "a:satMod":b.setSatMod(l);break;case "a:lumMod":b.setLumMod(l);break;case "a:hueMod":b.setHueMod(l)}}return b};return b}();f.OoxmlColorFactory=d;d.__class="com.mxgraph.io.vsdx.theme.OoxmlColorFactory"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(e){(function(e){(function(e){(function(e){var d=function(){function b(a,b,h,d,e,f,w,k,p,r){this.quickStyleVariation=this.quickStyleType=this.quickStyleShadowColor=this.quickStyleLineColor=this.quickStyleFontMatrix=this.quickStyleFontColor=this.quickStyleFillMatrix=this.quickStyleFillColor=this.quickStyleEffectsMatrix=0;this.quickStyleEffectsMatrix=a;this.quickStyleFillColor=b;this.quickStyleFillMatrix=h;this.quickStyleFontColor=d;this.quickStyleFontMatrix=e;this.quickStyleLineColor=
-f;this.quickStyleLineMatrix=w;this.quickStyleShadowColor=k;this.quickStyleType=p;this.quickStyleVariation=r}b.prototype.getQuickStyleEffectsMatrix=function(){return this.quickStyleEffectsMatrix};b.prototype.getQuickStyleFillColor=function(){return this.quickStyleFillColor};b.prototype.getQuickStyleFillMatrix=function(){return this.quickStyleFillMatrix};b.prototype.getQuickStyleFontColor=function(){return this.quickStyleFontColor};b.prototype.getQuickStyleFontMatrix=function(){return this.quickStyleFontMatrix};
+function(a){this.blueOff=a;this.hasEffects=!0};b.prototype.setBlueMod=function(a){this.blueMod=a;this.hasEffects=!0};b.prototype.setGamma=function(a){this.gamma=a;this.hasEffects=!0};b.prototype.setInvGamma=function(a){this.invGamma=a;this.hasEffects=!0};return b}();f.OoxmlColor=d;d.__class="com.mxgraph.io.vsdx.theme.OoxmlColor"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(){function b(){}b.getOoxmlColor=function(a){var b=null;switch(a.nodeName){case "a:scrgbClr":b=new e.mxgraph.io.vsdx.theme.ScrgbClr(parseInt(a.getAttribute("r")),parseInt(a.getAttribute("g")),parseInt(a.getAttribute("b")));break;case "a:srgbClr":b=new e.mxgraph.io.vsdx.theme.SrgbClr(a.getAttribute("val"));break;case "a:hslClr":b=new e.mxgraph.io.vsdx.theme.HslClr(parseInt(a.getAttribute("hue")),parseInt(a.getAttribute("sat")),
+parseInt(a.getAttribute("lum")));break;case "a:sysClr":b=new e.mxgraph.io.vsdx.theme.SysClr(a.getAttribute("val"),a.getAttribute("lastClr"));break;case "a:schemeClr":b=new e.mxgraph.io.vsdx.theme.SchemeClr(a.getAttribute("val"));break;case "a:prstClr":b=new e.mxgraph.io.vsdx.theme.SrgbClr(a.getAttribute("val"))}a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a);for(var h=0;h<a.length;h++){var d=a[h],k=parseInt(d.getAttribute("val"))/1E3|0;switch(d.nodeName){case "a:tint":b.setTint(k);break;
+case "a:shade":b.setShade(k);break;case "a:satMod":b.setSatMod(k);break;case "a:lumMod":b.setLumMod(k);break;case "a:hueMod":b.setHueMod(k)}}return b};return b}();f.OoxmlColorFactory=d;d.__class="com.mxgraph.io.vsdx.theme.OoxmlColorFactory"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(e){(function(e){(function(e){(function(e){var d=function(){function b(a,b,h,d,e,f,p,l,r,E){this.quickStyleVariation=this.quickStyleType=this.quickStyleShadowColor=this.quickStyleLineColor=this.quickStyleFontMatrix=this.quickStyleFontColor=this.quickStyleFillMatrix=this.quickStyleFillColor=this.quickStyleEffectsMatrix=0;this.quickStyleEffectsMatrix=a;this.quickStyleFillColor=b;this.quickStyleFillMatrix=h;this.quickStyleFontColor=d;this.quickStyleFontMatrix=e;this.quickStyleLineColor=
+f;this.quickStyleLineMatrix=p;this.quickStyleShadowColor=l;this.quickStyleType=r;this.quickStyleVariation=E}b.prototype.getQuickStyleEffectsMatrix=function(){return this.quickStyleEffectsMatrix};b.prototype.getQuickStyleFillColor=function(){return this.quickStyleFillColor};b.prototype.getQuickStyleFillMatrix=function(){return this.quickStyleFillMatrix};b.prototype.getQuickStyleFontColor=function(){return this.quickStyleFontColor};b.prototype.getQuickStyleFontMatrix=function(){return this.quickStyleFontMatrix};
b.prototype.getQuickStyleLineColor=function(){return this.quickStyleLineColor};b.prototype.getQuickStyleLineMatrix=function(){return this.quickStyleLineMatrix};b.prototype.getQuickStyleShadowColor=function(){return this.quickStyleShadowColor};b.prototype.getQuickStyleType=function(){return this.quickStyleType};b.prototype.getQuickStyleVariation=function(){return this.quickStyleVariation};b.prototype.setQuickStyleEffectsMatrix=function(a){this.quickStyleEffectsMatrix=a};b.prototype.setQuickStyleFillColor=
function(a){this.quickStyleFillColor=a};b.prototype.setQuickStyleFillMatrix=function(a){this.quickStyleFillMatrix=a};b.prototype.setQuickStyleFontColor=function(a){this.quickStyleFontColor=a};b.prototype.setQuickStyleFontMatrix=function(a){this.quickStyleFontMatrix=a};b.prototype.setQuickStyleLineColor=function(a){this.quickStyleLineColor=a};b.prototype.setQuickStyleLineMatrix=function(a){this.quickStyleLineMatrix=a};b.prototype.setQuickStyleShadowColor=function(a){this.quickStyleShadowColor=a};b.prototype.setQuickStyleType=
function(a){this.quickStyleType=a};b.prototype.setQuickStyleVariation=function(a){this.quickStyleVariation=a};return b}();e.QuickStyleVals=d;d.__class="com.mxgraph.io.vsdx.theme.QuickStyleVals"})(e.theme||(e.theme={}))})(e.vsdx||(e.vsdx={}))})(e.io||(e.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
@@ -1328,48 +1328,48 @@ function(a){this.quickStyleType=a};b.prototype.setQuickStyleVariation=function(a
(function(e){(function(e){(function(e){var f=function(){function e(){}e.MAX_AREA_$LI$=function(){null==e.MAX_AREA&&(e.MAX_AREA=1E8);return e.MAX_AREA};return e}();f.MAX_REQUEST_SIZE=52428800;f.IMAGE_DOMAIN="http://img.diagramly.com/";e.Constants=f;f.__class="com.mxgraph.online.Constants"})(e.online||(e.online={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
(function(e){(function(e){(function(e){var f=function(){function e(){}e.getRotatedPoint=function(d,b,a,c){var h=d.x-c.x;d=d.y-c.y;return new mxPoint(h*b-d*a+c.x,d*b+h*a+c.y)};e.rotatedGeometry=function(d,b,a,c){b=b*Math.PI/180;var h=Math.cos(b);b=Math.sin(b);var n=d.getCenterX()-a,e=d.getCenterY()-c;d.x=Math.round(n*h-e*b+a-d.width/2);d.y=Math.round(e*h+n*b+c-d.height/2)};return e}();f.CHARSET_FOR_URL_ENCODING="ISO-8859-1";e.Utils=f;f.__class="com.mxgraph.online.Utils"})(e.online||(e.online={}))})(e.mxgraph||
(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e){a=b.call(this,a,h,d)||this;a.a=e;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a){var c=b.getHeight(),h=b.getWidth(),d=Math.floor(Math.round(b.getLastX()*h)/100),f=Math.floor(Math.round(b.getLastY()*c)/100),k=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),p=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),p=c-p,r=this.a*
-e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),d=Math.abs(k-d),f=Math.abs(p-f),d=f=.5*r+(d*d+f*f)/(8*r),C=Math.abs(f),f=Math.round(100*f/h*100)/100,d=Math.round(100*d/c*100)/100,k=Math.round(100*k/h*100)/100,p=Math.round(100*p/c*100)/100,r=Math.round(100*r)/100,f=Math.abs(f),d=Math.abs(d),c=0>r?"1":"0",r=C<Math.abs(r)?"1":"0";b.setLastX(k);b.setLastY(p);return'<arc rx="'+(new String(f)).toString()+'" ry="'+(new String(d)).toString()+'" x="'+(new String(k)).toString()+'" y="'+(new String(p)).toString()+
-'" x-axis-rotation="0" large-arc-flag="'+r+'" sweep-flag="'+c+'"/>'}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.ArcTo=d;d.__class="com.mxgraph.io.vsdx.geometry.ArcTo"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a){return b.call(this,a,null,null)||this}__extends(a,b);a.prototype.handle=function(a,b){return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.DelRow=d;d.__class="com.mxgraph.io.vsdx.geometry.DelRow"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,w,k){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=w;a.d=k;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var c=b.getHeight(),h=b.getWidth(),d=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=c-f,k=this.a*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
-p=this.b*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),p=c-p,r=this.c*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),C=this.d*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),k=Math.abs(k-d),p=Math.abs(p-f),p=Math.sqrt(k*k+p*p),r=Math.abs(r-d),C=Math.abs(c-C-f),d=100*d/h,C=Math.round(100*Math.sqrt(r*r+C*C)/c/2*100)/100,h=Math.round(100*p/h/2*100)/100,r=Math.round(100*(d-2*h))/100,d=Math.round(100*(d+2*h))/100,c=Math.round(100*f/c*100)/100;return'<move x="'+(new String(r)).toString()+
-'" y="'+(new String(c)).toString()+'"/><arc rx="'+(new String(h)).toString()+'" ry="'+(new String(C)).toString()+'" x="'+(new String(d)).toString()+'" y="'+(new String(c)).toString()+'" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0"/><arc rx="'+(new String(h)).toString()+'" ry="'+(new String(C)).toString()+'" x="'+(new String(r)).toString()+'" y="'+(new String(c)).toString()+'" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0"/>'}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.Ellipse=
-d;d.__class="com.mxgraph.io.vsdx.geometry.Ellipse"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,w,k){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=w;a.d=k;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var c=b.getHeight(),h=b.getWidth(),d=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=c-f,k=this.a*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
-p=this.b*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),r=this.c,C=this.d,d=100*d/h,f=100*f/c,F=b.getLastX()*h/100,D=b.getLastY()*c/100,K=d*h/100,Z=f*c/100,H=c-p,Y=-r,r=Math.sqrt(F*F+D*D)*Math.cos(Math.atan2(D,F)-Y),p=Math.sqrt(F*F+D*D)*Math.sin(Math.atan2(D,F)-Y),O=Math.sqrt(K*K+Z*Z)*Math.cos(Math.atan2(Z,K)-Y),S=Math.sqrt(K*K+Z*Z)*Math.sin(Math.atan2(Z,K)-Y),aa=Math.sqrt(k*k+H*H)*Math.cos(Math.atan2(H,k)-Y),ja=Math.sqrt(k*k+H*H)*Math.sin(Math.atan2(H,k)-Y),ea=((r-O)*(r+O)*(S-ja)-(O-aa)*(O+
-aa)*(p-S)+C*C*(p-S)*(S-ja)*(p-ja))/(2*((r-O)*(S-ja)-(O-aa)*(p-S))),la=((r-O)*(O-aa)*(r-aa)/(C*C)+(O-aa)*(p-S)*(p+S)-(r-O)*(S-ja)*(S+ja))/(2*((O-aa)*(p-S)-(r-O)*(S-ja))),ta=r-ea,X=p-la,ta=Math.sqrt(ta*ta+X*X*C*C),C=ta/C,Y=180*Y/Math.PI,d=Math.round(100*d)/100,f=Math.round(100*f)/100,ta=Math.round(100*ta/h*100)/100,C=Math.round(100*C/c*100)/100,Y=Math.round(100*Y)/100,c=0<(K-F)*(H-D)-(Z-D)*(k-F)?"0":"1",h="0";e.mxgraph.io.vsdx.mxVsdxUtils.isInsideTriangle(ea,la,r,p,O,S,aa,ja)&&(h="1");b.setLastX(d);
-b.setLastY(f);return'<arc rx="'+(new String(ta)).toString()+'" ry="'+(new String(C)).toString()+'" x="'+(new String(d)).toString()+'" y="'+(new String(f)).toString()+'" x-axis-rotation="'+(new String(Y)).toString()+'" large-arc-flag="'+h+'" sweep-flag="'+c+'"/>'}return""};a.prototype.isReflexAngle=function(a,b,d,e,f,w,k,p){d-=a;e-=b;w-=b;f=k-a;p-=b;b=a=0;d=180*(Math.atan2(e,d)-Math.atan2(b,a))/Math.PI;f=180*(Math.atan2(w,f)-Math.atan2(b,a))/Math.PI;a=180*(Math.atan2(p,k)-Math.atan2(b,a))/Math.PI;
-d=(d-a)%360;f=(f-a)%360;180<d?d-=360:-180>d&&(d+=360);180<f?f-=360:-180>f&&(f+=360);return(0<d&&0>f||0>d&&0<f)&&180<Math.abs(d-f)?!0:!1};return a}(e.mxgraph.io.vsdx.geometry.Row);f.EllipticalArcTo=d;d.__class="com.mxgraph.io.vsdx.geometry.EllipticalArcTo"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;return a}__extends(a,b);a.prototype.handle=function(a,b){return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.InfiniteLine=d;d.__class="com.mxgraph.io.vsdx.geometry.InfiniteLine"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d){return b.call(this,a,h,d)||this}__extends(a,b);a.prototype.handle=function(a,b){var c=a.x,h=a.y,d=b.getHeight(),f=b.getWidth();null!=this.x&&null!=this.y&&(c=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());c=Math.round(100*c/f*100)/100;h=Math.round(100*(100-100*h/d))/100;a.x=c;a.y=h;b.setLastX(c);b.setLastY(h);return'<line x="'+
-(new String(c)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(e.mxgraph.io.vsdx.geometry.Row);f.LineTo=d;d.__class="com.mxgraph.io.vsdx.geometry.LineTo"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d){return b.call(this,a,h,d)||this}__extends(a,b);a.prototype.handle=function(a,b){var c=a.x,h=a.y,d=b.getHeight(),f=b.getWidth();null!=this.x&&null!=this.y&&(c=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());c=Math.round(100*c/f*100)/100;h=Math.round(100*(100-100*h/d))/100;a.x=c;a.y=h;b.setLastX(c);b.setLastY(h);b.setLastMoveX(c);
-b.setLastMoveY(h);return'<move x="'+(new String(c)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(e.mxgraph.io.vsdx.geometry.Row);f.MoveTo=d;d.__class="com.mxgraph.io.vsdx.geometry.MoveTo"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,w,k,p){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=w;a.d=k;a.formulaE=p;return a}__extends(a,b);a.prototype.handle=function(b,h){if(null!=this.x&&null!=this.y&&null!=this.formulaE){var c=h.getHeight(),d=h.getWidth(),f=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),w=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),k=this.formulaE.split("NURBS(").join(""),k=k.split(")").join(""),
-k=new a.Nurbs(this,k,d,c);if(2<=k.getSize()){var p=k.getX(0),r=k.getY(0),C=k.getX(1),F=k.getY(1),f=Math.round(100*f/d*100)/100,w=Math.round(100*(100-100*w/c))/100,p=Math.round(100*p)/100,r=Math.round(100*r)/100,C=Math.round(100*C)/100,F=Math.round(100*F)/100;h.setLastX(f);h.setLastY(w);if(3===k.getDegree()&&k.isOrderedByThree(this.getA())){c=[];d=[];p=[];C=k.getSize();for(r=0;r<C-1;r+=3)c.push(new mxPoint(k.getX(r),k.getY(r))),d.push(new mxPoint(k.getX(r+1),k.getY(r+1))),r<C-2?p.push(new mxPoint(k.getX(r+
-2),k.getY(r+2))):p.push(new mxPoint(f,w));f="";for(r=0;r<c.length;r++)f+='<curve x1="'+c[r].x+'" y1="'+c[r].y+'" x2="'+d[r].x+'" y2="'+d[r].y+'" x3="'+p[r].x+'" y3="'+p[r].y+'"/>\n';return f}return'<curve x1="'+(new String(p)).toString()+'" y1="'+(new String(r)).toString()+'" x2="'+(new String(C)).toString()+'" y2="'+(new String(F)).toString()+'" x3="'+(new String(f)).toString()+'" y3="'+(new String(w)).toString()+'"/>'}}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.NURBSTo=d;d.__class="com.mxgraph.io.vsdx.geometry.NURBSTo";
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e){a=b.call(this,a,h,d)||this;a.a=e;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a){var c=b.getHeight(),h=b.getWidth(),d=Math.floor(Math.round(b.getLastX()*h)/100),f=Math.floor(Math.round(b.getLastY()*c)/100),p=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),l=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),l=c-l,r=this.a*
+e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),d=Math.abs(p-d),f=Math.abs(l-f),d=f=.5*r+(d*d+f*f)/(8*r),B=Math.abs(f),f=Math.round(100*f/h*100)/100,d=Math.round(100*d/c*100)/100,p=Math.round(100*p/h*100)/100,l=Math.round(100*l/c*100)/100,r=Math.round(100*r)/100,f=Math.abs(f),d=Math.abs(d),c=0>r?"1":"0",r=B<Math.abs(r)?"1":"0";b.setLastX(p);b.setLastY(l);return'<arc rx="'+(new String(f)).toString()+'" ry="'+(new String(d)).toString()+'" x="'+(new String(p)).toString()+'" y="'+(new String(l)).toString()+
+'" x-axis-rotation="0" large-arc-flag="'+r+'" sweep-flag="'+c+'"/>'}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.ArcTo=d;d.__class="com.mxgraph.io.vsdx.geometry.ArcTo"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a){return b.call(this,a,null,null)||this}__extends(a,b);a.prototype.handle=function(a,b){return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.DelRow=d;d.__class="com.mxgraph.io.vsdx.geometry.DelRow"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,l,p){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=l;a.d=p;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var c=b.getHeight(),h=b.getWidth(),d=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=c-f,l=this.a*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
+p=this.b*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),p=c-p,r=this.c*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),B=this.d*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),l=Math.abs(l-d),p=Math.abs(p-f),p=Math.sqrt(l*l+p*p),r=Math.abs(r-d),B=Math.abs(c-B-f),d=100*d/h,B=Math.round(100*Math.sqrt(r*r+B*B)/c/2*100)/100,h=Math.round(100*p/h/2*100)/100,r=Math.round(100*(d-2*h))/100,d=Math.round(100*(d+2*h))/100,c=Math.round(100*f/c*100)/100;return'<move x="'+(new String(r)).toString()+
+'" y="'+(new String(c)).toString()+'"/><arc rx="'+(new String(h)).toString()+'" ry="'+(new String(B)).toString()+'" x="'+(new String(d)).toString()+'" y="'+(new String(c)).toString()+'" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0"/><arc rx="'+(new String(h)).toString()+'" ry="'+(new String(B)).toString()+'" x="'+(new String(r)).toString()+'" y="'+(new String(c)).toString()+'" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0"/>'}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.Ellipse=
+d;d.__class="com.mxgraph.io.vsdx.geometry.Ellipse"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,l,p){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=l;a.d=p;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var c=b.getHeight(),h=b.getWidth(),d=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=c-f,l=this.a*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
+p=this.b*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),r=this.c,B=this.d,d=100*d/h,f=100*f/c,F=b.getLastX()*h/100,D=b.getLastY()*c/100,K=d*h/100,Z=f*c/100,H=c-p,Y=-r,r=Math.sqrt(F*F+D*D)*Math.cos(Math.atan2(D,F)-Y),p=Math.sqrt(F*F+D*D)*Math.sin(Math.atan2(D,F)-Y),O=Math.sqrt(K*K+Z*Z)*Math.cos(Math.atan2(Z,K)-Y),S=Math.sqrt(K*K+Z*Z)*Math.sin(Math.atan2(Z,K)-Y),aa=Math.sqrt(l*l+H*H)*Math.cos(Math.atan2(H,l)-Y),ha=Math.sqrt(l*l+H*H)*Math.sin(Math.atan2(H,l)-Y),ea=((r-O)*(r+O)*(S-ha)-(O-aa)*(O+
+aa)*(p-S)+B*B*(p-S)*(S-ha)*(p-ha))/(2*((r-O)*(S-ha)-(O-aa)*(p-S))),ka=((r-O)*(O-aa)*(r-aa)/(B*B)+(O-aa)*(p-S)*(p+S)-(r-O)*(S-ha)*(S+ha))/(2*((O-aa)*(p-S)-(r-O)*(S-ha))),ta=r-ea,X=p-ka,ta=Math.sqrt(ta*ta+X*X*B*B),B=ta/B,Y=180*Y/Math.PI,d=Math.round(100*d)/100,f=Math.round(100*f)/100,ta=Math.round(100*ta/h*100)/100,B=Math.round(100*B/c*100)/100,Y=Math.round(100*Y)/100,c=0<(K-F)*(H-D)-(Z-D)*(l-F)?"0":"1",h="0";e.mxgraph.io.vsdx.mxVsdxUtils.isInsideTriangle(ea,ka,r,p,O,S,aa,ha)&&(h="1");b.setLastX(d);
+b.setLastY(f);return'<arc rx="'+(new String(ta)).toString()+'" ry="'+(new String(B)).toString()+'" x="'+(new String(d)).toString()+'" y="'+(new String(f)).toString()+'" x-axis-rotation="'+(new String(Y)).toString()+'" large-arc-flag="'+h+'" sweep-flag="'+c+'"/>'}return""};a.prototype.isReflexAngle=function(a,b,d,e,f,l,p,r){d-=a;e-=b;l-=b;f=p-a;r-=b;b=a=0;d=180*(Math.atan2(e,d)-Math.atan2(b,a))/Math.PI;f=180*(Math.atan2(l,f)-Math.atan2(b,a))/Math.PI;a=180*(Math.atan2(r,p)-Math.atan2(b,a))/Math.PI;
+d=(d-a)%360;f=(f-a)%360;180<d?d-=360:-180>d&&(d+=360);180<f?f-=360:-180>f&&(f+=360);return(0<d&&0>f||0>d&&0<f)&&180<Math.abs(d-f)?!0:!1};return a}(e.mxgraph.io.vsdx.geometry.Row);f.EllipticalArcTo=d;d.__class="com.mxgraph.io.vsdx.geometry.EllipticalArcTo"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;return a}__extends(a,b);a.prototype.handle=function(a,b){return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.InfiniteLine=d;d.__class="com.mxgraph.io.vsdx.geometry.InfiniteLine"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d){return b.call(this,a,h,d)||this}__extends(a,b);a.prototype.handle=function(a,b){var c=a.x,h=a.y,d=b.getHeight(),f=b.getWidth();null!=this.x&&null!=this.y&&(c=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());c=Math.round(100*c/f*100)/100;h=Math.round(100*(100-100*h/d))/100;a.x=c;a.y=h;b.setLastX(c);b.setLastY(h);return'<line x="'+
+(new String(c)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(e.mxgraph.io.vsdx.geometry.Row);f.LineTo=d;d.__class="com.mxgraph.io.vsdx.geometry.LineTo"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d){return b.call(this,a,h,d)||this}__extends(a,b);a.prototype.handle=function(a,b){var c=a.x,h=a.y,d=b.getHeight(),f=b.getWidth();null!=this.x&&null!=this.y&&(c=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());c=Math.round(100*c/f*100)/100;h=Math.round(100*(100-100*h/d))/100;a.x=c;a.y=h;b.setLastX(c);b.setLastY(h);b.setLastMoveX(c);
+b.setLastMoveY(h);return'<move x="'+(new String(c)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(e.mxgraph.io.vsdx.geometry.Row);f.MoveTo=d;d.__class="com.mxgraph.io.vsdx.geometry.MoveTo"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,l,p,r){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=l;a.d=p;a.formulaE=r;return a}__extends(a,b);a.prototype.handle=function(b,h){if(null!=this.x&&null!=this.y&&null!=this.formulaE){var c=h.getHeight(),d=h.getWidth(),f=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),l=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),p=this.formulaE.split("NURBS(").join(""),p=p.split(")").join(""),
+p=new a.Nurbs(this,p,d,c);if(2<=p.getSize()){var r=p.getX(0),E=p.getY(0),B=p.getX(1),F=p.getY(1),f=Math.round(100*f/d*100)/100,l=Math.round(100*(100-100*l/c))/100,r=Math.round(100*r)/100,E=Math.round(100*E)/100,B=Math.round(100*B)/100,F=Math.round(100*F)/100;h.setLastX(f);h.setLastY(l);if(3===p.getDegree()&&p.isOrderedByThree(this.getA())){c=[];d=[];r=[];B=p.getSize();for(E=0;E<B-1;E+=3)c.push(new mxPoint(p.getX(E),p.getY(E))),d.push(new mxPoint(p.getX(E+1),p.getY(E+1))),E<B-2?r.push(new mxPoint(p.getX(E+
+2),p.getY(E+2))):r.push(new mxPoint(f,l));f="";for(E=0;E<c.length;E++)f+='<curve x1="'+c[E].x+'" y1="'+c[E].y+'" x2="'+d[E].x+'" y2="'+d[E].y+'" x3="'+r[E].x+'" y3="'+r[E].y+'"/>\n';return f}return'<curve x1="'+(new String(r)).toString()+'" y1="'+(new String(E)).toString()+'" x2="'+(new String(B)).toString()+'" y2="'+(new String(F)).toString()+'" x3="'+(new String(f)).toString()+'" y3="'+(new String(l)).toString()+'"/>'}}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.NURBSTo=d;d.__class="com.mxgraph.io.vsdx.geometry.NURBSTo";
(function(b){var a=function(){function a(a,b,c,d){this.__parent=a;this.nurbsValues=[];a=b.split(/\s*,\s*/).slice(0);for(b=0;b<a.length;b++)3<b&&0===b%4?this.nurbsValues.push(100*parseFloat(a[b])):3<b&&1===b%4?this.nurbsValues.push(100-100*parseFloat(a[b])):this.nurbsValues.push(parseFloat(a[b]))}a.prototype.isOrderedByThree=function(a){for(var b=0;b+2<this.getSize();b+=3){var c=Math.round(100*this.getKnot(b))/100,h=Math.round(100*this.getKnot(b+1))/100,d=Math.round(100*this.getKnot(b+2))/100;if(c!==
h||c!==d||h!==d)return!1}b=Math.round(10*this.getKnot(this.getSize()-2))/10;c=Math.round(10*this.getKnot(this.getSize()-1))/10;a=Math.round(10*a)/10;return b!==c||b!==a||c!==a?!1:!0};a.prototype.getSize=function(){return(this.nurbsValues.length/4|0)-1};a.prototype.getKnotLast=function(){return this.nurbsValues[0]};a.prototype.getDegree=function(){return this.nurbsValues[1]};a.prototype.getXType=function(){return this.nurbsValues[2]};a.prototype.getYType=function(){return this.nurbsValues[3]};a.prototype.getX=
-function(a){return this.nurbsValues[4*(a+1)]};a.prototype.getY=function(a){return this.nurbsValues[4*(a+1)+1]};a.prototype.getKnot=function(a){return this.nurbsValues[4*(a+1)+2]};a.prototype.getWeight=function(a){return this.nurbsValues[4*(a+1)+3]};return a}();b.Nurbs=a;a.__class="com.mxgraph.io.vsdx.geometry.NURBSTo.Nurbs"})(d=f.NURBSTo||(f.NURBSTo={}))})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e){a=b.call(this,a,h,d)||this;a.formulaA=e;return a}__extends(a,b);a.prototype.handle=function(a,b){var c="";if(null!=this.x&&null!=this.y&&null!=this.formulaA){var h=b.getHeight(),d=b.getWidth(),f=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),k=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=Math.round(100*f/d*100)/100,k=Math.round(100*(100-100*k/h))/100,p=this.formulaA.replace(RegExp("\\s",
-"g"),"").toLowerCase().replace(RegExp("polyline\\(","g"),"").replace(RegExp("\\)","g"),""),r;r=p&&p.equals?p.equals("inh"):"inh"===p;if(r)throw Object.defineProperty(Error(),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});p=p.split(",").slice(0).slice(0);r=parseFloat(p.splice(0,1));parseFloat(p.splice(0,1));for(var C,F;0<p.length;)C=parseFloat(p.splice(0,1))*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
-F=parseFloat(p.splice(0,1))*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),1===r&&(C=100*C/d),1===r&&(F=100*F/h),F=100-F,C=Math.round(100*C)/100,F=Math.round(100*F)/100,b.setLastX(C),b.setLastY(F),c+='<line x="'+(new String(C)).toString()+'" y="'+(new String(F)).toString()+'"/>';c+='<line x="'+(new String(f)).toString()+'" y="'+(new String(k)).toString()+'"/>';b.getLastMoveX()===f&&b.getLastMoveY()===k&&(c+="<close/>")}return c};return a}(e.mxgraph.io.vsdx.geometry.Row);f.PolylineTo=d;d.__class=
-"com.mxgraph.io.vsdx.geometry.PolylineTo"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,k,p){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=k;a.d=p;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var c=100*this.x,h=100-100*this.y,d=100*this.a,e=100-100*this.b,f=100*this.c,k=100-100*this.d,c=Math.round(100*c)/100,h=Math.round(100*h)/100,d=Math.round(100*d)/100,e=Math.round(100*e)/100,f=Math.round(100*
-f)/100,k=Math.round(100*k)/100;b.setLastX(c);b.setLastY(h);return'<curve x1="'+(new String(d)).toString()+'" y1="'+(new String(e)).toString()+'" x2="'+(new String(f)).toString()+'" y2="'+(new String(k)).toString()+'" x3="'+(new String(c)).toString()+'" y3="'+(new String(h)).toString()+'"/>'}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.RelCubBezTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelCubBezTo"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph=
+function(a){return this.nurbsValues[4*(a+1)]};a.prototype.getY=function(a){return this.nurbsValues[4*(a+1)+1]};a.prototype.getKnot=function(a){return this.nurbsValues[4*(a+1)+2]};a.prototype.getWeight=function(a){return this.nurbsValues[4*(a+1)+3]};return a}();b.Nurbs=a;a.__class="com.mxgraph.io.vsdx.geometry.NURBSTo.Nurbs"})(d=f.NURBSTo||(f.NURBSTo={}))})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e){a=b.call(this,a,h,d)||this;a.formulaA=e;return a}__extends(a,b);a.prototype.handle=function(a,b){var c="";if(null!=this.x&&null!=this.y&&null!=this.formulaA){var h=b.getHeight(),d=b.getWidth(),f=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),l=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),f=Math.round(100*f/d*100)/100,l=Math.round(100*(100-100*l/h))/100,p=this.formulaA.replace(RegExp("\\s",
+"g"),"").toLowerCase().replace(RegExp("polyline\\(","g"),"").replace(RegExp("\\)","g"),""),r;r=p&&p.equals?p.equals("inh"):"inh"===p;if(r)throw Object.defineProperty(Error(),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});p=p.split(",").slice(0).slice(0);r=parseFloat(p.splice(0,1));parseFloat(p.splice(0,1));for(var B,F;0<p.length;)B=parseFloat(p.splice(0,1))*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),
+F=parseFloat(p.splice(0,1))*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),1===r&&(B=100*B/d),1===r&&(F=100*F/h),F=100-F,B=Math.round(100*B)/100,F=Math.round(100*F)/100,b.setLastX(B),b.setLastY(F),c+='<line x="'+(new String(B)).toString()+'" y="'+(new String(F)).toString()+'"/>';c+='<line x="'+(new String(f)).toString()+'" y="'+(new String(l)).toString()+'"/>';b.getLastMoveX()===f&&b.getLastMoveY()===l&&(c+="<close/>")}return c};return a}(e.mxgraph.io.vsdx.geometry.Row);f.PolylineTo=d;d.__class=
+"com.mxgraph.io.vsdx.geometry.PolylineTo"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,l,p){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=l;a.d=p;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var c=100*this.x,h=100-100*this.y,d=100*this.a,e=100-100*this.b,f=100*this.c,l=100-100*this.d,c=Math.round(100*c)/100,h=Math.round(100*h)/100,d=Math.round(100*d)/100,e=Math.round(100*e)/100,f=Math.round(100*
+f)/100,l=Math.round(100*l)/100;b.setLastX(c);b.setLastY(h);return'<curve x1="'+(new String(d)).toString()+'" y1="'+(new String(e)).toString()+'" x2="'+(new String(f)).toString()+'" y2="'+(new String(l)).toString()+'" x3="'+(new String(c)).toString()+'" y3="'+(new String(h)).toString()+'"/>'}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.RelCubBezTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelCubBezTo"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph=
{}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d){return b.call(this,a,h,d)||this}__extends(a,b);a.prototype.handle=function(a,b){var c=a.x,h=a.y;null!=this.x&&null!=this.y&&(c=100*this.x,h=100-100*this.y);c=Math.round(100*c)/100;h=Math.round(100*h)/100;a.x=c;a.y=h;b.setLastX(c);b.setLastY(h);return'<line x="'+(new String(c)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(e.mxgraph.io.vsdx.geometry.Row);f.RelLineTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelLineTo"})(f.geometry||
-(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d){return b.call(this,a,h,d)||this}__extends(a,b);a.prototype.handle=function(a,b){var c=a.x,h=a.y;null!=this.x&&null!=this.y&&(c=100*this.x,h=100-100*this.y);c=Math.round(100*c)/100;h=Math.round(100*h)/100;a.x=c;a.y=h;b.setLastX(c);b.setLastY(h);b.setLastMoveX(c);b.setLastMoveY(h);return'<move x="'+(new String(c)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(e.mxgraph.io.vsdx.geometry.Row);
-f.RelMoveTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelMoveTo"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b){var c=100*this.x,h=100-100*this.y,d=100*this.a,e=100-100*this.b,c=Math.round(100*c)/100,h=Math.round(100*h)/100,d=Math.round(100*d)/100,e=Math.round(100*e)/100;b.setLastX(c);b.setLastY(h);return'<quad x1="'+(new String(d)).toString()+'" y1="'+
-(new String(e)).toString()+'" x2="'+(new String(c)).toString()+'" y2="'+(new String(h)).toString()+'"/>'}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.RelQuadBezTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelQuadBezTo"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e){a=b.call(this,a,h,d)||this;a.a=e;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a){var c=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),c=Math.round(100*c)/100,h=Math.round(100*(100-h))/100;b.setLastX(c);b.setLastY(h)}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);
-f.SplineKnot=d;d.__class="com.mxgraph.io.vsdx.geometry.SplineKnot"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,k,p){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=k;a.d=p;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){b.getHeight();b.getWidth();var c=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();b.setLastKnot(this.c);c=Math.round(100*c)/
-100;h=Math.round(100*(100-h))/100;b.getLastX();b.getLastY();b.setLastX(c);b.setLastY(h);return"<curve "}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.SplineStart=d;d.__class="com.mxgraph.io.vsdx.geometry.SplineStart"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var k=function(){function d(b,a){this.cellElements={};this.sections={};this.styleParents={};this.style=this.pm=this.Id=this.shape=null;this.shape=b;this.pm=a.getPropertiesManager();var c=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.ID);try{this.Id=null!=c&&0!==c.length?parseFloat(c):-1}catch(h){this.Id=-1}this.cacheCells(a);this.stylesheetRefs(a)}d.__static_initialize=function(){d.__static_initialized||(d.__static_initialized=!0,d.__static_initializer_0(),
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d){return b.call(this,a,h,d)||this}__extends(a,b);a.prototype.handle=function(a,b){var c=a.x,h=a.y;null!=this.x&&null!=this.y&&(c=100*this.x,h=100-100*this.y);c=Math.round(100*c)/100;h=Math.round(100*h)/100;a.x=c;a.y=h;b.setLastX(c);b.setLastY(h);return'<line x="'+(new String(c)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(e.mxgraph.io.vsdx.geometry.Row);f.RelLineTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelLineTo"})(f.geometry||
+(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d){return b.call(this,a,h,d)||this}__extends(a,b);a.prototype.handle=function(a,b){var c=a.x,h=a.y;null!=this.x&&null!=this.y&&(c=100*this.x,h=100-100*this.y);c=Math.round(100*c)/100;h=Math.round(100*h)/100;a.x=c;a.y=h;b.setLastX(c);b.setLastY(h);b.setLastMoveX(c);b.setLastMoveY(h);return'<move x="'+(new String(c)).toString()+'" y="'+(new String(h)).toString()+'"/>'};return a}(e.mxgraph.io.vsdx.geometry.Row);
+f.RelMoveTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelMoveTo"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b){var c=100*this.x,h=100-100*this.y,d=100*this.a,e=100-100*this.b,c=Math.round(100*c)/100,h=Math.round(100*h)/100,d=Math.round(100*d)/100,e=Math.round(100*e)/100;b.setLastX(c);b.setLastY(h);return'<quad x1="'+(new String(d)).toString()+'" y1="'+
+(new String(e)).toString()+'" x2="'+(new String(c)).toString()+'" y2="'+(new String(h)).toString()+'"/>'}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.RelQuadBezTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelQuadBezTo"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e){a=b.call(this,a,h,d)||this;a.a=e;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a){var c=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),c=Math.round(100*c)/100,h=Math.round(100*(100-h))/100;b.setLastX(c);b.setLastY(h)}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);
+f.SplineKnot=d;d.__class="com.mxgraph.io.vsdx.geometry.SplineKnot"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,l,p){a=b.call(this,a,h,d)||this;a.a=e;a.b=f;a.c=l;a.d=p;return a}__extends(a,b);a.prototype.handle=function(a,b){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){b.getHeight();b.getWidth();var c=this.x*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),h=this.y*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();b.setLastKnot(this.c);c=Math.round(100*c)/
+100;h=Math.round(100*(100-h))/100;b.getLastX();b.getLastY();b.setLastX(c);b.setLastY(h);return"<curve "}return""};return a}(e.mxgraph.io.vsdx.geometry.Row);f.SplineStart=d;d.__class="com.mxgraph.io.vsdx.geometry.SplineStart"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var l=function(){function d(b,a){this.cellElements={};this.sections={};this.styleParents={};this.style=this.pm=this.Id=this.shape=null;this.shape=b;this.pm=a.getPropertiesManager();var c=b.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.ID);try{this.Id=null!=c&&0!==c.length?parseFloat(c):-1}catch(h){this.Id=-1}this.cacheCells(a);this.stylesheetRefs(a)}d.__static_initialize=function(){d.__static_initialized||(d.__static_initialized=!0,d.__static_initializer_0(),
d.__static_initializer_1())};d.styleTypes_$LI$=function(){d.__static_initialize();null==d.styleTypes&&(d.styleTypes={});return d.styleTypes};d.__static_initializer_0=function(){d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.FILL]=e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.FILL_BKGND]=e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.FILL_BKGND_TRANS]=e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;
d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.FILL_FOREGND]=e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.FILL_FOREGND_TRANS]=e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.FILL_PATTERN]=e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.SHDW_PATTERN]=e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE]=
e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;d.styleTypes_$LI$().QuickStyleFillColor=e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;d.styleTypes_$LI$().QuickStyleFillMatrix=e.mxgraph.io.vsdx.mxVsdxConstants.FILL_STYLE;d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW]=e.mxgraph.io.vsdx.mxVsdxConstants.LINE_STYLE;d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW]=e.mxgraph.io.vsdx.mxVsdxConstants.LINE_STYLE;d.styleTypes_$LI$()[e.mxgraph.io.vsdx.mxVsdxConstants.LINE_PATTERN]=
@@ -1382,9 +1382,9 @@ if(null!=a)for(a=a.item(0);null!=a;)null!=a&&1==a.nodeType&&this.parseShapeElem(
a){return this.cellElements.hasOwnProperty(a)};d.prototype.getValue=function(b,a){return null!=b?b.getAttribute("V")||"":a};d.prototype.getValueAsDouble=function(b,a){if(null!=b){var c=b.getAttribute("V");if(null!=c){if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c,"Themed"))return 0;try{var h=parseFloat(c);(function(a,b){return a&&a.equals?a.equals(b):a===b})(b.getAttribute("U"),"PT")&&(h*=e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$());return Math.round(100*h)/100}catch(n){console.error(n.message,
n)}}}return a};d.prototype.getScreenNumericalValue$org_w3c_dom_Element$double=function(b,a){if(null!=b){var c=b.getAttribute("V");if(null!=c)try{var h=parseFloat(c);return this.getScreenNumericalValue$double(h)}catch(n){console.error(n.message,n)}}return a};d.prototype.getScreenNumericalValue=function(b,a){if((null==b||1!=b.nodeType)&&null!==b||"number"!==typeof a&&null!==a){if("number"!==typeof b&&null!==b||void 0!==a)throw Error("invalid overload");return this.getScreenNumericalValue$double(b)}return this.getScreenNumericalValue$org_w3c_dom_Element$double(b,
a)};d.prototype.getScreenNumericalValue$double=function(b){return b*e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$()};d.prototype.getAttribute=function(b,a,c){var h=this.cellElements;b=h[b]?h[b]:null;null!=b&&(c=b.getAttribute(a)||"");return c};d.prototype.getChildValues=function(b,a){for(var c={},h=b.firstChild;null!=h;){if(null!=h&&1==h.nodeType){var d=h,e,f;((e=d.nodeName)&&e.equals?e.equals("Cell"):"Cell"===e)?(e=d.getAttribute("N")||"",f=d.getAttribute("V")||""):(e=d.nodeName,f=d.textContent);
-if(null!=a){var k=a[e]?a[e]:null;null!=k&&(f=d.getAttribute(k)||"")}c[e]=f}h=h.nextSibling}return c};d.prototype.getCellElement$java_lang_String$java_lang_String$java_lang_String=function(b,a,c){var h=function(a,b){return a[b]?a[b]:null}(this.sections,c),n=null,f=!1;null!=h&&(n=h.getIndexedCell(a,b));if(null!=n){var h=n.getAttribute("F"),k=n.getAttribute("V");if(null!=h&&null!=k)if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"Inh")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(k,
-"Themed"))f=!0;else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"THEMEVAL()")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(k,"Themed")&&null!=this.style){if(function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.COLOR,b))return n;h=this.style.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,c);if(null!=h)return h}}if(null==n||f)if(f=function(a,b){return a[b]?a[b]:null}(d.styleTypes_$LI$(),c),f=function(a,b){return a[b]?a[b]:
-null}(this.styleParents,f),null!=f&&(b=f.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,c),null!=b))return b;return n};d.prototype.getCellElement=function(b,a,c){if("string"!==typeof b&&null!==b||"string"!==typeof a&&null!==a||"string"!==typeof c&&null!==c){if("string"!==typeof b&&null!==b||void 0!==a||void 0!==c)throw Error("invalid overload");return this.getCellElement$java_lang_String(b)}return this.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,c)};
+if(null!=a){var l=a[e]?a[e]:null;null!=l&&(f=d.getAttribute(l)||"")}c[e]=f}h=h.nextSibling}return c};d.prototype.getCellElement$java_lang_String$java_lang_String$java_lang_String=function(b,a,c){var h=function(a,b){return a[b]?a[b]:null}(this.sections,c),n=null,k=!1;null!=h&&(n=h.getIndexedCell(a,b));if(null!=n){var h=n.getAttribute("F"),f=n.getAttribute("V");if(null!=h&&null!=f)if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"Inh")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(f,
+"Themed"))k=!0;else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"THEMEVAL()")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"Themed")&&null!=this.style){if(function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.COLOR,b))return n;h=this.style.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,c);if(null!=h)return h}}if(null==n||k)if(k=function(a,b){return a[b]?a[b]:null}(d.styleTypes_$LI$(),c),k=function(a,b){return a[b]?a[b]:
+null}(this.styleParents,k),null!=k&&(b=k.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,c),null!=b))return b;return n};d.prototype.getCellElement=function(b,a,c){if("string"!==typeof b&&null!==b||"string"!==typeof a&&null!==a||"string"!==typeof c&&null!==c){if("string"!==typeof b&&null!==b||void 0!==a||void 0!==c)throw Error("invalid overload");return this.getCellElement$java_lang_String(b)}return this.getCellElement$java_lang_String$java_lang_String$java_lang_String(b,a,c)};
d.prototype.getCellElement$java_lang_String=function(b){var a=function(a,b){return a[b]?a[b]:null}(this.cellElements,b),c=!1;if(null!=a){var h=a.getAttribute("F"),n=a.getAttribute("V");if(null!=h&&null!=n)if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"Inh")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(n,"Themed"))c=!0;else if(-1!=h.indexOf("THEMEVAL()")&&function(a,b){return a&&a.equals?a.equals(b):a===b}(n,"Themed")&&null!=this.style){if(function(a,b){return a&&a.equals?a.equals(b):
a===b}("FillForegnd",b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.LINE_COLOR,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.LINE_PATTERN,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW_SIZE,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW_SIZE,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW,
b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW,b)||function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.LINE_WEIGHT,b))return a;h=this.style.getCellElement$java_lang_String(b);if(null!=h)return h}}if(null==a||c)if(c=function(a,b){return a[b]?a[b]:null}(d.styleTypes_$LI$(),b),c=function(a,b){return a[b]?a[b]:null}(this.styleParents,c),null!=c&&(b=c.getCellElement$java_lang_String(b),null!=b))return b;return a};d.prototype.getStrokeColor=
@@ -1409,42 +1409,42 @@ b=[];b.push(d.LONG_DASH);b.push(d.SPACE);b.push(d.SHORT_DASH);b.push(d.SPACE);d.
d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.SHORT_DASH);b.push(d.SHORT_SPACE);b.push(d.DOT);b.push(d.SHORT_SPACE);b.push(d.DOT);b.push(d.SHORT_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.SHORT_DASH);b.push(d.SHORT_SPACE);b.push(d.SHORT_DASH);b.push(d.SHORT_SPACE);b.push(d.DOT);b.push(d.SHORT_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.DASH);b.push(d.SHORT_SPACE);b.push(d.SHORT_DASH);b.push(d.SHORT_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.DASH);b.push(d.SHORT_SPACE);
b.push(d.SHORT_DASH);b.push(d.SHORT_SPACE);b.push(d.SHORT_DASH);b.push(d.SHORT_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.LONG_DASH);b.push(d.LONG_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.DOT);b.push(d.LONG_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.LONG_DASH);b.push(d.LONG_SPACE);b.push(d.DOT);b.push(d.LONG_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.LONG_DASH);b.push(d.LONG_SPACE);b.push(d.DOT);b.push(d.LONG_SPACE);b.push(d.DOT);b.push(d.LONG_SPACE);
d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.LONG_DASH);b.push(d.LONG_SPACE);b.push(d.LONG_DASH);b.push(d.LONG_SPACE);b.push(d.DOT);b.push(d.LONG_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.XLONG_DASH);b.push(d.LONG_SPACE);b.push(d.DASH);b.push(d.LONG_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.XLONG_DASH);b.push(d.LONG_SPACE);b.push(d.DASH);b.push(d.LONG_SPACE);b.push(d.DASH);b.push(d.LONG_SPACE);d.lineDashPatterns_$LI$().push(b);b=[];b.push(d.XSHORT_DASH);b.push(d.SHORT_SPACE);
-d.lineDashPatterns_$LI$().push(b)};d.getLineDashPattern=function(b){return 0<=b&&23>=b?d.lineDashPatterns_$LI$()[b]:d.lineDashPatterns_$LI$()[0]};return d}();k.__static_initialized=!1;k.vsdxStyleDebug=!1;k.SPACE=4;k.SHORT_SPACE=2;k.LONG_SPACE=6;k.DOT=1;k.DASH=8;k.LONG_DASH=12;k.SHORT_DASH=4;k.XLONG_DASH=20;k.XSHORT_DASH=2;f.Style=k;k.__class="com.mxgraph.io.vsdx.Style"})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d){var c=b.call(this)||this;c.__com_mxgraph_io_vsdx_theme_HslClr_hue=a/360;c.__com_mxgraph_io_vsdx_theme_HslClr_sat=h/100;c.__com_mxgraph_io_vsdx_theme_HslClr_lum=d/100;c.color=(new e.mxgraph.io.vsdx.theme.HSLColor(a,h,d)).toRgb();return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.HslClr=d;d.__class="com.mxgraph.io.vsdx.theme.HslClr"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||
-(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a){var c=b.call(this)||this;c.val=a;c.color=new e.mxgraph.io.vsdx.theme.Color(255,255,255);return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.PrstClr=d;d.__class="com.mxgraph.io.vsdx.theme.PrstClr"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a){var c=b.call(this)||this;c.isDynamic=!0;c.val=a;return c}__extends(a,b);a.prototype.calcColor=function(a,h){var c;c=this.val;c="phClr".equals?"phClr".equals(c):"phClr"===c;c?this.color=h.getStyleColor(a):(this.color=h.getSchemeColor(this.val),this.isDynamic=!1);b.prototype.calcColor.call(this,a,h)};return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.SchemeClr=d;d.__class="com.mxgraph.io.vsdx.theme.SchemeClr"})(f.theme||
-(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d){var c=b.call(this)||this;c.r=0;c.g=0;c.b=0;c.r=a;c.g=h;c.b=d;c.color=new e.mxgraph.io.vsdx.theme.Color(a,h,d);return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.ScrgbClr=d;d.__class="com.mxgraph.io.vsdx.theme.ScrgbClr"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a){var c=b.call(this)||this;c.hexVal=null;c.hexVal=a;c.color=e.mxgraph.io.vsdx.theme.Color.decodeColorHex(a);return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.SrgbClr=d;d.__class="com.mxgraph.io.vsdx.theme.SrgbClr"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h){var c=b.call(this)||this;c.lastClr=null;c.val=a;var d=c.lastClr=h;if(null==d)switch(a){case "windowText":d="000000";break;case "window":d="FFFFFF";break;default:d="FFFFFF"}c.color=e.mxgraph.io.vsdx.theme.Color.decodeColorHex(d);return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.SysClr=d;d.__class="com.mxgraph.io.vsdx.theme.SysClr"})(f.theme||(f.theme={}))})(k.vsdx||(k.vsdx={}))})(k.io||
-(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,k,p){return b.call(this,a,h,d,e,f,k,p)||this}__extends(a,b);a.prototype.handle=function(a,h){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var c=h.getHeight()/e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),d=h.getWidth()/e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();this.x*=d;this.y*=c;this.a*=d;this.b*=c}return b.prototype.handle.call(this,
-a,h)};return a}(e.mxgraph.io.vsdx.geometry.EllipticalArcTo);f.RelEllipticalArcTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelEllipticalArcTo"})(f.geometry||(f.geometry={}))})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var k=function(d){function b(a,b){var c=this;c.text=null;c.fields=null;c.geom=null;c.imageData=null;c.theme=null;c.quickStyleVals=null;c=d.call(this,a,b)||this;c.paragraphs=null;c.styleMap={};c.width=0;c.height=0;c.rotation=0;c.lastX=0;c.lastY=0;c.lastMoveX=0;c.lastMoveY=0;c.lastKnot=-1;c.geomList=null;c.geomListProcessed=!1;c.themeVariant=0;c.cp="0";c.pp="0";c.tp="0";c.fld="0";c.width=c.getScreenNumericalValue$org_w3c_dom_Element$double(function(a,
+d.lineDashPatterns_$LI$().push(b)};d.getLineDashPattern=function(b){return 0<=b&&23>=b?d.lineDashPatterns_$LI$()[b]:d.lineDashPatterns_$LI$()[0]};return d}();l.__static_initialized=!1;l.vsdxStyleDebug=!1;l.SPACE=4;l.SHORT_SPACE=2;l.LONG_SPACE=6;l.DOT=1;l.DASH=8;l.LONG_DASH=12;l.SHORT_DASH=4;l.XLONG_DASH=20;l.XSHORT_DASH=2;f.Style=l;l.__class="com.mxgraph.io.vsdx.Style"})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d){var c=b.call(this)||this;c.__com_mxgraph_io_vsdx_theme_HslClr_hue=a/360;c.__com_mxgraph_io_vsdx_theme_HslClr_sat=h/100;c.__com_mxgraph_io_vsdx_theme_HslClr_lum=d/100;c.color=(new e.mxgraph.io.vsdx.theme.HSLColor(a,h,d)).toRgb();return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.HslClr=d;d.__class="com.mxgraph.io.vsdx.theme.HslClr"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||
+(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a){var c=b.call(this)||this;c.val=a;c.color=new e.mxgraph.io.vsdx.theme.Color(255,255,255);return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.PrstClr=d;d.__class="com.mxgraph.io.vsdx.theme.PrstClr"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a){var c=b.call(this)||this;c.isDynamic=!0;c.val=a;return c}__extends(a,b);a.prototype.calcColor=function(a,h){var c;c=this.val;c="phClr".equals?"phClr".equals(c):"phClr"===c;c?this.color=h.getStyleColor(a):(this.color=h.getSchemeColor(this.val),this.isDynamic=!1);b.prototype.calcColor.call(this,a,h)};return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.SchemeClr=d;d.__class="com.mxgraph.io.vsdx.theme.SchemeClr"})(f.theme||
+(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d){var c=b.call(this)||this;c.r=0;c.g=0;c.b=0;c.r=a;c.g=h;c.b=d;c.color=new e.mxgraph.io.vsdx.theme.Color(a,h,d);return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.ScrgbClr=d;d.__class="com.mxgraph.io.vsdx.theme.ScrgbClr"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a){var c=b.call(this)||this;c.hexVal=null;c.hexVal=a;c.color=e.mxgraph.io.vsdx.theme.Color.decodeColorHex(a);return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.SrgbClr=d;d.__class="com.mxgraph.io.vsdx.theme.SrgbClr"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h){var c=b.call(this)||this;c.lastClr=null;c.val=a;var d=c.lastClr=h;if(null==d)switch(a){case "windowText":d="000000";break;case "window":d="FFFFFF";break;default:d="FFFFFF"}c.color=e.mxgraph.io.vsdx.theme.Color.decodeColorHex(d);return c}__extends(a,b);return a}(e.mxgraph.io.vsdx.theme.OoxmlColor);f.SysClr=d;d.__class="com.mxgraph.io.vsdx.theme.SysClr"})(f.theme||(f.theme={}))})(l.vsdx||(l.vsdx={}))})(l.io||
+(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){(function(f){var d=function(b){function a(a,h,d,e,f,l,p){return b.call(this,a,h,d,e,f,l,p)||this}__extends(a,b);a.prototype.handle=function(a,h){if(null!=this.x&&null!=this.y&&null!=this.a&&null!=this.b&&null!=this.c&&null!=this.d){var c=h.getHeight()/e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(),d=h.getWidth()/e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();this.x*=d;this.y*=c;this.a*=d;this.b*=c}return b.prototype.handle.call(this,
+a,h)};return a}(e.mxgraph.io.vsdx.geometry.EllipticalArcTo);f.RelEllipticalArcTo=d;d.__class="com.mxgraph.io.vsdx.geometry.RelEllipticalArcTo"})(f.geometry||(f.geometry={}))})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var l=function(d){function b(a,b){var c=this;c.text=null;c.fields=null;c.geom=null;c.imageData=null;c.theme=null;c.quickStyleVals=null;c=d.call(this,a,b)||this;c.paragraphs=null;c.styleMap={};c.width=0;c.height=0;c.rotation=0;c.lastX=0;c.lastY=0;c.lastMoveX=0;c.lastMoveY=0;c.lastKnot=-1;c.geomList=null;c.geomListProcessed=!1;c.themeVariant=0;c.cp="0";c.pp="0";c.tp="0";c.fld="0";c.width=c.getScreenNumericalValue$org_w3c_dom_Element$double(function(a,
b){return a[b]?a[b]:null}(c.cellElements,e.mxgraph.io.vsdx.mxVsdxConstants.WIDTH),0);c.height=c.getScreenNumericalValue$org_w3c_dom_Element$double(function(a,b){return a[b]?a[b]:null}(c.cellElements,e.mxgraph.io.vsdx.mxVsdxConstants.HEIGHT),0);return c}__extends(b,d);b.UNICODE_LINE_SEP_$LI$=function(){null==b.UNICODE_LINE_SEP&&(b.ERROR_IMAGE="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4NCjxzdmcNCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyINCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiDQogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIg0KICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiDQogICB3aWR0aD0iMjUwIg0KICAgaGVpZ2h0PSIyNTAiDQogICBpZD0ic3ZnMzMxOSINCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiDQogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ2Ig0KICAgdmVyc2lvbj0iMS4wIg0KICAgc29kaXBvZGk6ZG9jbmFtZT0ibm9waG90b19pLnN2ZyINCiAgIGlua3NjYXBlOm91dHB1dF9leHRlbnNpb249Im9yZy5pbmtzY2FwZS5vdXRwdXQuc3ZnLmlua3NjYXBlIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMzMzIxIj4NCiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUNCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIg0KICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiA1MjYuMTgxMDkgOiAxIg0KICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCINCiAgICAgICBpbmtzY2FwZTp2cF96PSI3NDQuMDk0NDggOiA1MjYuMTgxMDkgOiAxIg0KICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIzNzIuMDQ3MjQgOiAzNTAuNzg3MzkgOiAxIg0KICAgICAgIGlkPSJwZXJzcGVjdGl2ZTMzMjciIC8+DQogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlDQogICAgICAgaWQ9InBlcnNwZWN0aXZlMzM0MiINCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMzcyLjA0NzI0IDogMzUwLjc4NzM5IDogMSINCiAgICAgICBpbmtzY2FwZTp2cF96PSI3NDQuMDk0NDggOiA1MjYuMTgxMDkgOiAxIg0KICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCINCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogNTI2LjE4MTA5IDogMSINCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIiAvPg0KICA8L2RlZnM+DQogIDxzb2RpcG9kaTpuYW1lZHZpZXcNCiAgICAgaWQ9ImJhc2UiDQogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiINCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiDQogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCINCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCINCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiINCiAgICAgaW5rc2NhcGU6em9vbT0iMi4yNDI5NDI3Ig0KICAgICBpbmtzY2FwZTpjeD0iMTIxLjk3NjQ4Ig0KICAgICBpbmtzY2FwZTpjeT0iMTIyLjQ0MTk4Ig0KICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiDQogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSINCiAgICAgc2hvd2dyaWQ9ImZhbHNlIg0KICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE2NjQiDQogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijg0NCINCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii0zIg0KICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTE4IiAvPg0KICA8bWV0YWRhdGENCiAgICAgaWQ9Im1ldGFkYXRhMzMyNCI+DQogICAgPHJkZjpSREY+DQogICAgICA8Y2M6V29yaw0KICAgICAgICAgcmRmOmFib3V0PSIiPg0KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4NCiAgICAgICAgPGRjOnR5cGUNCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4NCiAgICAgICAgPGRjOnRpdGxlPkZvdG9ncmFmaWVydmVyYm90PC9kYzp0aXRsZT4NCiAgICAgICAgPGRjOmRhdGU+MjAwOC0wNi0yOTwvZGM6ZGF0ZT4NCiAgICAgICAgPGRjOmNyZWF0b3I+DQogICAgICAgICAgPGNjOkFnZW50Pg0KICAgICAgICAgICAgPGRjOnRpdGxlPlRvcnJzdGVuIFNrb21wPC9kYzp0aXRsZT4NCiAgICAgICAgICA8L2NjOkFnZW50Pg0KICAgICAgICA8L2RjOmNyZWF0b3I+DQogICAgICAgIDxkYzpyaWdodHM+DQogICAgICAgICAgPGNjOkFnZW50Pg0KICAgICAgICAgICAgPGRjOnRpdGxlPlRvcnN0ZW4gU2tvbXA8L2RjOnRpdGxlPg0KICAgICAgICAgIDwvY2M6QWdlbnQ+DQogICAgICAgIDwvZGM6cmlnaHRzPg0KICAgICAgICA8ZGM6cHVibGlzaGVyPg0KICAgICAgICAgIDxjYzpBZ2VudD4NCiAgICAgICAgICAgIDxkYzp0aXRsZT5Ub3JzdGVuIFNrb21wPC9kYzp0aXRsZT4NCiAgICAgICAgICA8L2NjOkFnZW50Pg0KICAgICAgICA8L2RjOnB1Ymxpc2hlcj4NCiAgICAgICAgPGRjOmxhbmd1YWdlPmRlX0RFPC9kYzpsYW5ndWFnZT4NCiAgICAgICAgPGRjOnN1YmplY3Q+DQogICAgICAgICAgPHJkZjpCYWc+DQogICAgICAgICAgICA8cmRmOmxpPlBpa3RvZ3JhbW07IEZvdG9ncmFmaWVydmVyYm90PC9yZGY6bGk+DQogICAgICAgICAgPC9yZGY6QmFnPg0KICAgICAgICA8L2RjOnN1YmplY3Q+DQogICAgICAgIDxkYzpkZXNjcmlwdGlvbj5Gb3RvZ3JhZmllcnZlcmJvdCBhbHMgUGlrdG9ncmFtbSA8L2RjOmRlc2NyaXB0aW9uPg0KICAgICAgICA8Y2M6bGljZW5zZQ0KICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL3B1YmxpY2RvbWFpbi8iIC8+DQogICAgICA8L2NjOldvcms+DQogICAgICA8Y2M6TGljZW5zZQ0KICAgICAgICAgcmRmOmFib3V0PSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9wdWJsaWNkb21haW4vIj4NCiAgICAgICAgPGNjOnBlcm1pdHMNCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyNSZXByb2R1Y3Rpb24iIC8+DQogICAgICAgIDxjYzpwZXJtaXRzDQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjRGlzdHJpYnV0aW9uIiAvPg0KICAgICAgICA8Y2M6cGVybWl0cw0KICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zI0Rlcml2YXRpdmVXb3JrcyIgLz4NCiAgICAgIDwvY2M6TGljZW5zZT4NCiAgICA8L3JkZjpSREY+DQogIDwvbWV0YWRhdGE+DQogIDxnDQogICAgIGlua3NjYXBlOmxhYmVsPSJFYmVuZSAxIg0KICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIg0KICAgICBpZD0ibGF5ZXIxIj4NCiAgICA8cGF0aA0KICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjEiDQogICAgICAgZD0iTSAxNjQuNTMxMjUgNjIuNjg3NSBDIDE2Mi43OTExNSA2Mi42ODc1MDEgMTYxLjM3NSA2NC4wNzI0MTYgMTYxLjM3NSA2NS44MTI1IEwgMTYxLjM3NSA2OC43NSBMIDM4LjM3NSA2OC43NSBDIDM1LjA5MjI5OCA2OC43NDk5OTkgMzIuNDY4NzUgNzEuMzczNTQ4IDMyLjQ2ODc1IDc0LjY1NjI1IEwgMzIuNDY4NzUgMTgxLjM3NSBDIDMyLjQ2ODc1IDE4NC42NTc3IDM1LjA5MjMwNyAxODcuMzEyNTEgMzguMzc1IDE4Ny4zMTI1IEwgMjExLjYyNSAxODcuMzEyNSBDIDIxNC45MDc2OSAxODcuMzEyNSAyMTcuNTMxMjcgMTg0LjY1NzcgMjE3LjUzMTI1IDE4MS4zNzUgTCAyMTcuNTMxMjUgNzQuNjU2MjUgQyAyMTcuNTMxMjUgNzEuMzczNTUxIDIxNC45MDc2OCA2OC43NSAyMTEuNjI1IDY4Ljc1IEwgMjAyLjA2MjUgNjguNzUgTCAyMDIuMDYyNSA2NS44MTI1IEMgMjAyLjA2MjUgNjQuMDcyNDEgMjAwLjY0NjM1IDYyLjY4NzUgMTk4LjkwNjI1IDYyLjY4NzUgTCAxNjQuNTMxMjUgNjIuNjg3NSB6IE0gNDYuODEyNSA3OCBMIDg4LjY1NjI1IDc4IEMgOTAuMzk2MzQyIDc4IDkxLjgxMjUgNzkuMzg0OTA3IDkxLjgxMjUgODEuMTI1IEwgOTEuODEyNSA5Ni4zMTI1IEMgOTEuODEyNSA5OC4wNTI1OTIgOTAuMzk2MzQzIDk5LjQzNzUgODguNjU2MjUgOTkuNDM3NSBMIDQ2LjgxMjUgOTkuNDM3NSBDIDQ1LjA3MjQwOCA5OS40Mzc1IDQzLjY4NzUgOTguMDUyNTkzIDQzLjY4NzUgOTYuMzEyNSBMIDQzLjY4NzUgODEuMTI1IEMgNDMuNjg3NSA3OS4zODQ5MDggNDUuMDcyNDA3IDc4IDQ2LjgxMjUgNzggeiBNIDE0NiA4OC4yMTg3NSBDIDE2Ny43MzQ3NSA4OC4yMTg3NTMgMTg1LjM3NSAxMDYuMTUwNzEgMTg1LjM3NSAxMjguMjUgQyAxODUuMzc0OTkgMTUwLjM0OTI4IDE2Ny43MzQ3NCAxNjguMjgxMjUgMTQ2IDE2OC4yODEyNSBDIDEyNC4yNjUyNyAxNjguMjgxMjYgMTA2LjYyNSAxNTAuMzQ5MjkgMTA2LjYyNSAxMjguMjUgQyAxMDYuNjI1IDEwNi4xNTA3MSAxMjQuMjY1MjYgODguMjE4NzUgMTQ2IDg4LjIxODc1IHogTSAxNDYgOTEuNzE4NzUgQyAxMjYuMTY1NTcgOTEuNzE4NzUgMTEwLjA2MjUgMTA4LjA4Mjg5IDExMC4wNjI1IDEyOC4yNSBDIDExMC4wNjI1IDE0OC40MTcxMSAxMjYuMTY1NTcgMTY0Ljc4MTI2IDE0NiAxNjQuNzgxMjUgQyAxNjUuODM0NDMgMTY0Ljc4MTI1IDE4MS45Mzc1IDE0OC40MTcxIDE4MS45Mzc1IDEyOC4yNSBDIDE4MS45Mzc1IDEwOC4wODI4OSAxNjUuODM0NDMgOTEuNzE4NzUgMTQ2IDkxLjcxODc1IHogTSAxNDYgOTYuNTkzNzUgQyAxNjMuMTc3NjggOTYuNTkzNzUyIDE3Ny4xMjUgMTEwLjc4NDIgMTc3LjEyNSAxMjguMjUgQyAxNzcuMTI0OTkgMTQ1LjcxNTggMTYzLjE3NzY5IDE1OS44NzUgMTQ2IDE1OS44NzUgQyAxMjguODIyMzEgMTU5Ljg3NSAxMTQuODc1IDE0NS43MTU4IDExNC44NzUgMTI4LjI1IEMgMTE0Ljg3NSAxMTAuNzg0MTkgMTI4LjgyMjMxIDk2LjU5Mzc1IDE0NiA5Ni41OTM3NSB6IE0gMTc2LjUgMTcyLjcxODc1IEwgMjA2LjE4NzUgMTcyLjcxODc1IEMgMjA3LjQyMTM4IDE3Mi43MTg3NSAyMDguNDA2MjUgMTczLjEyNzgzIDIwOC40MDYyNSAxNzMuNjI1IEwgMjA4LjQwNjI1IDE3Ny45Njg3NSBDIDIwOC40MDYyNSAxNzguNDY1OTIgMjA3LjQyMTM4IDE3OC44NDM3NSAyMDYuMTg3NSAxNzguODQzNzUgTCAxNzYuNSAxNzguODQzNzUgQyAxNzUuMjY2MTEgMTc4Ljg0Mzc1IDE3NC4yODEyNSAxNzguNDY1OTIgMTc0LjI4MTI1IDE3Ny45Njg3NSBMIDE3NC4yODEyNSAxNzMuNjI1IEMgMTc0LjI4MTI1IDE3My4xMjc4MyAxNzUuMjY2MTIgMTcyLjcxODc1IDE3Ni41IDE3Mi43MTg3NSB6ICINCiAgICAgICBpZD0icmVjdDMyMDkiIC8+DQogICAgPHBhdGgNCiAgICAgICBzdHlsZT0iZmlsbDojYzQyNjFkO2ZpbGwtb3BhY2l0eToxIg0KICAgICAgIGQ9Ik0gMjAgMCBDIDE4LjU1OTkzOCAwIDE3LjE2NDc0NyAwLjE1MDk4NjY2IDE1LjgxMjUgMC40Mzc1IEMgMTUuMjEwMjkxIDAuNTY1MTk1NzggMTQuNjExOTEzIDAuNzI2MjExMjYgMTQuMDMxMjUgMC45MDYyNSBDIDEzLjU1NDc3MyAxLjA1Mzk4NTIgMTMuMDg1MzQ5IDEuMjI0ODUzNiAxMi42MjUgMS40MDYyNSBDIDEyLjMyODc2NiAxLjUyMzA3MzkgMTIuMDM5MDMzIDEuNjUwOTE4MiAxMS43NSAxLjc4MTI1IEMgMTEuMzQ3Mjc4IDEuOTYyMzU5OCAxMC45NTA0MDYgMi4xMzc0MTY1IDEwLjU2MjUgMi4zNDM3NSBDIDEwLjUyMTU1NSAyLjM2NTU2ODggMTAuNDc4MjczIDIuMzg0MTU1NSAxMC40Mzc1IDIuNDA2MjUgQyAxMC40MTY5MzQgMi40MTczNzU0IDEwLjM5NTUyMiAyLjQyNjMwNDkgMTAuMzc1IDIuNDM3NSBDIDkuODMyNjg2MSAyLjczMzM0NDYgOS4zMjI2NDQ4IDMuMDYzMjQ1MiA4LjgxMjUgMy40MDYyNSBDIDguMjgzMTIyMSAzLjc2MjE4NjUgNy43NzI3NzI4IDQuMTU4OTIwOSA3LjI4MTI1IDQuNTYyNSBDIDcuMjc1MDU1IDQuNTY3NTg2NiA3LjI1NjE4ODggNC41NTc0MDYxIDcuMjUgNC41NjI1IEMgNy4yMzg1NDc5IDQuNTcxOTQzNCA3LjIzMDE4MDYgNC41ODQyODE2IDcuMjE4NzUgNC41OTM3NSBDIDcuMTA0NzM1MiA0LjY4ODAxNTkgNi45ODY4NTA3IDQuNzc4MjY4NyA2Ljg3NSA0Ljg3NSBDIDYuNTE1NzAyMSA1LjE4NjQyNjQgNi4xNzk3OTA5IDUuNTA3NzA5MSA1Ljg0Mzc1IDUuODQzNzUgQyA1LjQwNDQwMjUgNi4yODE4MDc4IDQuOTkwNzQ0OSA2Ljc0MTM1NTQgNC41OTM3NSA3LjIxODc1IEMgNC41NzkwMDg2IDcuMjM2NTQ2MiA0LjU3NzE4MDYgNy4yNjM0MDE1IDQuNTYyNSA3LjI4MTI1IEMgMy43Njc0ODk4IDguMjQzOTE4MSAzLjA0MjI3MjEgOS4yNzE4NzA1IDIuNDM3NSAxMC4zNzUgQyAyLjQyNjIyMzIgMTAuMzk1NjM1IDIuNDE3NDU2MSAxMC40MTY4MiAyLjQwNjI1IDEwLjQzNzUgQyAyLjEwODM5MDggMTAuOTg1MzQ4IDEuODQwMjIzMyAxMS41NDcyMTQgMS41OTM3NSAxMi4xMjUgQyAxLjU3NTU4NjUgMTIuMTY3NjY1IDEuNTQ5MTI1NSAxMi4yMDcxODIgMS41MzEyNSAxMi4yNSBDIDEuMjg3NzEzMSAxMi44MzI0MzMgMS4wOTQ2NzU0IDEzLjQyMTgyMiAwLjkwNjI1IDE0LjAzMTI1IEMgMC43Mjk2MzAxNCAxNC42MDI0OTUgMC41NjMwOTYzNCAxNS4xODg4MjggMC40Mzc1IDE1Ljc4MTI1IEMgMC4xNDY5MTQwNCAxNy4xNDI1NzggLTQuMzkwNjEzM2UtMTggMTguNTQ5NDY2IDAgMjAgTCAwIDIzMCBDIDAgMjQxLjA4IDguOTIgMjUwIDIwIDI1MCBMIDIzMCAyNTAgQyAyMzEuNDQwMDYgMjUwIDIzMi44MzUyNSAyNDkuODQ5MDEgMjM0LjE4NzUgMjQ5LjU2MjUgQyAyMzQuNzg5MDMgMjQ5LjQzNDk3IDIzNS4zODg2NiAyNDkuMjczODEgMjM1Ljk2ODc1IDI0OS4wOTM3NSBDIDIzNi40NDQ3NiAyNDguOTQ2IDIzNi45MTUwNSAyNDguNzc1MjYgMjM3LjM3NSAyNDguNTkzNzUgQyAyMzcuNjcxMjMgMjQ4LjQ3NjkzIDIzNy45NjA5NyAyNDguMzQ5MDggMjM4LjI1IDI0OC4yMTg3NSBDIDIzOC4yNzk4MSAyNDguMjA1MzEgMjM4LjMxNDAyIDI0OC4yMDEwOSAyMzguMzQzNzUgMjQ4LjE4NzUgQyAyMzguNzU4MzYgMjQ3Ljk5ODMgMjM5LjE2Mzc0IDI0Ny44MDk4MSAyMzkuNTYyNSAyNDcuNTkzNzUgQyAyMzkuNTgzMTggMjQ3LjU4MjU0IDIzOS42MDQzNiAyNDcuNTczNzggMjM5LjYyNSAyNDcuNTYyNSBDIDI0MC4xNjkyNSAyNDcuMjY1MTIgMjQwLjY3NTU4IDI0Ni45Mzg3MyAyNDEuMTg3NSAyNDYuNTkzNzUgQyAyNDEuNjY4NzggMjQ2LjI2OTQxIDI0Mi4xNDM1OSAyNDUuOTI2MzkgMjQyLjU5Mzc1IDI0NS41NjI1IEMgMjQyLjY0NDc0IDI0NS41MjEyOCAyNDIuNjk5NDMgMjQ1LjQ3OTIxIDI0Mi43NSAyNDUuNDM3NSBDIDI0Mi44NzY1MSAyNDUuMzMzMTggMjQzLjAwMTE1IDI0NS4yMzIzNSAyNDMuMTI1IDI0NS4xMjUgQyAyNDMuNDgyNjUgMjQ0LjgxNTM4IDI0My44MjE1NSAyNDQuNDkwMTkgMjQ0LjE1NjI1IDI0NC4xNTYyNSBDIDI0NC40OTIyOSAyNDMuODIwMjEgMjQ0LjgxMzU3IDI0My40ODQzIDI0NS4xMjUgMjQzLjEyNSBDIDI0NS4yMzE2NyAyNDMuMDAyMzQgMjQ1LjMzMzgxIDI0Mi44NzUyNyAyNDUuNDM3NSAyNDIuNzUgQyAyNDUuNDQyNzYgMjQyLjc0MzYyIDI0NS40MzIyNSAyNDIuNzI1MTMgMjQ1LjQzNzUgMjQyLjcxODc1IEMgMjQ1Ljg0MjQ5IDI0Mi4yMjgzIDI0Ni4yMzY0IDI0MS43MTU3NiAyNDYuNTkzNzUgMjQxLjE4NzUgQyAyNDYuOTM4MTIgMjQwLjY3ODQzIDI0Ny4yNjUzNiAyNDAuMTY2MjIgMjQ3LjU2MjUgMjM5LjYyNSBDIDI0Ny41NzM2MyAyMzkuNjA0NzIgMjQ3LjU4MjY4IDIzOS41ODI4MiAyNDcuNTkzNzUgMjM5LjU2MjUgQyAyNDcuODkxOTcgMjM5LjAxNDggMjQ4LjE1OTMxIDIzOC40NTIzOSAyNDguNDA2MjUgMjM3Ljg3NSBDIDI0OC40MTU1NCAyMzcuODUzMjggMjQ4LjQyODI5IDIzNy44MzQyNiAyNDguNDM3NSAyMzcuODEyNSBDIDI0OC40NDY0NCAyMzcuNzkxMjkgMjQ4LjQ1OTg4IDIzNy43NzEyNSAyNDguNDY4NzUgMjM3Ljc1IEMgMjQ4LjcwOTkyIDIzNy4xNzQ3NiAyNDguOTA2MjggMjM2LjU3MDA4IDI0OS4wOTM3NSAyMzUuOTY4NzUgQyAyNDkuMjczNzUgMjM1LjM5MTM3IDI0OS40MzQ2OCAyMzQuODE3NTQgMjQ5LjU2MjUgMjM0LjIxODc1IEMgMjQ5Ljg1MzA5IDIzMi44NTc0MiAyNTAgMjMxLjQ1MDUzIDI1MCAyMzAgTCAyNTAgMjAgQyAyNTAgOC45MiAyNDEuMDggLTMuMzUzNzk4N2UtMTcgMjMwIDAgTCAyMCAwIHogTSAzNC43ODEyNSAxOS40MDYyNSBMIDIyNS40Njg3NSAxOS40MDYyNSBDIDIyOC4zMDk0NiAxOS40MDYyNSAyMzAuNTkzNzUgMjEuNjkwNTQ0IDIzMC41OTM3NSAyNC41MzEyNSBMIDIzMC41OTM3NSAyMTUuMjUgTCAzNC43ODEyNSAxOS40MDYyNSB6IE0gMTkuNDA2MjUgMzQuNzUgTCAyMTUuMjE4NzUgMjMwLjU5Mzc1IEwgMjQuNTMxMjUgMjMwLjU5Mzc1IEMgMjEuNjkwNTQ0IDIzMC41OTM3NiAxOS40MDYyNSAyMjguMzA5NDYgMTkuNDA2MjUgMjI1LjQ2ODc1IEwgMTkuNDA2MjUgMzQuNzUgeiAiDQogICAgICAgaWQ9InBhdGgzMTk2IiAvPg0KICA8L2c+DQo8L3N2Zz4NCg==",
b.UNICODE_LINE_SEP=String.fromCharCode(8232));return b.UNICODE_LINE_SEP};b.prototype.setThemeAndVariant=function(a,b){this.theme=a;this.themeVariant=b};b.prototype.getTheme=function(){null!=this.theme&&this.theme.setVariant(this.themeVariant);return this.theme};b.prototype.getQuickStyleVals=function(){return this.quickStyleVals};b.prototype.processGeomList=function(a){if(!this.geomListProcessed){this.geomList=new e.mxgraph.io.vsdx.mxVsdxGeometryList(a);if(null!=this.geom)for(a=0;a<this.geom.length;a++)this.geomList.addGeometry(this.geom[a]);
this.geomListProcessed=!0}};b.prototype.parseShapeElem=function(a,c){d.prototype.parseShapeElem.call(this,a,c);var h=a.nodeName;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"ForeignData")){var h=function(a,b){for(var h=a.firstChild;null!=h;){if(1==h.nodeType){var d=h;if("rel"==d.nodeName.toLowerCase()&&(d=d.getAttribute("r:id"),null!=d&&0!==d.length)){var h=b.lastIndexOf("/"),e="",n="";try{e=b.substring(0,h),n=b.substring(h,b.length)}catch(Z){break}h=c.getRelationship(d,e+"/_rels"+n+".rels");
-if(null!=h){d=h.getAttribute("Target")||"";e=h.getAttribute("Type");h=d.lastIndexOf("/");try{d=d.substring(h+1,d.length)}catch(Z){break}return{type:e,target:d}}break}}h=h.nextSibling}},n=a.ownerDocument.vsdxFileName,f=a.getAttribute("ForeignType"),k=a.getAttribute("CompressionType")||"",w=null;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"Bitmap"))k=k.toLowerCase();else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"MetaFile"))k="png";else if(function(a,b){return a&&a.equals?
-a.equals(b):a===b}(f,"Enhanced Metafile")||function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"EnhMetaFile"))k="png";else if("Object"==f){if(w=h(a,n),0<w.type.indexOf("/oleObject"))if(k=c.getRelationship("rId1","visio/embeddings/_rels/"+w.target+".rels"),null!=k){w=k.getAttribute("Target");f=k.getAttribute("Type");try{var p=w.lastIndexOf("/"),w=w.substring(p+1,w.length)}catch(B){return}k="png";w={type:f,target:w}}else return}else return;null==w&&(w=h(a,n));f=w.type;w=w.target;null!=f&&function(a,
-b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}(f,"image")&&(this.imageData={},(p=c.getMedia(e.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/media/"+w))?(this.imageData.iData=p,function(a,b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}(w.toLowerCase(),".bmp")&&(k="jpg"),this.imageData.iType=k):(this.imageData.iData=b.ERROR_IMAGE,this.imageData.iType="svg+xml"))}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(h,e.mxgraph.io.vsdx.mxVsdxConstants.TEXT)&&(this.text=
+if(null!=h){d=h.getAttribute("Target")||"";e=h.getAttribute("Type");h=d.lastIndexOf("/");try{d=d.substring(h+1,d.length)}catch(Z){break}return{type:e,target:d}}break}}h=h.nextSibling}},n=a.ownerDocument.vsdxFileName,f=a.getAttribute("ForeignType"),l=a.getAttribute("CompressionType")||"",p=null;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"Bitmap"))l=l.toLowerCase();else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"MetaFile"))l="png";else if(function(a,b){return a&&a.equals?
+a.equals(b):a===b}(f,"Enhanced Metafile")||function(a,b){return a&&a.equals?a.equals(b):a===b}(f,"EnhMetaFile"))l="png";else if("Object"==f){if(p=h(a,n),0<p.type.indexOf("/oleObject"))if(l=c.getRelationship("rId1","visio/embeddings/_rels/"+p.target+".rels"),null!=l){p=l.getAttribute("Target");f=l.getAttribute("Type");try{var r=p.lastIndexOf("/"),p=p.substring(r+1,p.length)}catch(C){return}l="png";p={type:f,target:p}}else return}else return;null==p&&(p=h(a,n));f=p.type;p=p.target;null!=f&&function(a,
+b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}(f,"image")&&(this.imageData={},(r=c.getMedia(e.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/media/"+p))?(this.imageData.iData=r,function(a,b){var c=a.length-b.length,h=a.indexOf(b,c);return-1!==h&&h===c}(p.toLowerCase(),".bmp")&&(l="jpg"),this.imageData.iType=l):(this.imageData.iData=b.ERROR_IMAGE,this.imageData.iType="svg+xml"))}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(h,e.mxgraph.io.vsdx.mxVsdxConstants.TEXT)&&(this.text=
a)};b.prototype.parseSection=function(a){var c=a.getAttribute("N");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c,"Geometry"))null==this.geom&&(this.geom=[]),this.geom.push(a);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c,"Field")){a=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Row");for(var h=0;h<a.length;h++){var c=a[h],n=c.getAttribute("IX")||"";if(0!==n.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",
-c.getAttribute("Del")))this.fields[n]="";else{for(var f=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(c,"Cell"),k="",w="",p=0;p<f.length;p++){var r=f[p],c=r.getAttribute("N"),r=r.getAttribute("V")||r.textContent||"";switch(c){case "Value":k=r;break;case "Format":w=r}}if(0!==k.length){try{if(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(w,"{{"))var w=w.replace(/m/g,"@").replace(/M/g,"m").replace(/@/g,"M"),E=isNaN(k)?new Date(k):new Date(b.VSDX_START_TIME+Math.floor(864E5*
-parseFloat(k))),k=Graph.prototype.formatDate(E,w.replace(RegExp("\\{|\\}","g"),""))}catch(C){}this.fields[n]=k}}}}else d.prototype.parseSection.call(this,a)};b.prototype.parseGeom=function(){return this.hasGeomList()?this.geomList.getShapeXML(this):""};b.prototype.getText=function(){return null!=this.text?this.text.textContent:null};b.prototype.getTextChildren=function(){return null!=this.text?this.text.childNodes:null};b.prototype.getWidth=function(){return 0===this.width&&0<this.height?1:this.width};
+c.getAttribute("Del")))this.fields[n]="";else{for(var f=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(c,"Cell"),l="",p="",r=0;r<f.length;r++){var C=f[r],c=C.getAttribute("N"),C=C.getAttribute("V")||C.textContent||"";switch(c){case "Value":l=C;break;case "Format":p=C}}if(0!==l.length){try{if(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(p,"{{"))var p=p.replace(/m/g,"@").replace(/M/g,"m").replace(/@/g,"M"),E=isNaN(l)?new Date(l):new Date(b.VSDX_START_TIME+Math.floor(864E5*
+parseFloat(l))),l=Graph.prototype.formatDate(E,p.replace(RegExp("\\{|\\}","g"),""))}catch(B){}this.fields[n]=l}}}}else d.prototype.parseSection.call(this,a)};b.prototype.parseGeom=function(){return this.hasGeomList()?this.geomList.getShapeXML(this):""};b.prototype.getText=function(){return null!=this.text?this.text.textContent:null};b.prototype.getTextChildren=function(){return null!=this.text?this.text.childNodes:null};b.prototype.getWidth=function(){return 0===this.width&&0<this.height?1:this.width};
b.prototype.getHeight=function(){return 0===this.height&&0<this.width?1:this.height};b.prototype.getRotation=function(){return this.rotation};b.prototype.getStyleMap=function(){return this.styleMap};b.prototype.hasGeom=function(){return!(null==this.geom||0==this.geom.length)};b.prototype.hasGeomList=function(){return null!=this.geomList&&this.geomList.hasGeom()};b.prototype.getPPList=function(a){var b=null;""!=a&&(a=this.getBullet(a),"0"!=a&&(b='<ul style="margin: 0;list-style-type: '+("4"==a?"square":
"disc")+'">'));return b};b.prototype.getTextParagraphFormated=function(a){var b="",h={};h.align=this.getHorizontalAlign(this.pp,!0);h["margin-left"]=this.getIndentLeft(this.pp);h["margin-right"]=this.getIndentRight(this.pp);h["margin-top"]=this.getSpBefore(this.pp)+"px";h["margin-bottom"]=this.getSpAfter(this.pp)+"px";h["text-indent"]=this.getIndentFirst(this.pp);h.valign=this.getAlignVertical();h.direction=this.getTextDirection(this.pp);return b+=this.insertAttributes(a,h)};b.prototype.getTextCharFormated=
-function(a){var b="color:"+this.getTextColor(this.cp)+";",h="font-size:"+parseFloat(this.getTextSize(this.cp))+"px;",d="font-family:"+this.getTextFont(this.cp)+";",f="direction:"+this.getRtlText(this.cp)+";",k="letter-spacing:"+parseFloat(this.getLetterSpace(this.cp))/.71+"px;",w="line-height:"+this.getSpcLine(this.pp),p=";opacity:"+this.getTextOpacity(this.cp),r=this.getTextPos(this.cp),E=this.getTextCase(this.cp);(function(a,b){return a&&a.equals?a.equals(b):a===b})(E,"1")?a=a.toUpperCase():function(a,
-b){return a&&a.equals?a.equals(b):a===b}(E,"2")&&(a=e.mxgraph.io.vsdx.mxVsdxUtils.toInitialCapital(a));(function(a,b){return a&&a.equals?a.equals(b):a===b})(r,"1")?a=e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"sup"):function(a,b){return a&&a.equals?a.equals(b):a===b}(r,"2")&&(a=e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"sub"));a=this.isBold(this.cp)?e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"b"):a;a=this.isItalic(this.cp)?e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"i"):a;a=this.isUnderline(this.cp)?
-e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"u"):a;a=this.getTextStrike(this.cp)?e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"s"):a;a=this.isSmallCaps(this.cp)?e.mxgraph.io.vsdx.mxVsdxUtils.toSmallCaps(a,this.getTextSize(this.cp)):a;return""+('<font style="'+h+d+b+f+k+w+p+'">'+a+"</font>")};b.prototype.getTextDirection=function(a){a=this.getFlags(a);(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"0")?a="ltr":function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"1")&&(a="rtl");return a};
+function(a){var b="color:"+this.getTextColor(this.cp)+";",h="font-size:"+parseFloat(this.getTextSize(this.cp))+"px;",d="font-family:"+this.getTextFont(this.cp)+";",f="direction:"+this.getRtlText(this.cp)+";",l="letter-spacing:"+parseFloat(this.getLetterSpace(this.cp))/.71+"px;",p="line-height:"+this.getSpcLine(this.pp),r=";opacity:"+this.getTextOpacity(this.cp),C=this.getTextPos(this.cp),E=this.getTextCase(this.cp);(function(a,b){return a&&a.equals?a.equals(b):a===b})(E,"1")?a=a.toUpperCase():function(a,
+b){return a&&a.equals?a.equals(b):a===b}(E,"2")&&(a=e.mxgraph.io.vsdx.mxVsdxUtils.toInitialCapital(a));(function(a,b){return a&&a.equals?a.equals(b):a===b})(C,"1")?a=e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"sup"):function(a,b){return a&&a.equals?a.equals(b):a===b}(C,"2")&&(a=e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"sub"));a=this.isBold(this.cp)?e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"b"):a;a=this.isItalic(this.cp)?e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"i"):a;a=this.isUnderline(this.cp)?
+e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"u"):a;a=this.getTextStrike(this.cp)?e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(a,"s"):a;a=this.isSmallCaps(this.cp)?e.mxgraph.io.vsdx.mxVsdxUtils.toSmallCaps(a,this.getTextSize(this.cp)):a;return""+('<font style="'+h+d+b+f+l+p+r+'">'+a+"</font>")};b.prototype.getTextDirection=function(a){a=this.getFlags(a);(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"0")?a="ltr":function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"1")&&(a="rtl");return a};
b.prototype.getSpcLine=function(a){var b=!1;a=this.getSpLine(a);0<a?a*=e.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$():(a=0===a?100:100*Math.abs(a),b=!0);return(new String(a)).toString()+(b?"%":"px")};b.prototype.getSpcBefore=function(a){return this.getSpBefore(a)};b.prototype.insertAttributes=function(a,b){if(-1!=a.indexOf(">")){var c=a.indexOf(">"),d=a.substring(c),c=a.substring(0,c),f=' style="'+e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(b,":")+'"';return c+f+d}return a};b.prototype.getRtlText=
function(a){a=this.getCellElement$java_lang_String$java_lang_String$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.RTL_TEXT,a,e.mxgraph.io.vsdx.mxVsdxConstants.PARAGRAPH);a=this.getValue(a,"ltr");(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"0")?a="ltr":function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"1")&&(a="rtl");return a};b.prototype.isBold=function(a){var b=!1;a=this.getTextStyle(a);(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"")||function(a,b){return a&&a.equals?
a.equals(b):a===b}(a.toLowerCase(),"themed")||(b=1===(parseInt(a)&1));return b};b.prototype.isItalic=function(a){var b=!1;a=this.getTextStyle(a);(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a.toLowerCase(),"themed")||(b=2===(parseInt(a)&2));return b};b.prototype.isUnderline=function(a){var b=!1;a=this.getTextStyle(a);(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a.toLowerCase(),
"themed")||(b=4===(parseInt(a)&4));return b};b.prototype.isSmallCaps=function(a){var b=!1;a=this.getTextStyle(a);(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a.toLowerCase(),"themed")||(b=8===(parseInt(a)&8));return b};b.prototype.getTextOpacity=function(a){a=this.getCellElement$java_lang_String$java_lang_String$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.COLOR_TRANS,a,e.mxgraph.io.vsdx.mxVsdxConstants.CHARACTER);a=this.getValue(a,
"0");var b="1";null!=a&&0!==a.length&&(a=1-parseFloat(a),b=(new String(a)).toString());return b};b.prototype.getTextSize=function(a){a=this.getCellElement$java_lang_String$java_lang_String$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.SIZE,a,e.mxgraph.io.vsdx.mxVsdxConstants.CHARACTER);a=this.getScreenNumericalValue$org_w3c_dom_Element$double(a,12);return""+Math.floor(Math.round(100*a)/100)};b.prototype.getAlignVertical=function(){var a=mxConstants.ALIGN_MIDDLE,b=parseInt(this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.VERTICAL_ALIGN),
"1"));0===b?a=mxConstants.ALIGN_TOP:2===b&&(a=mxConstants.ALIGN_BOTTOM);return a};b.prototype.getGeomList=function(){return this.geomList};b.prototype.getLastX=function(){return this.lastX};b.prototype.getLastY=function(){return this.lastY};b.prototype.getLastMoveX=function(){return this.lastMoveX};b.prototype.getLastMoveY=function(){return this.lastMoveY};b.prototype.getLastKnot=function(){return this.lastKnot};b.prototype.setLastX=function(a){this.lastX=a};b.prototype.setLastY=function(a){this.lastY=
-a};b.prototype.setLastMoveX=function(a){this.lastMoveX=a};b.prototype.setLastMoveY=function(a){this.lastMoveY=a};b.prototype.setLastKnot=function(a){this.lastKnot=a};return b}(e.mxgraph.io.vsdx.Style);k.VSDX_START_TIME=-22091688E5;f.Shape=k;k.__class="com.mxgraph.io.vsdx.Shape"})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){(function(f){var k=function(d){function b(a,b,h,n,f,k){var c=this;c.masterShape=null;c.master=null;c.parentHeight=0;c=d.call(this,b,k)||this;c.htmlLabels=!0;c.rootShape=c;c.shapeName=null;c.shapeIndex=0;c.vertex=!0;c.childShapes={};var l=c.getMasterId(),p=c.getShapeMasterId();c.master=null!=l?n[l]?n[l]:null:f;null!=c.master&&(c.masterShape=null==l&&null!=p?c.master.getSubShape(p):c.master.getMasterShape());n=c.getNameU();f=n.lastIndexOf(".");-1!==f&&(n=n.substring(0,
-f));c.shapeName=n;b=b.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.SHAPES);null!=b&&0<b.length&&(b=b.item(0),c.childShapes=a.parseShapes(b,c.master,!1));b=c.calcRotation();c.rotation=100*b/100;c.rotation%=360;b=a.getCellIntValue("ThemeIndex",-100);-100===b&&(b=parseInt(c.getValue(c.getCellElement$java_lang_String("ThemeIndex"),"0")));k=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===
-b)return a.entries[c].value;return null}(k.getThemes(),b);a=a.getCellIntValue("VariationColorIndex",0);c.setThemeAndVariant(k,a);b=function(a){null==a.entries&&(a.entries=[]);return a.entries}(c.childShapes);for(n=0;n<b.length;n++)f=b[n].getValue(),f.setRootShape(c),null==f.theme&&f.setThemeAndVariant(k,a);c.quickStyleVals=new e.mxgraph.io.vsdx.theme.QuickStyleVals(parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleEffectsMatrix"),"0")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleFillColor"),
+a};b.prototype.setLastMoveX=function(a){this.lastMoveX=a};b.prototype.setLastMoveY=function(a){this.lastMoveY=a};b.prototype.setLastKnot=function(a){this.lastKnot=a};return b}(e.mxgraph.io.vsdx.Style);l.VSDX_START_TIME=-22091688E5;f.Shape=l;l.__class="com.mxgraph.io.vsdx.Shape"})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){(function(f){var l=function(d){function b(a,b,h,n,f,l){var c=this;c.masterShape=null;c.master=null;c.parentHeight=0;c=d.call(this,b,l)||this;c.htmlLabels=!0;c.rootShape=c;c.shapeName=null;c.shapeIndex=0;c.vertex=!0;c.childShapes={};var k=c.getMasterId(),p=c.getShapeMasterId();c.master=null!=k?n[k]?n[k]:null:f;null!=c.master&&(c.masterShape=null==k&&null!=p?c.master.getSubShape(p):c.master.getMasterShape());n=c.getNameU();f=n.lastIndexOf(".");-1!==f&&(n=n.substring(0,
+f));c.shapeName=n;b=b.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.SHAPES);null!=b&&0<b.length&&(b=b.item(0),c.childShapes=a.parseShapes(b,c.master,!1));b=c.calcRotation();c.rotation=100*b/100;c.rotation%=360;b=a.getCellIntValue("ThemeIndex",-100);-100===b&&(b=parseInt(c.getValue(c.getCellElement$java_lang_String("ThemeIndex"),"0")));l=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===
+b)return a.entries[c].value;return null}(l.getThemes(),b);a=a.getCellIntValue("VariationColorIndex",0);c.setThemeAndVariant(l,a);b=function(a){null==a.entries&&(a.entries=[]);return a.entries}(c.childShapes);for(n=0;n<b.length;n++)f=b[n].getValue(),f.setRootShape(c),null==f.theme&&f.setThemeAndVariant(l,a);c.quickStyleVals=new e.mxgraph.io.vsdx.theme.QuickStyleVals(parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleEffectsMatrix"),"0")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleFillColor"),
"1")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleFillMatrix"),"0")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleFontColor"),"1")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleFontMatrix"),"0")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleLineColor"),"1")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleLineMatrix"),"0")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleShadowColor"),
"1")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleType"),"0")),parseInt(c.getValue(c.getCellElement$java_lang_String("QuickStyleVariation"),"0")));null!=c.masterShape?(c.masterShape.processGeomList(null),c.processGeomList(c.masterShape.getGeomList()),0===c.width&&(c.width=c.getScreenNumericalValue$org_w3c_dom_Element$double(c.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.WIDTH),0)),0===c.height&&(c.height=c.getScreenNumericalValue$org_w3c_dom_Element$double(c.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.HEIGHT),
0))):c.processGeomList(null);c.vertex=h||null!=c.childShapes&&!function(a){null==a.entries&&(a.entries=[]);return 0==a.entries.length}(c.childShapes)||null!=c.geomList&&(!c.geomList.isNoFill()||1<c.geomList.getGeoCount());c.layerMember=c.getValue(c.getCellElement$java_lang_String("LayerMember"));c.layerMember&&0==c.layerMember.indexOf("0;")&&(c.layerMember=c.layerMember.substr(2));return c}__extends(b,d);b.__static_initialize=function(){b.__static_initialized||(b.__static_initialized=!0,b.__static_initializer_0())};
@@ -1482,25 +1482,25 @@ a.entries[c].key===b){a.entries[c].value=d;return}a.entries.push({key:b,value:d,
43,mxConstants.ARROW_OPEN);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b){a.entries[c].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(b.arrowTypes_$LI$(),44,mxConstants.ARROW_OPEN);(function(a,b,d){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||
a.entries[c].key===b){a.entries[c].value=d;return}a.entries.push({key:b,value:d,getKey:function(){return this.key},getValue:function(){return this.value}})})(b.arrowTypes_$LI$(),45,mxConstants.ARROW_OPEN)};b.__com_mxgraph_io_vsdx_VsdxShape_LOGGER_$LI$=function(){b.__static_initialize();null==b.__com_mxgraph_io_vsdx_VsdxShape_LOGGER&&(b.__com_mxgraph_io_vsdx_VsdxShape_LOGGER={});return b.__com_mxgraph_io_vsdx_VsdxShape_LOGGER};b.prototype.getShapeNode=function(a){var b;b=this.cellElements;b=b[a]?b[a]:
null;return null==b&&null!=this.masterShape?this.masterShape.getCellElement$java_lang_String(a):b};b.prototype.getTextLabel=function(){var a;a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.HIDE_TEXT),"0");a="1".equals?"1".equals(a):"1"===a;if(a)return null;a=this.getTextChildren();null==a&&null!=this.masterShape&&(a=this.masterShape.getTextChildren());if(this.htmlLabels){if(null!=a)return this.styleMap[mxConstants.STYLE_VERTICAL_ALIGN]=this.getAlignVertical(),
-this.styleMap[mxConstants.STYLE_ALIGN]=this.getHorizontalAlign("0",!1),this.getHtmlTextContent(a)}else return a=this.getText(),null==a&&null!=this.masterShape?this.masterShape.getText():a;return null};b.prototype.getIndex=function(a){a=a.getAttribute("IX")||"";return 0===a.length?"0":a};b.prototype.initLabels=function(a){this.paragraphs={};for(var b=null,d=null,f=null,l=0;l<a.length;l++){var k;k=a.item(l);switch(k.nodeName){case "cp":b=this.getIndex(k);break;case "tp":this.getIndex(k);break;case "pp":d=
-this.getIndex(k);break;case "fld":f=this.getIndex(k);break;case "#text":k=k.textContent;var p;p=this.paragraphs;p=p[d]?p[d]:null;null==p?(p=new e.mxgraph.io.vsdx.Paragraph(k,b,d,f),this.paragraphs[d]=p):p.addText(k,b,f)}}};b.prototype.createHybridLabel=function(a){var b=function(a,b){return a[b]?a[b]:null}(this.paragraphs,a);this.styleMap[mxConstants.STYLE_ALIGN]=this.getHorizontalAlign(a,!1);this.styleMap[mxConstants.STYLE_SPACING_LEFT]=this.getIndentLeft(a);this.styleMap[mxConstants.STYLE_SPACING_RIGHT]=
+this.styleMap[mxConstants.STYLE_ALIGN]=this.getHorizontalAlign("0",!1),this.getHtmlTextContent(a)}else return a=this.getText(),null==a&&null!=this.masterShape?this.masterShape.getText():a;return null};b.prototype.getIndex=function(a){a=a.getAttribute("IX")||"";return 0===a.length?"0":a};b.prototype.initLabels=function(a){this.paragraphs={};for(var b=null,d=null,f=null,k=0;k<a.length;k++){var l;l=a.item(k);switch(l.nodeName){case "cp":b=this.getIndex(l);break;case "tp":this.getIndex(l);break;case "pp":d=
+this.getIndex(l);break;case "fld":f=this.getIndex(l);break;case "#text":l=l.textContent;var p;p=this.paragraphs;p=p[d]?p[d]:null;null==p?(p=new e.mxgraph.io.vsdx.Paragraph(l,b,d,f),this.paragraphs[d]=p):p.addText(l,b,f)}}};b.prototype.createHybridLabel=function(a){var b=function(a,b){return a[b]?a[b]:null}(this.paragraphs,a);this.styleMap[mxConstants.STYLE_ALIGN]=this.getHorizontalAlign(a,!1);this.styleMap[mxConstants.STYLE_SPACING_LEFT]=this.getIndentLeft(a);this.styleMap[mxConstants.STYLE_SPACING_RIGHT]=
this.getIndentRight(a);this.styleMap[mxConstants.STYLE_SPACING_TOP]=this.getSpBefore(a);this.styleMap[mxConstants.STYLE_SPACING_BOTTOM]=this.getSpAfter(a);this.styleMap[mxConstants.STYLE_VERTICAL_ALIGN]=this.getAlignVertical();this.styleMap.fontColor=this.getTextColor(a);this.styleMap.fontSize=this.getTextSize(a);this.styleMap.fontFamily=this.getTextFont(a);var d=this.isBold(a)?mxConstants.FONT_BOLD:0,d=d|(this.isItalic(a)?mxConstants.FONT_ITALIC:0),d=d|(this.isUnderline(a)?mxConstants.FONT_UNDERLINE:
-0);this.styleMap.fontStyle=(new String(d)).toString();a=b.numValues();for(var d=null,e=0;e<a;e++){var f=b.getValue(e);if(0===f.length&&null!=this.fields){var k=b.getField(e);null!=k&&(f=function(a,b){return a[b]?a[b]:null}(this.fields,k),null==f&&null!=this.masterShape&&null!=this.masterShape.fields&&(f=function(a,b){return a[b]?a[b]:null}(this.masterShape.fields,k)))}null!=f&&(d=null==d?f:d+f)}return d};b.prototype.getHtmlTextContent=function(a){function b(a){a=e.mxgraph.io.vsdx.mxVsdxUtils.htmlEntities(a);
-k&&(a="<li>"+a,k=!1);l?(a=a.split("\n"),a[a.length-1]||(a.pop(),k=!0),a=a.join("</li><li>")):a=a.replace(RegExp("\n","g"),"<br/>").replace(new RegExp(e.mxgraph.io.vsdx.Shape.UNICODE_LINE_SEP,"g"),"<br/>");return this.getTextCharFormated(a)}var d="",f=!0,l=!1,k=!1;if(null!=a&&0<a.length)for(var p=0;p<a.length;p++){var r=a.item(p);(function(a,b){return a&&a.equals?a.equals(b):a===b})(r.nodeName,"cp")?this.cp=this.getIndex(r):function(a,b){return a&&a.equals?a.equals(b):a===b}(r.nodeName,"tp")?this.tp=
-this.getIndex(r):function(a,b){return a&&a.equals?a.equals(b):a===b}(r.nodeName,"pp")?(this.pp=this.getIndex(r),l&&(d+="</li></ul>"),f?f=!1:d+="</p>",d+=this.getTextParagraphFormated("<p>"),r=this.getPPList(this.pp),k=l=null!=r,d+=l?r:""):function(a,b){return a&&a.equals?a.equals(b):a===b}(r.nodeName,"fld")?(this.fld=this.getIndex(r),r=null,null!=this.fields&&(r=function(a,b){return a[b]?a[b]:null}(this.fields,this.fld)),null==r&&null!=this.masterShape&&null!=this.masterShape.fields&&(r=function(a,
-b){return a[b]?a[b]:null}(this.masterShape.fields,this.fld)),null!=r&&(d+=b.call(this,r))):function(a,b){return a&&a.equals?a.equals(b):a===b}(r.nodeName,"#text")&&(r=r.textContent,d+=b.call(this,r))}l&&(d+="</li></ul>");d+=f?"":"</p>";e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(d,"div");return d};b.prototype.isConnectorBigNameU=function(a){return function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"60 degree single")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===
+0);this.styleMap.fontStyle=(new String(d)).toString();a=b.numValues();for(var d=null,e=0;e<a;e++){var f=b.getValue(e);if(0===f.length&&null!=this.fields){var l=b.getField(e);null!=l&&(f=function(a,b){return a[b]?a[b]:null}(this.fields,l),null==f&&null!=this.masterShape&&null!=this.masterShape.fields&&(f=function(a,b){return a[b]?a[b]:null}(this.masterShape.fields,l)))}null!=f&&(d=null==d?f:d+f)}return d};b.prototype.getHtmlTextContent=function(a){function b(a){a=e.mxgraph.io.vsdx.mxVsdxUtils.htmlEntities(a);
+l&&(a="<li>"+a,l=!1);k?(a=a.split("\n"),a[a.length-1]||(a.pop(),l=!0),a=a.join("</li><li>")):a=a.replace(RegExp("\n","g"),"<br/>").replace(new RegExp(e.mxgraph.io.vsdx.Shape.UNICODE_LINE_SEP,"g"),"<br/>");return this.getTextCharFormated(a)}var d="",f=!0,k=!1,l=!1;if(null!=a&&0<a.length)for(var p=0;p<a.length;p++){var r=a.item(p);(function(a,b){return a&&a.equals?a.equals(b):a===b})(r.nodeName,"cp")?this.cp=this.getIndex(r):function(a,b){return a&&a.equals?a.equals(b):a===b}(r.nodeName,"tp")?this.tp=
+this.getIndex(r):function(a,b){return a&&a.equals?a.equals(b):a===b}(r.nodeName,"pp")?(this.pp=this.getIndex(r),k&&(d+="</li></ul>"),f?f=!1:d+="</p>",d+=this.getTextParagraphFormated("<p>"),r=this.getPPList(this.pp),l=k=null!=r,d+=k?r:""):function(a,b){return a&&a.equals?a.equals(b):a===b}(r.nodeName,"fld")?(this.fld=this.getIndex(r),r=null,null!=this.fields&&(r=function(a,b){return a[b]?a[b]:null}(this.fields,this.fld)),null==r&&null!=this.masterShape&&null!=this.masterShape.fields&&(r=function(a,
+b){return a[b]?a[b]:null}(this.masterShape.fields,this.fld)),null!=r&&(d+=b.call(this,r))):function(a,b){return a&&a.equals?a.equals(b):a===b}(r.nodeName,"#text")&&(r=r.textContent,d+=b.call(this,r))}k&&(d+="</li></ul>");d+=f?"":"</p>";e.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(d,"div");return d};b.prototype.isConnectorBigNameU=function(a){return function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"60 degree single")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===
b}(a,"45 degree single")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"45 degree double")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"60 degree double")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"45 degree tail")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"60 degree tail")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"45 degree tail")||function(a,b,d){void 0===d&&(d=
0);return a.substr(d,b.length)===b}(a,"60 degree tail")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"Flexi-arrow 2")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"Flexi-arrow 1")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"Flexi-arrow 3")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"Double flexi-arrow")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a,"Fancy arrow")};b.prototype.isVertex=
-function(){return this.vertex};b.prototype.getOriginPoint=function(a,b){var c=this.getPinX(),d=this.getPinY(),f=this.getLocPinY(),k=this.getLocPinX(),p=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.WIDTH),0),r=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.HEIGHT),0),c=c-k,d=a-(d+(r-f));return!b||f===r/2&&k===p/2||0===this.rotation?new mxPoint(c,d):(k=p/2-k,f-=r/2,r=Math.cos((360-
-this.rotation)*Math.PI/180),p=Math.sin((360-this.rotation)*Math.PI/180),new mxPoint(c+k-(k*r-f*p),k*p+f*r+d-f))};b.prototype.getDimensions=function(){var a=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.WIDTH),0),b=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.HEIGHT),0);return new mxPoint(0===a&&0<b?1:a,0===b&&0<a?1:b)};b.prototype.getPinX=function(){return this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.PIN_X),
+function(){return this.vertex};b.prototype.getOriginPoint=function(a,b){var c=this.getPinX(),d=this.getPinY(),f=this.getLocPinY(),l=this.getLocPinX(),p=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.WIDTH),0),r=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.HEIGHT),0),c=c-l,d=a-(d+(r-f));return!b||f===r/2&&l===p/2||0===this.rotation?new mxPoint(c,d):(l=p/2-l,f-=r/2,r=Math.cos((360-
+this.rotation)*Math.PI/180),p=Math.sin((360-this.rotation)*Math.PI/180),new mxPoint(c+l-(l*r-f*p),l*p+f*r+d-f))};b.prototype.getDimensions=function(){var a=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.WIDTH),0),b=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.HEIGHT),0);return new mxPoint(0===a&&0<b?1:a,0===b&&0<a?1:b)};b.prototype.getPinX=function(){return this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.PIN_X),
0)};b.prototype.getPinY=function(){return this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.PIN_Y),0)};b.prototype.getLocPinX=function(){return this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.LOC_PIN_X),0)};b.prototype.getLocPinY=function(){return this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.LOC_PIN_Y),0)};b.prototype.getOpacity=
function(a){this.isGroup();a=this.getValueAsDouble(this.getCellElement$java_lang_String(a),0);a=Math.max(100-100*a,0);return a=Math.min(a,100)};b.prototype.getGradient=function(){if(function(a,b){return a&&a.equals?a.equals(b):a===b}("1",this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.FILL_GRADIENT_ENABLED),"0"))){var a=function(a,b){return a[b]?a[b]:null}(this.sections,"FillGradient");if(null!=a){var b=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a.elem,
"Row"),a=this.getColor(a.getIndexedCell(b[b.length-1].getAttribute("IX"),"GradientStopColor"));if(null!=a&&0!==a.length)return a}}a="";b=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.FILL_PATTERN),"0");25<=parseInt(b)?a=this.getColor(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.FILL_BKGND)):(b=this.getTheme(),null!=b&&(b=b.getFillGraientColor(this.getQuickStyleVals()),null!=b&&(a=b.toHexStr())));return a};b.prototype.getGradientDirection=
function(){var a="",b=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.FILL_PATTERN),"0");(function(a,b){return a&&a.equals?a.equals(b):a===b})(b,"25")?a=mxConstants.DIRECTION_EAST:function(a,b){return a&&a.equals?a.equals(b):a===b}(b,"27")?a=mxConstants.DIRECTION_WEST:function(a,b){return a&&a.equals?a.equals(b):a===b}(b,"28")?a=mxConstants.DIRECTION_SOUTH:function(a,b){return a&&a.equals?a.equals(b):a===b}(b,"30")&&(a=mxConstants.DIRECTION_NORTH);return a};b.prototype.calcRotation=
function(){var a=parseFloat(this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.ANGLE),"0")),a=180*a/Math.PI;return 360-a%360*100/100};b.prototype.propagateRotation=function(a){this.rotation+=a;this.rotation%=360;this.rotation=100*this.rotation/100};b.prototype.getTopSpacing=function(){return 100*(this.getTextTopMargin()/2-2.8)/100};b.prototype.getBottomSpacing=function(){return 100*(this.getTextBottomMargin()/2-2.8)/100};b.prototype.getLeftSpacing=function(){return 100*
(this.getTextLeftMargin()/2-2.8)/100};b.prototype.getRightSpacing=function(){return 100*(this.getTextRightMargin()/2-2.8)/100};b.prototype.getLabelRotation=function(){var a=!0,b=this.calcRotation(),d=parseFloat(this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE),"0")),d=180*d/Math.PI,d=d-b;45>Math.abs(d)||270<Math.abs(d)||(a=!1);return a};b.prototype.getHyperlink=function(){var a=this.getCellElement$java_lang_String$java_lang_String$java_lang_String("Address",
-null,"Hyperlink"),a=this.getValue(a,""),b=this.getCellElement$java_lang_String$java_lang_String$java_lang_String("SubAddress",null,"Hyperlink"),b=this.getValue(b,"");return{extLink:a,pageLink:b}};b.prototype.getProperties=function(){var a=[];if(this.sections&&this.sections.Property)for(var b=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(this.sections.Property.elem,"Row"),d=0;d<b.length;d++)for(var f=b[d],l=f.getAttribute("N"),f=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(f),k=
-0;k<f.length;k++){var p=f[k];if("Value"==p.getAttribute("N")){a.push({key:l,val:p.getAttribute("V")});break}}return a};b.prototype.getStyleFromShape=function(){this.styleMap[e.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=this.getId().toString();this.rotation=Math.round(this.rotation);0!==this.rotation&&(this.styleMap[mxConstants.STYLE_ROTATION]=""+this.rotation);var a=this.getFillColor();(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"")?this.styleMap[mxConstants.STYLE_FILLCOLOR]="none":this.styleMap[mxConstants.STYLE_FILLCOLOR]=
+null,"Hyperlink"),a=this.getValue(a,""),b=this.getCellElement$java_lang_String$java_lang_String$java_lang_String("SubAddress",null,"Hyperlink"),b=this.getValue(b,"");return{extLink:a,pageLink:b}};b.prototype.getProperties=function(){var a=[];if(this.sections&&this.sections.Property)for(var b=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(this.sections.Property.elem,"Row"),d=0;d<b.length;d++)for(var f=b[d],k=f.getAttribute("N"),f=e.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(f),l=
+0;l<f.length;l++){var p=f[l];if("Value"==p.getAttribute("N")){a.push({key:k,val:p.getAttribute("V")});break}}return a};b.prototype.getStyleFromShape=function(){this.styleMap[e.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=this.getId().toString();this.rotation=Math.round(this.rotation);0!==this.rotation&&(this.styleMap[mxConstants.STYLE_ROTATION]=""+this.rotation);var a=this.getFillColor();(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"")?this.styleMap[mxConstants.STYLE_FILLCOLOR]="none":this.styleMap[mxConstants.STYLE_FILLCOLOR]=
a;var b=this.getId();this.styleDebug("ID = "+b+" , Fill Color = "+a);a=this.getGradient();(function(a,b){return a&&a.equals?a.equals(b):a===b})(a,"")?this.styleMap[mxConstants.STYLE_GRADIENTCOLOR]="none":(this.styleMap[mxConstants.STYLE_GRADIENTCOLOR]=a,a=this.getGradientDirection(),function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,mxConstants.DIRECTION_SOUTH)||(this.styleMap[mxConstants.STYLE_GRADIENT_DIRECTION]=a));a=this.getOpacity(e.mxgraph.io.vsdx.mxVsdxConstants.FILL_FOREGND_TRANS);
100>a&&(this.styleMap[mxConstants.STYLE_FILL_OPACITY]=""+a);a=this.getOpacity(e.mxgraph.io.vsdx.mxVsdxConstants.LINE_COLOR_TRANS);100>a&&(this.styleMap[mxConstants.STYLE_STROKE_OPACITY]=""+a);a=this.getForm();a.hasOwnProperty(mxConstants.STYLE_SHAPE)&&function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(function(a,b){return a[b]?a[b]:null}(a,mxConstants.STYLE_SHAPE),"image;")&&(this.styleMap[mxConstants.STYLE_WHITE_SPACE]="wrap");for(var d in a)this.styleMap[d]=a[d];this.isDashed()&&
(this.styleMap[mxConstants.STYLE_DASHED]="1",d=this.getDashPattern(),null!=d&&(this.styleMap[mxConstants.STYLE_DASH_PATTERN]=d));d=this.getStrokeColor();var f=this.getStrokeTransparency();this.styleDebug("ID = "+b+" , Color = "+d+" , stroke transparency = "+f);(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"")||1===f||(this.styleMap[mxConstants.STYLE_STROKECOLOR]=d);b=Math.round(this.getLineWidth())|0;1!==b&&(this.styleMap[mxConstants.STYLE_STROKEWIDTH]=""+b);this.isShadow()&&(this.styleMap[mxConstants.STYLE_SHADOW]=
@@ -1508,21 +1508,21 @@ e.mxgraph.io.vsdx.mxVsdxConstants.TRUE);b=Math.round(this.getTopSpacing())|0;0!=
a);a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.FLIP_X),"0");b=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.FLIP_Y),"0");(function(a,b){return a&&a.equals?a.equals(b):a===b})("1",a)&&(this.styleMap[mxConstants.STYLE_FLIPH]="1");(function(a,b){return a&&a.equals?a.equals(b):a===b})("1",b)&&(this.styleMap[mxConstants.STYLE_FLIPV]="1");this.resolveCommonStyles();return this.styleMap};b.prototype.getDashPattern=function(){var a=
null,b=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.LINE_PATTERN),"0");(b&&b.equals?b.equals("Themed"):"Themed"===b)?(b=this.getTheme(),null!=b&&(a=this.isVertex()?b.getLineDashPattern$com_mxgraph_io_vsdx_theme_QuickStyleVals(this.getQuickStyleVals()):b.getConnLineDashPattern(this.getQuickStyleVals()))):a=f.Style.getLineDashPattern(parseInt(b));if(null!=a&&0!=a.length){for(var b="",d=0;d<a.length;d++)b=b.concat(a[d].toFixed(2)+" ");return b.trim()}return null};
b.prototype.isDashed=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.LINE_PATTERN),"0");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Themed")){if(a=this.getTheme(),null!=a)return this.isVertex()?a.isLineDashed$com_mxgraph_io_vsdx_theme_QuickStyleVals(this.getQuickStyleVals()):a.isConnLineDashed(this.getQuickStyleVals())}else if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0")&&!function(a,b){return a&&a.equals?a.equals(b):
-a===b}(a,"1"))return!0;return!1};b.prototype.getLineWidth=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.LINE_WEIGHT),"1"),b=1;try{var d;d=a&&a.equals?a.equals("Themed"):"Themed"===a;if(d){var f=this.getTheme();null!=f&&(b=(this.isVertex()?f.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals(this.getQuickStyleVals()):f.getConnLineWidth(this.getQuickStyleVals()))/1E4)}else b=parseFloat(a),b=this.getScreenNumericalValue$double(b)}catch(l){}1>
-b&&(b*=2);return b};b.prototype.getStartArrowSize=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW_SIZE),"4");try{var c=4,d;d=a&&a.equals?a.equals("Themed"):"Themed"===a;if(d){var f=this.getTheme();null!=f&&(c=this.isVertex()?f.getStartSize(this.getQuickStyleVals()):f.getConnStartSize(this.getQuickStyleVals()))}else c=parseFloat(a);return b.arrowSizes_$LI$()[c]}catch(l){}return 4};b.prototype.getFinalArrowSize=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW_SIZE),
-"4");try{var c=4,d;d=a&&a.equals?a.equals("Themed"):"Themed"===a;if(d){var f=this.getTheme();null!=f&&(c=this.isVertex()?f.getEndSize(this.getQuickStyleVals()):f.getConnEndSize(this.getQuickStyleVals()))}else c=parseFloat(a);return b.arrowSizes_$LI$()[c]}catch(l){}return 4};b.prototype.getRounding=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.ROUNDING),"0"),b;b=a;b="Themed".equals?"Themed".equals(b):"Themed"===b;b&&(a="0");return parseFloat(a)};
+a===b}(a,"1"))return!0;return!1};b.prototype.getLineWidth=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.LINE_WEIGHT),"1"),b=1;try{var d;d=a&&a.equals?a.equals("Themed"):"Themed"===a;if(d){var f=this.getTheme();null!=f&&(b=(this.isVertex()?f.getLineWidth$com_mxgraph_io_vsdx_theme_QuickStyleVals(this.getQuickStyleVals()):f.getConnLineWidth(this.getQuickStyleVals()))/1E4)}else b=parseFloat(a),b=this.getScreenNumericalValue$double(b)}catch(k){}1>
+b&&(b*=2);return b};b.prototype.getStartArrowSize=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW_SIZE),"4");try{var c=4,d;d=a&&a.equals?a.equals("Themed"):"Themed"===a;if(d){var f=this.getTheme();null!=f&&(c=this.isVertex()?f.getStartSize(this.getQuickStyleVals()):f.getConnStartSize(this.getQuickStyleVals()))}else c=parseFloat(a);return b.arrowSizes_$LI$()[c]}catch(k){}return 4};b.prototype.getFinalArrowSize=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW_SIZE),
+"4");try{var c=4,d;d=a&&a.equals?a.equals("Themed"):"Themed"===a;if(d){var f=this.getTheme();null!=f&&(c=this.isVertex()?f.getEndSize(this.getQuickStyleVals()):f.getConnEndSize(this.getQuickStyleVals()))}else c=parseFloat(a);return b.arrowSizes_$LI$()[c]}catch(k){}return 4};b.prototype.getRounding=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.ROUNDING),"0"),b;b=a;b="Themed".equals?"Themed".equals(b):"Themed"===b;b&&(a="0");return parseFloat(a)};
b.prototype.isShadow=function(){var a=this.getValue(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.SHDW_PATTERN),"0");return function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Themed")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0")?!1:!0};b.prototype.getEdgeStyle$java_util_Map=function(a){var b={};(function(a,b){return a&&a.equals?a.equals(b):a===b})(function(a,b){return a[b]?a[b]:null}(a,mxConstants.STYLE_SHAPE),"mxgraph.lean_mapping.electronic_info_flow_edge")?
b[mxConstants.STYLE_EDGE]=mxConstants.NONE:b[mxConstants.STYLE_EDGE]=mxConstants.EDGESTYLE_ELBOW;return b};b.prototype.getEdgeStyle=function(a){if(null!=a&&a instanceof Object||null===a)return this.getEdgeStyle$java_util_Map(a);if(void 0===a)return this.getEdgeStyle$();throw Error("invalid overload");};b.prototype.getMasterId=function(){return this.shape.hasAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.MASTER)?this.shape.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.MASTER):null};b.prototype.getShapeMasterId=
function(){return this.shape.hasAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.MASTER_SHAPE)?this.shape.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.MASTER_SHAPE):null};b.prototype.isGroup=function(){var a;a=(a=this.shape.getAttribute("Type"))&&a.equals?a.equals("Group"):"Group"===a;return a};b.getType=function(a){return a.getAttribute("Type")};b.prototype.getMaster=function(){return this.master};b.prototype.getNameU=function(){var a=this.shape.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.NAME_U)||
"",b;(b=null==a)||(b=(b=a)&&b.equals?b.equals(""):""===b);b&&null!=this.masterShape&&(a=this.masterShape.getNameU());return a};b.prototype.getName=function(){var a=this.shape.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.NAME),b;(b=null==a)||(b=(b=a)&&b.equals?b.equals(""):""===b);b&&null!=this.masterShape&&(a=this.masterShape.getName());return a};b.prototype.getMasterName=function(){return this.shapeName};b.prototype.setLabelOffset=function(a,b){var c="",d="";this.shape.hasAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.NAME_U)&&
(c=this.shape.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.NAME_U));null!=this.getMaster()&&null!=this.getMaster().getMasterElement()&&this.getMaster().getMasterElement().hasAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.NAME_U)&&(d=this.getMaster().getMasterElement().getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.NAME_U));if(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(c,"Organizational unit")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(d,"Organizational unit")){var f=
this.shape.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0),c=null,c="0.0",d=null,d="-0.4";null!=f&&(c=f.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),c=c.hasAttribute("F")?c.getAttribute("F"):c.textContent,d=f.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),d=d.hasAttribute("F")?d.getAttribute("F"):d.textContent);f=a.getGeometry();c=c.split("Width/2+").join("");c=c.split("DL").join("");d=d.split("Height*").join("");(function(a,b){return a&&
-a.equals?a.equals(b):a===b})(c,"Inh")&&(c="0.0");(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"Inh")&&(d="-0.4");-1!=d.indexOf("txtHeight")&&(d="-0.4");for(var k=b.split(";"),p="",r=0;r<k.length;r++){var B=k[r],B=B.trim();(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b})(B,"tabHeight=")&&(p=B.split("tabHeight=").join(""))}(function(a,b){return a&&a.equals?a.equals(b):a===b})(p,"")&&(p="20");k=parseFloat(p);c=parseFloat(c);d=parseFloat(d);p=f.height;c=.1*f.width+100*c;
-c=new mxPoint(c,p-p*d-k/2);a.getGeometry().offset=c}else if(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(c,"Domain 3D")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(d,"Domain 3D")){f=this.shape.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0);c=null;c="0.0";d=null;d="-0.4";null!=f&&(c=f.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),c=c.getAttribute("F")||"",d=f.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),
+a.equals?a.equals(b):a===b})(c,"Inh")&&(c="0.0");(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"Inh")&&(d="-0.4");-1!=d.indexOf("txtHeight")&&(d="-0.4");for(var l=b.split(";"),p="",r=0;r<l.length;r++){var C=l[r],C=C.trim();(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b})(C,"tabHeight=")&&(p=C.split("tabHeight=").join(""))}(function(a,b){return a&&a.equals?a.equals(b):a===b})(p,"")&&(p="20");l=parseFloat(p);c=parseFloat(c);d=parseFloat(d);p=f.height;c=.1*f.width+100*c;
+c=new mxPoint(c,p-p*d-l/2);a.getGeometry().offset=c}else if(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(c,"Domain 3D")||function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(d,"Domain 3D")){f=this.shape.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0);c=null;c="0.0";d=null;d="-0.4";null!=f&&(c=f.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),c=c.getAttribute("F")||"",d=f.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),
d=d.getAttribute("F")||"");f=a.getGeometry();c=c.split("Width/2+").join("");c=c.split("DL").join("");d=d.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(c,""))c="0.0";if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="-0.4";-1!=d.indexOf("txtHeight")&&(d="-0.4");c=parseFloat(c);d=parseFloat(d);p=f.height;c=.1*f.width+100*c;c=new mxPoint(c,
p-p*d);a.getGeometry().offset=c}};b.prototype.getForm=function(){var a={};if(this.isVertex())try{var c=b.getType(this.getShape());this.styleDebug("shape type = "+c);if(null!=this.imageData||function(a,b){return a&&a.equals?a.equals(b):a===b}(e.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN,c)&&null!=this.masterShape&&null!=this.masterShape.imageData){var d=null!=this.imageData?this.imageData:this.masterShape.imageData;a.shape="image";a.aspect="fixed";var f=function(a,b){return a[b]?a[b]:null}(d,"iType"),
-l=function(a,b){return a[b]?a[b]:null}(d,"iData"),k=parseFloat(this.getValue(this.getCellElement$java_lang_String("ImgOffsetX"),"0")),p=parseFloat(this.getValue(this.getCellElement$java_lang_String("ImgOffsetY"),"0")),r=parseFloat(this.getValue(this.getCellElement$java_lang_String("ImgWidth"),"0")),B=parseFloat(this.getValue(this.getCellElement$java_lang_String("ImgHeight"),"0")),E=parseFloat(this.getValue(this.getCellElement$java_lang_String("Width"),"0")),C=parseFloat(this.getValue(this.getCellElement$java_lang_String("Height"),
-"0"));0!=k||0!=p?this.toBeCroppedImg={imgOffsetX:k,imgOffsetY:p,imgWidth:r,imgHeight:B,width:E,height:C,iType:f,iData:l}:a.image="data:image/"+f+","+l;return a}var F=this.parseGeom();if(function(a,b){return a&&a.equals?a.equals(b):a===b}(F,""))return this.styleDebug("No geom found"),a;var D=Graph.compress(F);a[mxConstants.STYLE_SHAPE]="stencil("+D+")"}catch(K){console.error(K.message,K)}else return this.getEdgeStyle();return a};b.prototype.isOff_page_reference=function(){var a=this.getNameU();return function(a,
+k=function(a,b){return a[b]?a[b]:null}(d,"iData"),l=parseFloat(this.getValue(this.getCellElement$java_lang_String("ImgOffsetX"),"0")),p=parseFloat(this.getValue(this.getCellElement$java_lang_String("ImgOffsetY"),"0")),r=parseFloat(this.getValue(this.getCellElement$java_lang_String("ImgWidth"),"0")),C=parseFloat(this.getValue(this.getCellElement$java_lang_String("ImgHeight"),"0")),E=parseFloat(this.getValue(this.getCellElement$java_lang_String("Width"),"0")),B=parseFloat(this.getValue(this.getCellElement$java_lang_String("Height"),
+"0"));0!=l||0!=p?this.toBeCroppedImg={imgOffsetX:l,imgOffsetY:p,imgWidth:r,imgHeight:C,width:E,height:B,iType:f,iData:k}:a.image="data:image/"+f+","+k;return a}var F=this.parseGeom();if(function(a,b){return a&&a.equals?a.equals(b):a===b}(F,""))return this.styleDebug("No geom found"),a;var D=Graph.compress(F);a[mxConstants.STYLE_SHAPE]="stencil("+D+")"}catch(K){console.error(K.message,K)}else return this.getEdgeStyle();return a};b.prototype.isOff_page_reference=function(){var a=this.getNameU();return function(a,
b){return a&&a.equals?a.equals(b):a===b}(a,"Off-page reference")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Lined/Shaded process")?!0:!1};b.prototype.isExternal_process=function(){var a;a=(a=this.shapeName)&&a.equals?a.equals("External process"):"External process"===a;return a};b.prototype.getDirection=function(a){a=mxResources.get("mxOffset"+this.shapeName);if(null!=a&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0")&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,
"")){if(function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"1"))return mxConstants.DIRECTION_SOUTH;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"2"))return mxConstants.DIRECTION_WEST;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"3"))return mxConstants.DIRECTION_NORTH}return mxConstants.DIRECTION_EAST};b.prototype.isSubproces=function(){var a;a=(a=this.shapeName)&&a.equals?a.equals("Subproces"):"Subproces"===a;return a};b.prototype.getEdgeStyle$=function(){return{edgeStyle:"none"}};
b.prototype.getChildShapes=function(){return this.childShapes};b.prototype.setChildShapes=function(a){this.childShapes=a};b.prototype.isDisplacedLabel=function(){var a=this.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X,"F",""),b=this.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y,"F",""),d=this.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_WIDTH,"F",""),f=this.getAttribute(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_HEIGHT,"F","");if(null!=this.masterShape){if(""===a||function(a,
@@ -1533,126 +1533,126 @@ b.length)===b}(b.toLowerCase(),"controls.row_"))?!1:!0};b.prototype.isVerticalLa
"V",""));return function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0.0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")?!1:!0};b.prototype.setRootShape=function(a){this.rootShape=a};b.prototype.getRootShape=function(){return this.rootShape};b.prototype.getStartXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_X),
0))/100);a=Math.floor(Math.round(100*(a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_Y),0)))/100);return new mxPoint(b,a)};b.prototype.getEndXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.END_X),0))/100);a=Math.floor(Math.round(100*(a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.END_Y),
0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,d){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,d):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var d=[];if(null!=this.shape){var f=this.shape.getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.GEOM);if(0<f.length&&(f=f.item(0).getElementsByTagName(e.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=f)){for(var f=f.getAttribute("F")||
-"",f=f.replace(RegExp("NURBS\\(","g"),""),f=f.replace(RegExp("\\)","g"),""),f=f.replace(RegExp(",","g")," "),f=f.replace(RegExp("\\s\\s","g")," "),f=f.split(" "),l=f.length,k=[];0<l--;)k.push(0);for(l=0;l<f.length;l++)k[l]=parseFloat(f[l]);for(l=2;l+4<f.length;l+=4){var p=new mxPoint,r=k[l+3];p.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*k[l+2]))/100);p.y=Math.floor(Math.round(100*(b.y-100*r))/100);d.push(p)}return d}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[e.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=
+"",f=f.replace(RegExp("NURBS\\(","g"),""),f=f.replace(RegExp("\\)","g"),""),f=f.replace(RegExp(",","g")," "),f=f.replace(RegExp("\\s\\s","g")," "),f=f.split(" "),k=f.length,l=[];0<k--;)l.push(0);for(k=0;k<f.length;k++)l[k]=parseFloat(f[k]);for(k=2;k+4<f.length;k+=4){var p=new mxPoint,r=l[k+3];p.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*l[k+2]))/100);p.y=Math.floor(Math.round(100*(b.y-100*r))/100);d.push(p)}return d}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[e.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=
this.getId().toString();a=this.getForm();if(null!=a&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,""))for(var c in a)this.styleMap[c]=a[c];this.isDashed()&&(this.styleMap[mxConstants.STYLE_DASHED]="1",c=this.getDashPattern(),null!=c&&(this.styleMap[mxConstants.STYLE_DASH_PATTERN]=c));c=this.getEdgeMarker(!0);null!=c&&(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(c,b.ARROW_NO_FILL_MARKER)&&(c=c.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_STARTFILL]=
"0"),this.styleMap[mxConstants.STYLE_STARTARROW]=c);c=this.getEdgeMarker(!1);null!=c&&(function(a,b,c){void 0===c&&(c=0);return a.substr(c,b.length)===b}(c,b.ARROW_NO_FILL_MARKER)&&(c=c.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_ENDFILL]="0"),this.styleMap[mxConstants.STYLE_ENDARROW]=c);c=Math.round(this.getStartArrowSize())|0;6!==c&&(this.styleMap[mxConstants.STYLE_STARTSIZE]=""+c);c=Math.round(this.getFinalArrowSize())|0;6!==c&&(this.styleMap[mxConstants.STYLE_ENDSIZE]=
""+c);c=Math.round(this.getLineWidth())|0;1!==c&&(this.styleMap[mxConstants.STYLE_STROKEWIDTH]=""+c);c=this.getStrokeColor();(function(a,b){return a&&a.equals?a.equals(b):a===b})(c,"")||(this.styleMap[mxConstants.STYLE_STROKECOLOR]=c);this.isShadow()&&(this.styleMap[mxConstants.STYLE_SHADOW]=e.mxgraph.io.vsdx.mxVsdxConstants.TRUE);this.isConnectorBigNameU(this.getNameU())&&(this.styleMap[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_ARROW,c=this.getFillColor(),function(a,b){return a&&a.equals?a.equals(b):
a===b}(c,"")||(this.styleMap[mxConstants.STYLE_FILLCOLOR]=c));c=Math.round(this.getTopSpacing())|0;this.styleMap[mxConstants.STYLE_SPACING_TOP]=""+c;c=Math.round(this.getBottomSpacing())|0;this.styleMap[mxConstants.STYLE_SPACING_BOTTOM]=""+c;c=Math.round(this.getLeftSpacing())|0;this.styleMap[mxConstants.STYLE_SPACING_LEFT]=""+c;c=Math.round(this.getRightSpacing())|0;this.styleMap[mxConstants.STYLE_SPACING_RIGHT]=""+c;c=this.getAlignVertical();this.styleMap[mxConstants.STYLE_VERTICAL_ALIGN]=c;this.styleMap.html=
"1";this.resolveCommonStyles();return this.styleMap};b.prototype.resolveCommonStyles=function(){var a=this.getTextBkgndColor(this.getCellElement$java_lang_String(e.mxgraph.io.vsdx.mxVsdxConstants.TEXT_BKGND)),b;b=a&&a.equals?a.equals(""):""===a;b||"1"!=this.getValue(this.getCellElement$java_lang_String("TextBkgndTrans"),"0")&&(this.styleMap[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR]=a);this.styleMap[mxConstants.STYLE_ROUNDED]=0<this.getRounding()?e.mxgraph.io.vsdx.mxVsdxConstants.TRUE:e.mxgraph.io.vsdx.mxVsdxConstants.FALSE;
-return this.styleMap};b.prototype.getEdgeMarker=function(a){var c=this.getValue(this.getCellElement$java_lang_String(a?e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW:e.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW),"0"),d=0;try{if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c,"Themed")){var f=this.getTheme();null!=f&&(d=this.isVertex()?f.getEdgeMarker(a,this.getQuickStyleVals()):f.getConnEdgeMarker(a,this.getQuickStyleVals()))}else d=parseInt(c)}catch(l){}a=function(a,b){null==a.entries&&(a.entries=
+return this.styleMap};b.prototype.getEdgeMarker=function(a){var c=this.getValue(this.getCellElement$java_lang_String(a?e.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_ARROW:e.mxgraph.io.vsdx.mxVsdxConstants.END_ARROW),"0"),d=0;try{if(function(a,b){return a&&a.equals?a.equals(b):a===b}(c,"Themed")){var f=this.getTheme();null!=f&&(d=this.isVertex()?f.getEdgeMarker(a,this.getQuickStyleVals()):f.getConnEdgeMarker(a,this.getQuickStyleVals()))}else d=parseInt(c)}catch(k){}a=function(a,b){null==a.entries&&(a.entries=
[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(b.arrowTypes_$LI$(),d);0<d&&null==a&&(a=function(a,b){null==a.entries&&(a.entries=[]);for(var c=0;c<a.entries.length;c++)if(null!=a.entries[c].key.equals&&a.entries[c].key.equals(b)||a.entries[c].key===b)return a.entries[c].value;return null}(b.arrowTypes_$LI$(),1));return a};b.prototype.getCellElement$java_lang_String=function(a){var b=d.prototype.getCellElement$java_lang_String.call(this,
a);return null==b&&null!=this.masterShape?this.masterShape.getCellElement$java_lang_String(a):b};b.prototype.getCellElement$java_lang_String$java_lang_String$java_lang_String=function(a,b,e){var c=d.prototype.getCellElement$java_lang_String$java_lang_String$java_lang_String.call(this,a,b,e);return null==c&&null!=this.masterShape?this.masterShape.getCellElement$java_lang_String$java_lang_String$java_lang_String(a,b,e):c};b.prototype.getCellElement=function(a,b,d){if("string"!==typeof a&&null!==a||
"string"!==typeof b&&null!==b||"string"!==typeof d&&null!==d){if("string"!==typeof a&&null!==a||void 0!==b||void 0!==d)throw Error("invalid overload");return this.getCellElement$java_lang_String(a)}return this.getCellElement$java_lang_String$java_lang_String$java_lang_String(a,b,d)};b.prototype.createLabelSubShape=function(a,b){var c=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_WIDTH),this.getWidth()),d=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_HEIGHT),
-this.getHeight()),f=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_X),c/2),k=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_Y),d/2),p=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X),f),r=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y),
-k),B=this.getValueAsDouble(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE),0),E=this.getTextLabel();if(null!=E&&0!==E.length){var C=mxUtils.clone(this.getStyleMap())||{};C[mxConstants.STYLE_FILLCOLOR]=mxConstants.NONE;C[mxConstants.STYLE_STROKECOLOR]=mxConstants.NONE;C[mxConstants.STYLE_GRADIENTCOLOR]=mxConstants.NONE;C.hasOwnProperty("align")||(C.align="center");C.hasOwnProperty("verticalAlign")||(C.verticalAlign="middle");C.hasOwnProperty("whiteSpace")||(C.whiteSpace="wrap");delete C.shape;
-delete C.image;this.isVerticalLabel()&&(B+=Math.PI+.01,C.horizontal="0");var F=this.getRotation();0!==B&&(B=360-180*B/Math.PI,B=Math.round((B+F)%360*100)/100,0!==B&&(C.rotation=""+B));C="text;"+e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(C,"=");k=b.getGeometry().height-(r+d-k);f=p-f;0<F&&(p=new mxGeometry(f,k,c,d),f=b.getGeometry(),e.mxgraph.online.Utils.rotatedGeometry(p,F,f.width/2,f.height/2),f=p.x,k=p.y);return a.insertVertex(b,null,E,Math.round(100*f)/100,Math.round(100*k)/100,Math.round(100*
-c)/100,Math.round(100*d)/100,C+";html=1;")}return null};b.prototype.getLblEdgeOffset=function(a,b){if(null!=b&&1<b.length){var c=new mxCellState;c.absolutePoints=b;a.updateEdgeBounds(c);var c=a.getPoint(c),d=b[0],f=b[b.length-1],k=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_WIDTH),this.getWidth()),p=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_HEIGHT),this.getHeight()),
-r=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_X),0),B=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_Y),0),E=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X),0),C=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y),
-0),f=(this.getHeight()-(d.y-f.y))/2+d.y-c.y-(C-B+p/2),c=E-r+k/2+(d.x-c.x);return 1E11<Math.abs(c)?null:new mxPoint(Math.floor(Math.round(100*c)/100),Math.floor(Math.round(100*f)/100))}return null};b.prototype.getShapeIndex=function(){return this.shapeIndex};b.prototype.setShapeIndex=function(a){this.shapeIndex=a};return b}(e.mxgraph.io.vsdx.Shape);k.__static_initialized=!1;k.ARROW_NO_FILL_MARKER="0";k.maxDp=2;k.USE_SHAPE_MATCH=!1;k.stencilTemplate='<shape h="htemplate" w="wtemplate" aspect="variable" strokewidth="inherit"><connections></connections><background></background><foreground></foreground></shape>';
-f.VsdxShape=k;k.__class="com.mxgraph.io.vsdx.VsdxShape"})(k.vsdx||(k.vsdx={}))})(k.io||(k.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
-(function(e){(function(k){(function(k){var f=function(){function f(){}f.__static_initialize=function(){f.__static_initialized||(f.__static_initialized=!0,f.__static_initializer_0())};f.CA_$LI$=function(){f.__static_initialize();null==f.CA&&(f.CA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""));return f.CA};f.IA_$LI$=function(){f.__static_initialize();if(null==f.IA){for(var d=256,b=[];0<d--;)b.push(0);f.IA=b}return f.IA};f.__static_initializer_0=function(){for(var d=f.IA_$LI$(),
-b=0;b<d.length;b++)d[b]=-1;d=0;for(b=f.CA_$LI$().length;d<b;d++)f.IA_$LI$()[f.CA_$LI$()[d].charCodeAt(0)]=d;f.IA_$LI$()[61]=0};f.encodeToChar=function(d,b,a){var c=null!=d?d.length-b:0;if(0===c)return[];for(var e=3*(c/3|0),k=((c-1)/3|0)+1<<2,k=k+(a?((k-1)/76|0)<<1:0),l=Array(k),p=b,r=0,A=0;p<e+b;){var B=(d[p++]&255)<<16|(d[p++]&255)<<8|d[p++]&255;l[r++]=f.CA_$LI$()[B>>>18&63];l[r++]=f.CA_$LI$()[B>>>12&63];l[r++]=f.CA_$LI$()[B>>>6&63];l[r++]=f.CA_$LI$()[B&63];a&&19===++A&&r<k-2&&(l[r++]="\r",l[r++]=
-"\n",A=0)}a=c-e;0<a&&(B=(d[e+b]&255)<<10|(2===a?(d[c+b-1]&255)<<2:0),l[k-4]=f.CA_$LI$()[B>>12],l[k-3]=f.CA_$LI$()[B>>>6&63],l[k-2]=2===a?f.CA_$LI$()[B&63]:"=",l[k-1]="=");return l};f.decode$char_A=function(d){var b=null!=d?d.length:0;if(0===b)return[];for(var a=0,c=0;c<b;c++)0>f.IA_$LI$()[d[c].charCodeAt(0)]&&a++;if(0!==(b-a)%4)return null;for(var e=0,c=b;1<c&&0>=f.IA_$LI$()[d[--c].charCodeAt(0)];)61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d[c])&&e++;for(var b=(6*(b-a)>>3)-e,a=function(a){for(var b=
-[];0<a--;)b.push(0);return b}(b),k=e=0;k<b;){for(var l=c=0;4>l;l++){var p=f.IA_$LI$()[d[e++].charCodeAt(0)];0<=p?c|=p<<18-6*l:l--}a[k++]=c>>16|0;k<b&&(a[k++]=c>>8|0,k<b&&(a[k++]=c|0))}return a};f.decode=function(d){if(null!=d&&d instanceof Array&&(0==d.length||null==d[0]||"string"===typeof d[0])||null===d)return e.mxgraph.online.mxBase64.decode$char_A(d);if(null!=d&&d instanceof Array&&(0==d.length||null==d[0]||"number"===typeof d[0])||null===d)return e.mxgraph.online.mxBase64.decode$byte_A(d);if("string"===
-typeof d||null===d)return e.mxgraph.online.mxBase64.decode$java_lang_String(d);throw Error("invalid overload");};f.decodeFast$char_A=function(d){var b=d.length;if(0===b)return[];for(var a=0,c=b-1;a<c&&0>f.IA_$LI$()[d[a].charCodeAt(0)];)a++;for(;0<c&&0>f.IA_$LI$()[d[c].charCodeAt(0)];)c--;for(var e=61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d[c])?61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d[c-1])?2:1:0,k=c-a+1,l=76<b?(13==function(a){return null==a.charCodeAt?a:
-a.charCodeAt(0)}(d[76])?k/78|0:0)<<1:0,k=(6*(k-l)>>3)-e,b=function(a){for(var b=[];0<a--;)b.push(0);return b}(k),p=0,r=0,A=3*(k/3|0);p<A;){var B=f.IA_$LI$()[d[a++].charCodeAt(0)]<<18|f.IA_$LI$()[d[a++].charCodeAt(0)]<<12|f.IA_$LI$()[d[a++].charCodeAt(0)]<<6|f.IA_$LI$()[d[a++].charCodeAt(0)];b[p++]=B>>16|0;b[p++]=B>>8|0;b[p++]=B|0;0<l&&19===++r&&(a+=2,r=0)}if(p<k){for(l=B=0;a<=c-e;l++)B|=f.IA_$LI$()[d[a++].charCodeAt(0)]<<18-6*l;for(d=16;p<k;d-=8)b[p++]=B>>d|0}return b};f.decodeFast=function(d){if(null!=
+this.getHeight()),f=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_X),c/2),l=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_Y),d/2),p=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X),f),r=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y),
+l),C=this.getValueAsDouble(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE),0),E=this.getTextLabel();if(null!=E&&0!==E.length){var B=mxUtils.clone(this.getStyleMap())||{};B[mxConstants.STYLE_FILLCOLOR]=mxConstants.NONE;B[mxConstants.STYLE_STROKECOLOR]=mxConstants.NONE;B[mxConstants.STYLE_GRADIENTCOLOR]=mxConstants.NONE;B.hasOwnProperty("align")||(B.align="center");B.hasOwnProperty("verticalAlign")||(B.verticalAlign="middle");B.hasOwnProperty("whiteSpace")||(B.whiteSpace="wrap");delete B.shape;
+delete B.image;this.isVerticalLabel()&&(C+=Math.PI+.01,B.horizontal="0");var F=this.getRotation();0!==C&&(C=360-180*C/Math.PI,C=Math.round((C+F)%360*100)/100,0!==C&&(B.rotation=""+C));B="text;"+e.mxgraph.io.vsdx.mxVsdxUtils.getStyleString(B,"=");l=b.getGeometry().height-(r+d-l);f=p-f;0<F&&(p=new mxGeometry(f,l,c,d),f=b.getGeometry(),e.mxgraph.online.Utils.rotatedGeometry(p,F,f.width/2,f.height/2),f=p.x,l=p.y);return a.insertVertex(b,null,E,Math.round(100*f)/100,Math.round(100*l)/100,Math.round(100*
+c)/100,Math.round(100*d)/100,B+";html=1;")}return null};b.prototype.getLblEdgeOffset=function(a,b){if(null!=b&&1<b.length){var c=new mxCellState;c.absolutePoints=b;a.updateEdgeBounds(c);var c=a.getPoint(c),d=b[0],f=b[b.length-1],l=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_WIDTH),this.getWidth()),p=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_HEIGHT),this.getHeight()),
+r=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_X),0),C=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_LOC_PIN_Y),0),E=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_X),0),B=this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getShapeNode(e.mxgraph.io.vsdx.mxVsdxConstants.TXT_PIN_Y),
+0),f=(this.getHeight()-(d.y-f.y))/2+d.y-c.y-(B-C+p/2),c=E-r+l/2+(d.x-c.x);return 1E11<Math.abs(c)?null:new mxPoint(Math.floor(Math.round(100*c)/100),Math.floor(Math.round(100*f)/100))}return null};b.prototype.getShapeIndex=function(){return this.shapeIndex};b.prototype.setShapeIndex=function(a){this.shapeIndex=a};return b}(e.mxgraph.io.vsdx.Shape);l.__static_initialized=!1;l.ARROW_NO_FILL_MARKER="0";l.maxDp=2;l.USE_SHAPE_MATCH=!1;l.stencilTemplate='<shape h="htemplate" w="wtemplate" aspect="variable" strokewidth="inherit"><connections></connections><background></background><foreground></foreground></shape>';
+f.VsdxShape=l;l.__class="com.mxgraph.io.vsdx.VsdxShape"})(l.vsdx||(l.vsdx={}))})(l.io||(l.io={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));
+(function(e){(function(l){(function(l){var f=function(){function f(){}f.__static_initialize=function(){f.__static_initialized||(f.__static_initialized=!0,f.__static_initializer_0())};f.CA_$LI$=function(){f.__static_initialize();null==f.CA&&(f.CA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""));return f.CA};f.IA_$LI$=function(){f.__static_initialize();if(null==f.IA){for(var d=256,b=[];0<d--;)b.push(0);f.IA=b}return f.IA};f.__static_initializer_0=function(){for(var d=f.IA_$LI$(),
+b=0;b<d.length;b++)d[b]=-1;d=0;for(b=f.CA_$LI$().length;d<b;d++)f.IA_$LI$()[f.CA_$LI$()[d].charCodeAt(0)]=d;f.IA_$LI$()[61]=0};f.encodeToChar=function(d,b,a){var c=null!=d?d.length-b:0;if(0===c)return[];for(var e=3*(c/3|0),l=((c-1)/3|0)+1<<2,l=l+(a?((l-1)/76|0)<<1:0),k=Array(l),p=b,r=0,A=0;p<e+b;){var C=(d[p++]&255)<<16|(d[p++]&255)<<8|d[p++]&255;k[r++]=f.CA_$LI$()[C>>>18&63];k[r++]=f.CA_$LI$()[C>>>12&63];k[r++]=f.CA_$LI$()[C>>>6&63];k[r++]=f.CA_$LI$()[C&63];a&&19===++A&&r<l-2&&(k[r++]="\r",k[r++]=
+"\n",A=0)}a=c-e;0<a&&(C=(d[e+b]&255)<<10|(2===a?(d[c+b-1]&255)<<2:0),k[l-4]=f.CA_$LI$()[C>>12],k[l-3]=f.CA_$LI$()[C>>>6&63],k[l-2]=2===a?f.CA_$LI$()[C&63]:"=",k[l-1]="=");return k};f.decode$char_A=function(d){var b=null!=d?d.length:0;if(0===b)return[];for(var a=0,c=0;c<b;c++)0>f.IA_$LI$()[d[c].charCodeAt(0)]&&a++;if(0!==(b-a)%4)return null;for(var e=0,c=b;1<c&&0>=f.IA_$LI$()[d[--c].charCodeAt(0)];)61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d[c])&&e++;for(var b=(6*(b-a)>>3)-e,a=function(a){for(var b=
+[];0<a--;)b.push(0);return b}(b),l=e=0;l<b;){for(var k=c=0;4>k;k++){var p=f.IA_$LI$()[d[e++].charCodeAt(0)];0<=p?c|=p<<18-6*k:k--}a[l++]=c>>16|0;l<b&&(a[l++]=c>>8|0,l<b&&(a[l++]=c|0))}return a};f.decode=function(d){if(null!=d&&d instanceof Array&&(0==d.length||null==d[0]||"string"===typeof d[0])||null===d)return e.mxgraph.online.mxBase64.decode$char_A(d);if(null!=d&&d instanceof Array&&(0==d.length||null==d[0]||"number"===typeof d[0])||null===d)return e.mxgraph.online.mxBase64.decode$byte_A(d);if("string"===
+typeof d||null===d)return e.mxgraph.online.mxBase64.decode$java_lang_String(d);throw Error("invalid overload");};f.decodeFast$char_A=function(d){var b=d.length;if(0===b)return[];for(var a=0,c=b-1;a<c&&0>f.IA_$LI$()[d[a].charCodeAt(0)];)a++;for(;0<c&&0>f.IA_$LI$()[d[c].charCodeAt(0)];)c--;for(var e=61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d[c])?61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d[c-1])?2:1:0,l=c-a+1,k=76<b?(13==function(a){return null==a.charCodeAt?a:
+a.charCodeAt(0)}(d[76])?l/78|0:0)<<1:0,l=(6*(l-k)>>3)-e,b=function(a){for(var b=[];0<a--;)b.push(0);return b}(l),p=0,r=0,A=3*(l/3|0);p<A;){var C=f.IA_$LI$()[d[a++].charCodeAt(0)]<<18|f.IA_$LI$()[d[a++].charCodeAt(0)]<<12|f.IA_$LI$()[d[a++].charCodeAt(0)]<<6|f.IA_$LI$()[d[a++].charCodeAt(0)];b[p++]=C>>16|0;b[p++]=C>>8|0;b[p++]=C|0;0<k&&19===++r&&(a+=2,r=0)}if(p<l){for(k=C=0;a<=c-e;k++)C|=f.IA_$LI$()[d[a++].charCodeAt(0)]<<18-6*k;for(d=16;p<l;d-=8)b[p++]=C>>d|0}return b};f.decodeFast=function(d){if(null!=
d&&d instanceof Array&&(0==d.length||null==d[0]||"string"===typeof d[0])||null===d)return e.mxgraph.online.mxBase64.decodeFast$char_A(d);if(null!=d&&d instanceof Array&&(0==d.length||null==d[0]||"number"===typeof d[0])||null===d)return e.mxgraph.online.mxBase64.decodeFast$byte_A(d);if("string"===typeof d||null===d)return e.mxgraph.online.mxBase64.decodeFast$java_lang_String(d);throw Error("invalid overload");};f.encodeToByte=function(d,b){var a=null!=d?d.length:0;if(0===a)return[];for(var c=3*(a/
-3|0),e=((a-1)/3|0)+1<<2,k=e+=b?((e-1)/76|0)<<1:0,l=[];0<k--;)l.push(0);for(var p=0,r=0,A=0;p<c;)k=(d[p++]&255)<<16|(d[p++]&255)<<8|d[p++]&255,l[r++]=f.CA_$LI$()[k>>>18&63].charCodeAt(0),l[r++]=f.CA_$LI$()[k>>>12&63].charCodeAt(0),l[r++]=f.CA_$LI$()[k>>>6&63].charCodeAt(0),l[r++]=f.CA_$LI$()[k&63].charCodeAt(0),b&&19===++A&&r<e-2&&(l[r++]=13,l[r++]=10,A=0);p=a-c;0<p&&(k=(d[c]&255)<<10|(2===p?(d[a-1]&255)<<2:0),l[e-4]=f.CA_$LI$()[k>>12].charCodeAt(0),l[e-3]=f.CA_$LI$()[k>>>6&63].charCodeAt(0),l[e-2]=
-2===p?f.CA_$LI$()[k&63].charCodeAt(0):61,l[e-1]=61);return l};f.decode$byte_A=function(d){for(var b=d.length,a=0,c=0;c<b;c++)0>f.IA_$LI$()[d[c]&255]&&a++;if(0!==(b-a)%4)return null;for(var e=0,c=b;1<c&&0>=f.IA_$LI$()[d[--c]&255];)61==d[c]&&e++;c=b=(6*(b-a)>>3)-e;for(a=[];0<c--;)a.push(0);for(var k=e=0;k<b;){for(var l=c=0;4>l;l++){var p=f.IA_$LI$()[d[e++]&255];0<=p?c|=p<<18-6*l:l--}a[k++]=c>>16|0;k<b&&(a[k++]=c>>8|0,k<b&&(a[k++]=c|0))}return a};f.decodeFast$byte_A=function(d){var b=d.length;if(0===
-b)return[];for(var a=0,c=b-1;a<c&&0>f.IA_$LI$()[d[a]&255];)a++;for(;0<c&&0>f.IA_$LI$()[d[c]&255];)c--;for(var e=61==d[c]?61==d[c-1]?2:1:0,k=c-a+1,l=76<b?(13==d[76]?k/78|0:0)<<1:0,p=k=(6*(k-l)>>3)-e,b=[];0<p--;)b.push(0);for(var r=p=0,A=3*(k/3|0);p<A;){var B=f.IA_$LI$()[d[a++]]<<18|f.IA_$LI$()[d[a++]]<<12|f.IA_$LI$()[d[a++]]<<6|f.IA_$LI$()[d[a++]];b[p++]=B>>16|0;b[p++]=B>>8|0;b[p++]=B|0;0<l&&19===++r&&(a+=2,r=0)}if(p<k){for(l=B=0;a<=c-e;l++)B|=f.IA_$LI$()[d[a++]]<<18-6*l;for(d=16;p<k;d-=8)b[p++]=B>>
-d|0}return b};f.encodeToString=function(d,b,a){return f.encodeToChar(d,b,a).join("")};f.decode$java_lang_String=function(d){var b=null!=d?d.length:0;if(0===b)return[];for(var a=0,c=0;c<b;c++)0>f.IA_$LI$()[d.charAt(c).charCodeAt(0)]&&a++;if(0!==(b-a)%4)return null;for(var e=0,c=b;1<c&&0>=f.IA_$LI$()[d.charAt(--c).charCodeAt(0)];)61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(c))&&e++;for(var b=(6*(b-a)>>3)-e,a=function(a){for(var b=[];0<a--;)b.push(0);return b}(b),k=e=0;k<b;){for(var l=
-c=0;4>l;l++){var p=f.IA_$LI$()[d.charAt(e++).charCodeAt(0)];0<=p?c|=p<<18-6*l:l--}a[k++]=c>>16|0;k<b&&(a[k++]=c>>8|0,k<b&&(a[k++]=c|0))}return a};f.decodeFast$java_lang_String=function(d){var b=d.length;if(0===b)return[];for(var a=0,c=b-1;a<c&&0>f.IA_$LI$()[function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(a))&255];)a++;for(;0<c&&0>f.IA_$LI$()[function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(c))&255];)c--;for(var e=61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(c))?
-61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(c-1))?2:1:0,k=c-a+1,l=76<b?(13==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(76))?k/78|0:0)<<1:0,k=(6*(k-l)>>3)-e,b=function(a){for(var b=[];0<a--;)b.push(0);return b}(k),p=0,r=0,A=3*(k/3|0);p<A;){var B=f.IA_$LI$()[d.charAt(a++).charCodeAt(0)]<<18|f.IA_$LI$()[d.charAt(a++).charCodeAt(0)]<<12|f.IA_$LI$()[d.charAt(a++).charCodeAt(0)]<<6|f.IA_$LI$()[d.charAt(a++).charCodeAt(0)];b[p++]=B>>16|0;b[p++]=B>>8|0;b[p++]=
-B|0;0<l&&19===++r&&(a+=2,r=0)}if(p<k){for(l=B=0;a<=c-e;l++)B|=f.IA_$LI$()[d.charAt(a++).charCodeAt(0)]<<18-6*l;for(d=16;p<k;d-=8)b[p++]=B>>d|0}return b};return f}();f.__static_initialized=!1;k.mxBase64=f;f.__class="com.mxgraph.online.mxBase64"})(k.online||(k.online={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));com.mxgraph.online.mxBase64.IA_$LI$();com.mxgraph.online.mxBase64.CA_$LI$();com.mxgraph.online.mxBase64.__static_initialize();com.mxgraph.io.vsdx.VsdxShape.__com_mxgraph_io_vsdx_VsdxShape_LOGGER_$LI$();
+3|0),e=((a-1)/3|0)+1<<2,l=e+=b?((e-1)/76|0)<<1:0,k=[];0<l--;)k.push(0);for(var p=0,r=0,A=0;p<c;)l=(d[p++]&255)<<16|(d[p++]&255)<<8|d[p++]&255,k[r++]=f.CA_$LI$()[l>>>18&63].charCodeAt(0),k[r++]=f.CA_$LI$()[l>>>12&63].charCodeAt(0),k[r++]=f.CA_$LI$()[l>>>6&63].charCodeAt(0),k[r++]=f.CA_$LI$()[l&63].charCodeAt(0),b&&19===++A&&r<e-2&&(k[r++]=13,k[r++]=10,A=0);p=a-c;0<p&&(l=(d[c]&255)<<10|(2===p?(d[a-1]&255)<<2:0),k[e-4]=f.CA_$LI$()[l>>12].charCodeAt(0),k[e-3]=f.CA_$LI$()[l>>>6&63].charCodeAt(0),k[e-2]=
+2===p?f.CA_$LI$()[l&63].charCodeAt(0):61,k[e-1]=61);return k};f.decode$byte_A=function(d){for(var b=d.length,a=0,c=0;c<b;c++)0>f.IA_$LI$()[d[c]&255]&&a++;if(0!==(b-a)%4)return null;for(var e=0,c=b;1<c&&0>=f.IA_$LI$()[d[--c]&255];)61==d[c]&&e++;c=b=(6*(b-a)>>3)-e;for(a=[];0<c--;)a.push(0);for(var l=e=0;l<b;){for(var k=c=0;4>k;k++){var p=f.IA_$LI$()[d[e++]&255];0<=p?c|=p<<18-6*k:k--}a[l++]=c>>16|0;l<b&&(a[l++]=c>>8|0,l<b&&(a[l++]=c|0))}return a};f.decodeFast$byte_A=function(d){var b=d.length;if(0===
+b)return[];for(var a=0,c=b-1;a<c&&0>f.IA_$LI$()[d[a]&255];)a++;for(;0<c&&0>f.IA_$LI$()[d[c]&255];)c--;for(var e=61==d[c]?61==d[c-1]?2:1:0,l=c-a+1,k=76<b?(13==d[76]?l/78|0:0)<<1:0,p=l=(6*(l-k)>>3)-e,b=[];0<p--;)b.push(0);for(var r=p=0,A=3*(l/3|0);p<A;){var C=f.IA_$LI$()[d[a++]]<<18|f.IA_$LI$()[d[a++]]<<12|f.IA_$LI$()[d[a++]]<<6|f.IA_$LI$()[d[a++]];b[p++]=C>>16|0;b[p++]=C>>8|0;b[p++]=C|0;0<k&&19===++r&&(a+=2,r=0)}if(p<l){for(k=C=0;a<=c-e;k++)C|=f.IA_$LI$()[d[a++]]<<18-6*k;for(d=16;p<l;d-=8)b[p++]=C>>
+d|0}return b};f.encodeToString=function(d,b,a){return f.encodeToChar(d,b,a).join("")};f.decode$java_lang_String=function(d){var b=null!=d?d.length:0;if(0===b)return[];for(var a=0,c=0;c<b;c++)0>f.IA_$LI$()[d.charAt(c).charCodeAt(0)]&&a++;if(0!==(b-a)%4)return null;for(var e=0,c=b;1<c&&0>=f.IA_$LI$()[d.charAt(--c).charCodeAt(0)];)61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(c))&&e++;for(var b=(6*(b-a)>>3)-e,a=function(a){for(var b=[];0<a--;)b.push(0);return b}(b),l=e=0;l<b;){for(var k=
+c=0;4>k;k++){var p=f.IA_$LI$()[d.charAt(e++).charCodeAt(0)];0<=p?c|=p<<18-6*k:k--}a[l++]=c>>16|0;l<b&&(a[l++]=c>>8|0,l<b&&(a[l++]=c|0))}return a};f.decodeFast$java_lang_String=function(d){var b=d.length;if(0===b)return[];for(var a=0,c=b-1;a<c&&0>f.IA_$LI$()[function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(a))&255];)a++;for(;0<c&&0>f.IA_$LI$()[function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(c))&255];)c--;for(var e=61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(c))?
+61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(c-1))?2:1:0,l=c-a+1,k=76<b?(13==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(d.charAt(76))?l/78|0:0)<<1:0,l=(6*(l-k)>>3)-e,b=function(a){for(var b=[];0<a--;)b.push(0);return b}(l),p=0,r=0,A=3*(l/3|0);p<A;){var C=f.IA_$LI$()[d.charAt(a++).charCodeAt(0)]<<18|f.IA_$LI$()[d.charAt(a++).charCodeAt(0)]<<12|f.IA_$LI$()[d.charAt(a++).charCodeAt(0)]<<6|f.IA_$LI$()[d.charAt(a++).charCodeAt(0)];b[p++]=C>>16|0;b[p++]=C>>8|0;b[p++]=
+C|0;0<k&&19===++r&&(a+=2,r=0)}if(p<l){for(k=C=0;a<=c-e;k++)C|=f.IA_$LI$()[d.charAt(a++).charCodeAt(0)]<<18-6*k;for(d=16;p<l;d-=8)b[p++]=C>>d|0}return b};return f}();f.__static_initialized=!1;l.mxBase64=f;f.__class="com.mxgraph.online.mxBase64"})(l.online||(l.online={}))})(e.mxgraph||(e.mxgraph={}))})(com||(com={}));com.mxgraph.online.mxBase64.IA_$LI$();com.mxgraph.online.mxBase64.CA_$LI$();com.mxgraph.online.mxBase64.__static_initialize();com.mxgraph.io.vsdx.VsdxShape.__com_mxgraph_io_vsdx_VsdxShape_LOGGER_$LI$();
com.mxgraph.io.vsdx.VsdxShape.arrowTypes_$LI$();com.mxgraph.io.vsdx.VsdxShape.arrowSizes_$LI$();com.mxgraph.io.vsdx.VsdxShape.OFFSET_ARRAY_$LI$();com.mxgraph.io.vsdx.VsdxShape.__static_initialize();com.mxgraph.io.vsdx.Shape.UNICODE_LINE_SEP_$LI$();com.mxgraph.io.vsdx.Style.lineDashPatterns_$LI$();com.mxgraph.io.vsdx.Style.styleTypes_$LI$();com.mxgraph.io.vsdx.Style.__static_initialize();com.mxgraph.online.Constants.MAX_AREA_$LI$();com.mxgraph.io.vsdx.theme.Color.NONE_$LI$();com.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$();
com.mxgraph.io.vsdx.mxVsdxTheme.colorIds_$LI$();com.mxgraph.io.vsdx.mxVsdxTheme.themesIds_$LI$();com.mxgraph.io.vsdx.mxVsdxTheme.__static_initialize();com.mxgraph.io.vsdx.mxVsdxConstants.MY_SET_$LI$();com.mxgraph.io.vsdx.mxVsdxConstants.SET_VALUES_$LI$();com.mxgraph.io.vsdx.mxPropertiesManager.defaultColors_$LI$();com.mxgraph.io.vsdx.mxPropertiesManager.__static_initialize();com.mxgraph.io.mxVsdxCodec.vsdxPlaceholder_$LI$();com.mxgraph.io.mxVsdxCodec.parsererrorNS_$LI$();
-EditorUi.prototype.doImportVisio=function(e,k,r,f){f=f||e.name;null!=f&&/(\.vs(x|sx?))($|\?)/i.test(f)?(new com.mxgraph.io.mxVssxCodec(this)).decodeVssx(e,k,null,r):(new com.mxgraph.io.mxVsdxCodec(this)).decodeVsdx(e,k,null,r)};function mxGraphMlCodec(){this.cachedRefObj={}}mxGraphMlCodec.prototype.refRegexp=/^\{y\:GraphMLReference\s+(\d+)\}$/;mxGraphMlCodec.prototype.staticRegexp=/^\{x\:Static\s+(.+)\.(.+)\}$/;
-mxGraphMlCodec.prototype.decode=function(e,k,r){try{var f=mxUtils.parseXml(e),p=this.getDirectChildNamedElements(f.documentElement,mxGraphMlConstants.GRAPH);this.initializeKeys(f.documentElement);e='<?xml version="1.0" encoding="UTF-8"?><mxfile>';for(f=0;f<p.length;f++){var d=p[f],b=this.createMxGraph(),a=b.getModel();a.beginUpdate();try{for(this.nodesMap={},this.edges=[],this.importGraph(d,b,b.getDefaultParent()),f=0;f<this.edges.length;f++)for(var c=this.edges[f],h=c.edges,n=c.parent,l=c.dx,x=c.dy,
-w=0;w<h.length;w++)this.importEdge(h[w],b,n,l,x)}catch(ea){throw console.log(ea),ea;}finally{a.endUpdate()}a.beginUpdate();try{var A=b.getModel().cells,B;for(B in A){var E=A[B];if(E.edge&&0<E.getChildCount())for(f=0;f<E.getChildCount();f++){var C=E.children[f].geometry;if(C.adjustIt){var F=b.view.getState(E),D=F.absolutePoints,K=D[0],Z=D[D.length-1],H=C.x,Y=C.y,l=Z.x-K.x,x=Z.y-K.y,O=K.x+H*l,S=K.y+H*x,aa=Math.sqrt(l*l+x*x),l=l/aa,x=x/aa,O=O-Y*x,S=S+Y*l,ja=b.view.getRelativePoint(F,O,S);C.x=ja.x;C.y=
-ja.y}}}}catch(ea){throw console.log(ea),ea;}finally{a.endUpdate()}e+=this.processPage(b,f+1)}k&&k(e+"</mxfile>")}catch(ea){r&&r(ea)}};
-mxGraphMlCodec.prototype.initializeKeys=function(e){var k=this.getDirectChildNamedElements(e,mxGraphMlConstants.KEY);this.nodesKeys={};this.edgesKeys={};this.portsKeys={};this.sharedData={};this.nodesKeys[mxGraphMlConstants.NODE_GEOMETRY]={};this.nodesKeys[mxGraphMlConstants.USER_TAGS]={};this.nodesKeys[mxGraphMlConstants.NODE_STYLE]={};this.nodesKeys[mxGraphMlConstants.NODE_LABELS]={};this.nodesKeys[mxGraphMlConstants.NODE_GRAPHICS]={};this.edgesKeys[mxGraphMlConstants.EDGE_GEOMETRY]={};this.edgesKeys[mxGraphMlConstants.EDGE_STYLE]=
-{};this.edgesKeys[mxGraphMlConstants.EDGE_LABELS]={};this.portsKeys[mxGraphMlConstants.PORT_LOCATION_PARAMETER]={};this.portsKeys[mxGraphMlConstants.PORT_STYLE]={};this.portsKeys[mxGraphMlConstants.PORT_VIEW_STATE]={};for(var r,f=0;f<k.length;f++){var p=this.dataElem2Obj(k[f]),d=p[mxGraphMlConstants.ID],b=p[mxGraphMlConstants.KEY_FOR],a=p[mxGraphMlConstants.KEY_NAME],c=p[mxGraphMlConstants.KEY_YTYPE];a==mxGraphMlConstants.SHARED_DATA&&(r=d);a=a?a:c;switch(b){case mxGraphMlConstants.NODE:this.nodesKeys[a]=
-{key:d,keyObj:p};break;case mxGraphMlConstants.EDGE:this.edgesKeys[a]={key:d,keyObj:p};break;case mxGraphMlConstants.PORT:this.portsKeys[a]={key:d,keyObj:p};break;case mxGraphMlConstants.ALL:p={key:d,keyObj:p},this.nodesKeys[a]=p,this.edgesKeys[a]=p,this.portsKeys[a]=p}}e=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA);for(f=0;f<e.length;f++)if(e[f].getAttribute(mxGraphMlConstants.KEY)==r)for(b=this.getDirectChildNamedElements(e[f],mxGraphMlConstants.Y_SHARED_DATA),k=0;k<b.length;k++)for(a=
-this.getDirectChildElements(b[k]),p=0;p<a.length;p++)d=a[p].getAttribute(mxGraphMlConstants.X_KEY),this.sharedData[d]=a[p];else for(b=this.getDirectChildNamedElements(e[f],mxGraphMlConstants.Y_RESOURCES),k=0;k<b.length;k++)for(a=this.getDirectChildElements(b[k]),p=0;p<a.length;p++)d=a[p].getAttribute(mxGraphMlConstants.ID),this.sharedData[d]=a[p]};
-mxGraphMlCodec.prototype.parseAttributes=function(e,k){var r=e.attributes;if(r)for(var f=0;f<r.length;f++){var p=r[f].nodeValue,d=this.refRegexp.exec(p),b=this.staticRegexp.exec(p);d?(p=d[1],d=this.cachedRefObj[p],d||(d={},d[this.sharedData[p].nodeName]=this.dataElem2Obj(this.sharedData[p]),this.cachedRefObj[p]=d),k[r[f].nodeName]=d):b?(k[r[f].nodeName]={},k[r[f].nodeName][b[1]]=b[2]):k[r[f].nodeName]=p}};
-mxGraphMlCodec.prototype.dataElem2Obj=function(e){var k=this.getDirectFirstChildNamedElements(e,mxGraphMlConstants.GRAPHML_REFERENCE)||e.getAttribute(mxGraphMlConstants.REFID),r=null,f=e,p={};if(k){r="string"===typeof k?k:k.getAttribute(mxGraphMlConstants.RESOURCE_KEY);if(k=this.cachedRefObj[r])return this.parseAttributes(e,k),k;e=this.sharedData[r]}this.parseAttributes(e,p);for(k=0;k<e.childNodes.length;k++){var d=e.childNodes[k];if(1==d.nodeType){var b=d.nodeName;if(b==mxGraphMlConstants.X_LIST){for(var a=
+EditorUi.prototype.doImportVisio=function(e,l,r,f){f=f||e.name;null!=f&&/(\.vs(x|sx?))($|\?)/i.test(f)?(new com.mxgraph.io.mxVssxCodec(this)).decodeVssx(e,l,null,r):(new com.mxgraph.io.mxVsdxCodec(this)).decodeVsdx(e,l,null,r)};function mxGraphMlCodec(){this.cachedRefObj={}}mxGraphMlCodec.prototype.refRegexp=/^\{y\:GraphMLReference\s+(\d+)\}$/;mxGraphMlCodec.prototype.staticRegexp=/^\{x\:Static\s+(.+)\.(.+)\}$/;
+mxGraphMlCodec.prototype.decode=function(e,l,r){try{var f=mxUtils.parseXml(e),p=this.getDirectChildNamedElements(f.documentElement,mxGraphMlConstants.GRAPH);this.initializeKeys(f.documentElement);e='<?xml version="1.0" encoding="UTF-8"?><mxfile>';for(f=0;f<p.length;f++){var d=p[f],b=this.createMxGraph(),a=b.getModel();a.beginUpdate();try{for(this.nodesMap={},this.edges=[],this.importGraph(d,b,b.getDefaultParent()),f=0;f<this.edges.length;f++)for(var c=this.edges[f],h=c.edges,n=c.parent,k=c.dx,w=c.dy,
+y=0;y<h.length;y++)this.importEdge(h[y],b,n,k,w)}catch(ea){throw console.log(ea),ea;}finally{a.endUpdate()}a.beginUpdate();try{var A=b.getModel().cells,C;for(C in A){var E=A[C];if(E.edge&&0<E.getChildCount())for(f=0;f<E.getChildCount();f++){var B=E.children[f].geometry;if(B.adjustIt){var F=b.view.getState(E),D=F.absolutePoints,K=D[0],Z=D[D.length-1],H=B.x,Y=B.y,k=Z.x-K.x,w=Z.y-K.y,O=K.x+H*k,S=K.y+H*w,aa=Math.sqrt(k*k+w*w),k=k/aa,w=w/aa,O=O-Y*w,S=S+Y*k,ha=b.view.getRelativePoint(F,O,S);B.x=ha.x;B.y=
+ha.y}}}}catch(ea){throw console.log(ea),ea;}finally{a.endUpdate()}e+=this.processPage(b,f+1)}l&&l(e+"</mxfile>")}catch(ea){r&&r(ea)}};
+mxGraphMlCodec.prototype.initializeKeys=function(e){var l=this.getDirectChildNamedElements(e,mxGraphMlConstants.KEY);this.nodesKeys={};this.edgesKeys={};this.portsKeys={};this.sharedData={};this.nodesKeys[mxGraphMlConstants.NODE_GEOMETRY]={};this.nodesKeys[mxGraphMlConstants.USER_TAGS]={};this.nodesKeys[mxGraphMlConstants.NODE_STYLE]={};this.nodesKeys[mxGraphMlConstants.NODE_LABELS]={};this.nodesKeys[mxGraphMlConstants.NODE_GRAPHICS]={};this.edgesKeys[mxGraphMlConstants.EDGE_GEOMETRY]={};this.edgesKeys[mxGraphMlConstants.EDGE_STYLE]=
+{};this.edgesKeys[mxGraphMlConstants.EDGE_LABELS]={};this.portsKeys[mxGraphMlConstants.PORT_LOCATION_PARAMETER]={};this.portsKeys[mxGraphMlConstants.PORT_STYLE]={};this.portsKeys[mxGraphMlConstants.PORT_VIEW_STATE]={};for(var r,f=0;f<l.length;f++){var p=this.dataElem2Obj(l[f]),d=p[mxGraphMlConstants.ID],b=p[mxGraphMlConstants.KEY_FOR],a=p[mxGraphMlConstants.KEY_NAME],c=p[mxGraphMlConstants.KEY_YTYPE];a==mxGraphMlConstants.SHARED_DATA&&(r=d);a=a?a:c;switch(b){case mxGraphMlConstants.NODE:this.nodesKeys[a]=
+{key:d,keyObj:p};break;case mxGraphMlConstants.EDGE:this.edgesKeys[a]={key:d,keyObj:p};break;case mxGraphMlConstants.PORT:this.portsKeys[a]={key:d,keyObj:p};break;case mxGraphMlConstants.ALL:p={key:d,keyObj:p},this.nodesKeys[a]=p,this.edgesKeys[a]=p,this.portsKeys[a]=p}}e=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA);for(f=0;f<e.length;f++)if(e[f].getAttribute(mxGraphMlConstants.KEY)==r)for(b=this.getDirectChildNamedElements(e[f],mxGraphMlConstants.Y_SHARED_DATA),l=0;l<b.length;l++)for(a=
+this.getDirectChildElements(b[l]),p=0;p<a.length;p++)d=a[p].getAttribute(mxGraphMlConstants.X_KEY),this.sharedData[d]=a[p];else for(b=this.getDirectChildNamedElements(e[f],mxGraphMlConstants.Y_RESOURCES),l=0;l<b.length;l++)for(a=this.getDirectChildElements(b[l]),p=0;p<a.length;p++)d=a[p].getAttribute(mxGraphMlConstants.ID),this.sharedData[d]=a[p]};
+mxGraphMlCodec.prototype.parseAttributes=function(e,l){var r=e.attributes;if(r)for(var f=0;f<r.length;f++){var p=r[f].nodeValue,d=this.refRegexp.exec(p),b=this.staticRegexp.exec(p);d?(p=d[1],d=this.cachedRefObj[p],d||(d={},d[this.sharedData[p].nodeName]=this.dataElem2Obj(this.sharedData[p]),this.cachedRefObj[p]=d),l[r[f].nodeName]=d):b?(l[r[f].nodeName]={},l[r[f].nodeName][b[1]]=b[2]):l[r[f].nodeName]=p}};
+mxGraphMlCodec.prototype.dataElem2Obj=function(e){var l=this.getDirectFirstChildNamedElements(e,mxGraphMlConstants.GRAPHML_REFERENCE)||e.getAttribute(mxGraphMlConstants.REFID),r=null,f=e,p={};if(l){r="string"===typeof l?l:l.getAttribute(mxGraphMlConstants.RESOURCE_KEY);if(l=this.cachedRefObj[r])return this.parseAttributes(e,l),l;e=this.sharedData[r]}this.parseAttributes(e,p);for(l=0;l<e.childNodes.length;l++){var d=e.childNodes[l];if(1==d.nodeType){var b=d.nodeName;if(b==mxGraphMlConstants.X_LIST){for(var a=
[],d=this.getDirectChildElements(d),c=0;c<d.length;c++)b=d[c].nodeName,a.push(this.dataElem2Obj(d[c]));p[b]=a}else b==mxGraphMlConstants.X_STATIC?(b=d.getAttribute(mxGraphMlConstants.MEMBER),a=b.lastIndexOf("."),p[b.substr(0,a)]=b.substr(a+1)):(a=b.lastIndexOf("."),0<a&&(b=b.substr(a+1)),null!=p[b]?(p[b]instanceof Array||(p[b]=[p[b]]),p[b].push(this.dataElem2Obj(d))):p[b]=this.dataElem2Obj(d))}else 3!=d.nodeType&&4!=d.nodeType||!d.textContent.trim()||(p["#text"]=d.textContent)}return r?(e={},this.parseAttributes(f,
-e),e[this.sharedData[r].nodeName]=p,this.cachedRefObj[r]=e):p};mxGraphMlCodec.prototype.mapArray=function(e,k,r){for(var f={},p=0;p<e.length;p++)e[p].name&&(f[e[p].name]=e[p].value||e[p]);this.mapObject(f,k,r)};
-mxGraphMlCodec.prototype.mapObject=function(e,k,r){if(k.defaults)for(var f in k.defaults)r[f]=k.defaults[f];for(f in k){for(var p=f.split("."),d=e,b=0;b<p.length&&d;b++)d=d[p[b]];null==d&&e&&(d=e[f]);if(null!=d)if(p=k[f],"string"===typeof d)if("string"===typeof p)r[p]=d.toLowerCase();else if("object"===typeof p){b=d.toLowerCase();switch(p.mod){case "color":0==d.indexOf("#")&&9==d.length?b="#"+d.substr(3)+d.substr(1,2):"TRANSPARENT"==d&&(b="none");break;case "shape":b=mxGraphMlShapesMap[d.toLowerCase()];
+e),e[this.sharedData[r].nodeName]=p,this.cachedRefObj[r]=e):p};mxGraphMlCodec.prototype.mapArray=function(e,l,r){for(var f={},p=0;p<e.length;p++)e[p].name&&(f[e[p].name]=e[p].value||e[p]);this.mapObject(f,l,r)};
+mxGraphMlCodec.prototype.mapObject=function(e,l,r){if(l.defaults)for(var f in l.defaults)r[f]=l.defaults[f];for(f in l){for(var p=f.split("."),d=e,b=0;b<p.length&&d;b++)d=d[p[b]];null==d&&e&&(d=e[f]);if(null!=d)if(p=l[f],"string"===typeof d)if("string"===typeof p)r[p]=d.toLowerCase();else if("object"===typeof p){b=d.toLowerCase();switch(p.mod){case "color":0==d.indexOf("#")&&9==d.length?b="#"+d.substr(3)+d.substr(1,2):"TRANSPARENT"==d&&(b="none");break;case "shape":b=mxGraphMlShapesMap[d.toLowerCase()];
break;case "bpmnOutline":b=mxGraphMlShapesMap.bpmnOutline[d.toLowerCase()];break;case "bpmnSymbol":b=mxGraphMlShapesMap.bpmnSymbol[d.toLowerCase()];break;case "bool":b="true"==d?"1":"0";break;case "scale":try{b=parseFloat(d)*p.scale}catch(a){}break;case "arrow":b=mxGraphMlArrowsMap[d]}null!=b&&(r[p.key]=b)}else p(d,r);else d instanceof Array?this.mapArray(d,p,r):null!=d.name&&null!=d.value?this.mapArray([d],p,r):this.mapObject(d,p,r)}};mxGraphMlCodec.prototype.createMxGraph=function(){return new mxGraph};
-mxGraphMlCodec.prototype.importGraph=function(e,k,r){for(var f=this.getDirectChildNamedElements(e,mxGraphMlConstants.NODE),p=r,d=0,b=0;p&&p.geometry;)d+=p.geometry.x,b+=p.geometry.y,p=p.parent;for(p=0;p<f.length;p++)this.importNode(f[p],k,r,d,b);this.edges.push({edges:this.getDirectChildNamedElements(e,mxGraphMlConstants.EDGE),parent:r,dx:d,dy:b})};
-mxGraphMlCodec.prototype.importPort=function(e,k){for(var r=e.getAttribute(mxGraphMlConstants.PORT_NAME),f={},p=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA),d=0;d<p.length;d++){var b=p[d];b.getAttribute(mxGraphMlConstants.KEY);b=this.dataElem2Obj(b);b.key==this.portsKeys[mxGraphMlConstants.PORT_LOCATION_PARAMETER].key&&this.mapObject(b,{"y:FreeNodePortLocationModelParameter.Ratio":function(a,b){var c=a.split(",");b.pos={x:c[0],y:c[1]}}},f)}k[r]=f};
-mxGraphMlCodec.prototype.styleMap2Str=function(e){var k="",r="",f;for(f in e)r+=k+f+"="+e[f],k=";";return r};
-mxGraphMlCodec.prototype.importNode=function(e,k,r,f,p){var d=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA),b=e.getAttribute(mxGraphMlConstants.ID),a=new mxCell;a.vertex=!0;a.geometry=new mxGeometry(0,0,30,30);k.addCell(a,r);r={graphMlID:b};for(var c=null,h=null,n=null,l=null,x=0;x<d.length;x++){var w=this.dataElem2Obj(d[x]);if(w.key)if(w.key==this.nodesKeys[mxGraphMlConstants.NODE_GEOMETRY].key)this.addNodeGeo(a,w,f,p);else if(w.key==this.nodesKeys[mxGraphMlConstants.USER_TAGS].key)n=
-w;else if(w.key==this.nodesKeys[mxGraphMlConstants.NODE_STYLE].key)c=w,w["yjs:StringTemplateNodeStyle"]?h=w["yjs:StringTemplateNodeStyle"]["#text"]:this.addNodeStyle(a,w,r);else if(w.key==this.nodesKeys[mxGraphMlConstants.NODE_LABELS].key)l=w;else if(w.key==this.nodesKeys[mxGraphMlConstants.NODE_GRAPHICS].key){var A=c=null;for(A in w)if("key"!=A&&"#text"!=A){if("y:ProxyAutoBoundsNode"==A){if(A=w[A]["y:Realizers"])for(var B in A)if("active"!=B&&"#text"!=B){c=A[B][A.active];w={};w[B]=c;break}}else c=
-w[A];break}c&&(c[mxGraphMlConstants.GEOMETRY]&&this.addNodeGeo(a,c[mxGraphMlConstants.GEOMETRY],f,p),c[mxGraphMlConstants.NODE_LABEL]&&(l=c[mxGraphMlConstants.NODE_LABEL]));c=w;this.addNodeStyle(a,w,r)}}p=this.getDirectChildNamedElements(e,mxGraphMlConstants.PORT);f={};for(x=0;x<p.length;x++)this.importPort(p[x],f);h&&this.handleTemplates(h,n,a,r);this.handleFixedRatio(a,r);this.handleCompoundShape(a,r,c,null);0==r.strokeWidth&&(r.strokeColor="none");a.style=this.styleMap2Str(r);e=this.getDirectChildNamedElements(e,
-mxGraphMlConstants.GRAPH);for(x=0;x<e.length;x++)this.importGraph(e[x],k,a,f);l&&this.addLabels(a,l,r,k);this.nodesMap[b]={node:a,ports:f}};
-mxGraphMlCodec.prototype.addNodeStyle=function(e,k,r){e=function(a,b){if("line"!=a){b.dashed=1;var c;switch(a){case "DashDot":c="3 1 1 1";break;case "Dot":c="1 1";break;case "DashDotDot":c="3 1 1 1 1 1";break;case "Dash":c="3 1";break;case "dotted":c="1 3";break;case "dashed":c="5 2";break;default:c=a.replace(/0/g,"1")}c&&(0>c.indexOf(" ")&&(c=c+" "+c),b.dashPattern=c)}};e={shape:{key:"shape",mod:"shape"},"y:Shape.type":{key:"shape",mod:"shape"},configuration:{key:"shape",mod:"shape"},type:{key:"shape",
+mxGraphMlCodec.prototype.importGraph=function(e,l,r){for(var f=this.getDirectChildNamedElements(e,mxGraphMlConstants.NODE),p=r,d=0,b=0;p&&p.geometry;)d+=p.geometry.x,b+=p.geometry.y,p=p.parent;for(p=0;p<f.length;p++)this.importNode(f[p],l,r,d,b);this.edges.push({edges:this.getDirectChildNamedElements(e,mxGraphMlConstants.EDGE),parent:r,dx:d,dy:b})};
+mxGraphMlCodec.prototype.importPort=function(e,l){for(var r=e.getAttribute(mxGraphMlConstants.PORT_NAME),f={},p=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA),d=0;d<p.length;d++){var b=p[d];b.getAttribute(mxGraphMlConstants.KEY);b=this.dataElem2Obj(b);b.key==this.portsKeys[mxGraphMlConstants.PORT_LOCATION_PARAMETER].key&&this.mapObject(b,{"y:FreeNodePortLocationModelParameter.Ratio":function(a,b){var c=a.split(",");b.pos={x:c[0],y:c[1]}}},f)}l[r]=f};
+mxGraphMlCodec.prototype.styleMap2Str=function(e){var l="",r="",f;for(f in e)r+=l+f+"="+e[f],l=";";return r};
+mxGraphMlCodec.prototype.importNode=function(e,l,r,f,p){var d=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA),b=e.getAttribute(mxGraphMlConstants.ID),a=new mxCell;a.vertex=!0;a.geometry=new mxGeometry(0,0,30,30);l.addCell(a,r);r={graphMlID:b};for(var c=null,h=null,n=null,k=null,w=0;w<d.length;w++){var y=this.dataElem2Obj(d[w]);if(y.key)if(y.key==this.nodesKeys[mxGraphMlConstants.NODE_GEOMETRY].key)this.addNodeGeo(a,y,f,p);else if(y.key==this.nodesKeys[mxGraphMlConstants.USER_TAGS].key)n=
+y;else if(y.key==this.nodesKeys[mxGraphMlConstants.NODE_STYLE].key)c=y,y["yjs:StringTemplateNodeStyle"]?h=y["yjs:StringTemplateNodeStyle"]["#text"]:this.addNodeStyle(a,y,r);else if(y.key==this.nodesKeys[mxGraphMlConstants.NODE_LABELS].key)k=y;else if(y.key==this.nodesKeys[mxGraphMlConstants.NODE_GRAPHICS].key){var A=c=null;for(A in y)if("key"!=A&&"#text"!=A){if("y:ProxyAutoBoundsNode"==A){if(A=y[A]["y:Realizers"])for(var C in A)if("active"!=C&&"#text"!=C){c=A[C][A.active];y={};y[C]=c;break}}else c=
+y[A];break}c&&(c[mxGraphMlConstants.GEOMETRY]&&this.addNodeGeo(a,c[mxGraphMlConstants.GEOMETRY],f,p),c[mxGraphMlConstants.NODE_LABEL]&&(k=c[mxGraphMlConstants.NODE_LABEL]));c=y;this.addNodeStyle(a,y,r)}}p=this.getDirectChildNamedElements(e,mxGraphMlConstants.PORT);f={};for(w=0;w<p.length;w++)this.importPort(p[w],f);h&&this.handleTemplates(h,n,a,r);this.handleFixedRatio(a,r);this.handleCompoundShape(a,r,c,null);0==r.strokeWidth&&(r.strokeColor="none");a.style=this.styleMap2Str(r);e=this.getDirectChildNamedElements(e,
+mxGraphMlConstants.GRAPH);for(w=0;w<e.length;w++)this.importGraph(e[w],l,a,f);k&&this.addLabels(a,k,r,l);this.nodesMap[b]={node:a,ports:f}};
+mxGraphMlCodec.prototype.addNodeStyle=function(e,l,r){e=function(a,b){if("line"!=a){b.dashed=1;var c;switch(a){case "DashDot":c="3 1 1 1";break;case "Dot":c="1 1";break;case "DashDotDot":c="3 1 1 1 1 1";break;case "Dash":c="3 1";break;case "dotted":c="1 3";break;case "dashed":c="5 2";break;default:c=a.replace(/0/g,"1")}c&&(0>c.indexOf(" ")&&(c=c+" "+c),b.dashPattern=c)}};e={shape:{key:"shape",mod:"shape"},"y:Shape.type":{key:"shape",mod:"shape"},configuration:{key:"shape",mod:"shape"},type:{key:"shape",
mod:"shape"},assetName:{key:"shape",mod:"shape"},activityType:{key:"shape",mod:"shape"},fill:{key:"fillColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"fillColor",mod:"color"},"fill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"y:Fill":{color:{key:"fillColor",mod:"color"},transparent:function(a,b){"true"==a&&(b.fillColor="none")}},"y:BorderStyle":{color:{key:"strokeColor",mod:"color"},width:"strokeWidth",hasColor:function(a,b){"false"==a&&(b.strokeColor="none")},
type:e},stroke:{key:"strokeColor",mod:"color"},"stroke.yjs:Stroke":{dashStyle:e,"dashStyle.yjs:DashStyle.dashes":e,fill:{key:"strokeColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"strokeColor",mod:"color"},"thickness.sys:Double":"strokeWidth",thickness:"strokeWidth"}};var f=mxUtils.clone(e);f.defaults={fillColor:"#CCCCCC",strokeColor:"#6881B3"};var p=mxUtils.clone(e);p.defaults={shape:"ext;rounded=1",fillColor:"#FFFFFF",strokeColor:"#000090"};var d=mxUtils.clone(e);d.defaults={shape:"rhombus;fillColor=#FFFFFF;strokeColor=#FFCD28"};
-var b=mxUtils.clone(e);b.defaults={shape:"hexagon",strokeColor:"#007000"};var a=mxUtils.clone(e);a.defaults={shape:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=general",outline:"standard"};a.characteristic={key:"outline",mod:"bpmnOutline"};var c=mxUtils.clone(e);c.defaults={shape:"js:bpmnDataObject"};var h=mxUtils.clone(e);h.defaults={shape:"datastore"};var n=mxUtils.clone(e);n.defaults={shape:"swimlane;swimlaneLine=0;startSize=20;dashed=1;dashPattern=3 1 1 1;collapsible=0;rounded=1"};var l=
-mxUtils.clone(e);l.defaults={shape:"js:BpmnChoreography"};var x=mxUtils.clone(e);x.defaults={rounded:"1",glass:"1",strokeColor:"#FFFFFF"};x.inset="strokeWidth";x.radius="arcSize";x.drawShadow={key:"shadow",mod:"bool"};x.color={key:"fillColor",mod:"color",addGradient:"north"};x["color.yjs:Color.value"]=x.color;var w=mxUtils.clone(e);w.defaults={rounded:"1",arcSize:10,glass:"1",shadow:"1",strokeColor:"none"};w.drawShadow={key:"shadow",mod:"bool"};var A=mxUtils.clone(e);A.defaults={shape:"swimlane",
-startSize:20,strokeWidth:4,spacingLeft:10};A.isCollapsible={key:"collapsible",mod:"bool"};A.borderColor={key:"strokeColor",mod:"color"};A.folderFrontColor={key:"fillColor",mod:"color"};var B=mxUtils.clone(e);B.defaults={shape:"swimlane",startSize:20,spacingLeft:10};B["yjs:PanelNodeStyle"]={color:{key:"swimlaneFillColor",mod:"color"},"color.yjs:Color.value":{key:"swimlaneFillColor",mod:"color"},labelInsetsColor:{key:"fillColor",mod:"color"},"labelInsetsColor.yjs:Color.value":{key:"fillColor",mod:"color"}};
-var E=mxUtils.clone(e);E.defaults={shape:"js:table"};var C=mxUtils.clone(e);C.defaults={shape:"image"};C.image=function(a,b){b.image=a};var F=mxUtils.clone(e);F.defaults={shape:"image"};F["y:SVGModel.y:SVGContent.y:Resource.#text"]=function(a,b){b.image="data:image/svg+xml,"+(window.btoa?btoa(a):Base64.encode(a))};var D=mxUtils.clone(e);D.defaults={shape:"swimlane",startSize:20};D["y:Shape.type"]=function(a,b){"roundrectangle"==a&&(b.rounded=1,b.arcSize=5)};var K=mxUtils.clone(e);K.defaults={shape:"js:table2"};
+var b=mxUtils.clone(e);b.defaults={shape:"hexagon",strokeColor:"#007000"};var a=mxUtils.clone(e);a.defaults={shape:"mxgraph.bpmn.shape;perimeter=ellipsePerimeter;symbol=general",outline:"standard"};a.characteristic={key:"outline",mod:"bpmnOutline"};var c=mxUtils.clone(e);c.defaults={shape:"js:bpmnDataObject"};var h=mxUtils.clone(e);h.defaults={shape:"datastore"};var n=mxUtils.clone(e);n.defaults={shape:"swimlane;swimlaneLine=0;startSize=20;dashed=1;dashPattern=3 1 1 1;collapsible=0;rounded=1"};var k=
+mxUtils.clone(e);k.defaults={shape:"js:BpmnChoreography"};var w=mxUtils.clone(e);w.defaults={rounded:"1",glass:"1",strokeColor:"#FFFFFF"};w.inset="strokeWidth";w.radius="arcSize";w.drawShadow={key:"shadow",mod:"bool"};w.color={key:"fillColor",mod:"color",addGradient:"north"};w["color.yjs:Color.value"]=w.color;var y=mxUtils.clone(e);y.defaults={rounded:"1",arcSize:10,glass:"1",shadow:"1",strokeColor:"none"};y.drawShadow={key:"shadow",mod:"bool"};var A=mxUtils.clone(e);A.defaults={shape:"swimlane",
+startSize:20,strokeWidth:4,spacingLeft:10};A.isCollapsible={key:"collapsible",mod:"bool"};A.borderColor={key:"strokeColor",mod:"color"};A.folderFrontColor={key:"fillColor",mod:"color"};var C=mxUtils.clone(e);C.defaults={shape:"swimlane",startSize:20,spacingLeft:10};C["yjs:PanelNodeStyle"]={color:{key:"swimlaneFillColor",mod:"color"},"color.yjs:Color.value":{key:"swimlaneFillColor",mod:"color"},labelInsetsColor:{key:"fillColor",mod:"color"},"labelInsetsColor.yjs:Color.value":{key:"fillColor",mod:"color"}};
+var E=mxUtils.clone(e);E.defaults={shape:"js:table"};var B=mxUtils.clone(e);B.defaults={shape:"image"};B.image=function(a,b){b.image=a};var F=mxUtils.clone(e);F.defaults={shape:"image"};F["y:SVGModel.y:SVGContent.y:Resource.#text"]=function(a,b){b.image="data:image/svg+xml,"+(window.btoa?btoa(a):Base64.encode(a))};var D=mxUtils.clone(e);D.defaults={shape:"swimlane",startSize:20};D["y:Shape.type"]=function(a,b){"roundrectangle"==a&&(b.rounded=1,b.arcSize=5)};var K=mxUtils.clone(e);K.defaults={shape:"js:table2"};
var Z=mxUtils.clone(e);Z.defaults={gradientDirection:"east"};Z["y:Fill"].color2={key:"gradientColor",mod:"color"};Z["y:StyleProperties.y:Property"]={"com.yworks.bpmn.characteristic":{key:"outline",mod:"bpmnOutline"},"com.yworks.bpmn.icon.fill":{key:"gradientColor",mod:"color"},"com.yworks.bpmn.icon.fill2":{key:"fillColor",mod:"color"},"com.yworks.bpmn.type":{key:"symbol",mod:"bpmnSymbol"},"y.view.ShadowNodePainter.SHADOW_PAINTING":{key:"shadow",mod:"bool"},doubleBorder:{key:"double",mod:"bool"},"com.yworks.sbgn.style.radius":{key:"arcSize",
-mod:"scale",scale:2},"com.yworks.sbgn.style.inverse":{key:"flipV",mod:"bool"}};this.mapObject(k,{"yjs:ShapeNodeStyle":e,"demostyle:FlowchartNodeStyle":e,"demostyle:AssetNodeStyle":f,"bpmn:ActivityNodeStyle":p,"bpmn:GatewayNodeStyle":d,"bpmn:ConversationNodeStyle":b,"bpmn:EventNodeStyle":a,"bpmn:DataObjectNodeStyle":c,"bpmn:DataStoreNodeStyle":h,"bpmn:GroupNodeStyle":n,"bpmn:ChoreographyNodeStyle":l,"yjs:BevelNodeStyle":x,"yjs:ShinyPlateNodeStyle":w,"demostyle:DemoGroupStyle":A,"yjs:CollapsibleNodeStyleDecorator":B,
-"bpmn:PoolNodeStyle":E,"yjs:TableNodeStyle":E,"demotablestyle:DemoTableStyle":E,"yjs:ImageNodeStyle":C,"y:ShapeNode":e,"y:GenericNode":Z,"y:GenericGroupNode":Z,"y:TableNode":K,"y:SVGNode":F,"y:GroupNode":D},r)};
-mxGraphMlCodec.prototype.handleTemplates=function(e,k,r,f){if(e){var p=r.geometry.width,d=r.geometry.height;r='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 '+p+" "+d+'"><g>';for(var b,a=[],c=/\{TemplateBinding\s+([^}]+)\}/g;null!=(b=c.exec(e));){var h="";switch(b[1]){case "width":h=p;break;case "height":h=d}a.push({match:b[0],repl:h})}if(k&&k["y:Json"])for(k=JSON.parse(k["y:Json"]["#text"]),p=/\{Binding\s+([^}]+)\}/g;null!=(b=p.exec(e));)if(d=b[1].split(","),
-c=k[d[0]])1<d.length&&d[1].indexOf("Converter=")&&(h=mxGraphMlConverters[d[1].substr(11)])&&(c=[c],d[2]&&c.push(d[2].substr(11)),c=h.apply(null,c)),a.push({match:b[0],repl:mxUtils.htmlEntities(c)});for(b=0;b<a.length;b++)e=e.replace(a[b].match,a[b].repl);a=[];for(k=/\<text.+data-content="([^"]+).+\<\/text\>/g;null!=(b=k.exec(e));)c=b[0].substr(0,b[0].length-7)+b[1]+"</text>",a.push({match:b[0],repl:c});for(b=0;b<a.length;b++)e=e.replace(a[b].match,a[b].repl);e=r+e+"</g></svg>";f.shape="image";f.image=
+mod:"scale",scale:2},"com.yworks.sbgn.style.inverse":{key:"flipV",mod:"bool"}};this.mapObject(l,{"yjs:ShapeNodeStyle":e,"demostyle:FlowchartNodeStyle":e,"demostyle:AssetNodeStyle":f,"bpmn:ActivityNodeStyle":p,"bpmn:GatewayNodeStyle":d,"bpmn:ConversationNodeStyle":b,"bpmn:EventNodeStyle":a,"bpmn:DataObjectNodeStyle":c,"bpmn:DataStoreNodeStyle":h,"bpmn:GroupNodeStyle":n,"bpmn:ChoreographyNodeStyle":k,"yjs:BevelNodeStyle":w,"yjs:ShinyPlateNodeStyle":y,"demostyle:DemoGroupStyle":A,"yjs:CollapsibleNodeStyleDecorator":C,
+"bpmn:PoolNodeStyle":E,"yjs:TableNodeStyle":E,"demotablestyle:DemoTableStyle":E,"yjs:ImageNodeStyle":B,"y:ShapeNode":e,"y:GenericNode":Z,"y:GenericGroupNode":Z,"y:TableNode":K,"y:SVGNode":F,"y:GroupNode":D},r)};
+mxGraphMlCodec.prototype.handleTemplates=function(e,l,r,f){if(e){var p=r.geometry.width,d=r.geometry.height;r='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 '+p+" "+d+'"><g>';for(var b,a=[],c=/\{TemplateBinding\s+([^}]+)\}/g;null!=(b=c.exec(e));){var h="";switch(b[1]){case "width":h=p;break;case "height":h=d}a.push({match:b[0],repl:h})}if(l&&l["y:Json"])for(l=JSON.parse(l["y:Json"]["#text"]),p=/\{Binding\s+([^}]+)\}/g;null!=(b=p.exec(e));)if(d=b[1].split(","),
+c=l[d[0]])1<d.length&&d[1].indexOf("Converter=")&&(h=mxGraphMlConverters[d[1].substr(11)])&&(c=[c],d[2]&&c.push(d[2].substr(11)),c=h.apply(null,c)),a.push({match:b[0],repl:mxUtils.htmlEntities(c)});for(b=0;b<a.length;b++)e=e.replace(a[b].match,a[b].repl);a=[];for(l=/\<text.+data-content="([^"]+).+\<\/text\>/g;null!=(b=l.exec(e));)c=b[0].substr(0,b[0].length-7)+b[1]+"</text>",a.push({match:b[0],repl:c});for(b=0;b<a.length;b++)e=e.replace(a[b].match,a[b].repl);e=r+e+"</g></svg>";f.shape="image";f.image=
"data:image/svg+xml,"+(window.btoa?btoa(e):Base64.encode(e))}};
-mxGraphMlCodec.prototype.handleCompoundShape=function(e,k,r,f){var p=k.shape;if(p&&0==p.indexOf("js:")){switch(p){case "js:bpmnArtifactShadow":k.shadow="1";case "js:bpmnArtifact":k.shape=k.symbol;delete k.fillColor;delete k.strokeColor;delete k.gradientColor;this.handleCompoundShape(e,k,r,f);break;case "js:bpmnDataObjectShadow":case "js:bpmnDataObject":k.shape="note;size=16";r=r["bpmn:DataObjectNodeStyle"]||r["y:GenericNode"]||r["y:GenericGroupNode"];f={};this.mapObject(r,{"y:StyleProperties.y:Property":{"com.yworks.bpmn.dataObjectType":"dataObjectType",
+mxGraphMlCodec.prototype.handleCompoundShape=function(e,l,r,f){var p=l.shape;if(p&&0==p.indexOf("js:")){switch(p){case "js:bpmnArtifactShadow":l.shadow="1";case "js:bpmnArtifact":l.shape=l.symbol;delete l.fillColor;delete l.strokeColor;delete l.gradientColor;this.handleCompoundShape(e,l,r,f);break;case "js:bpmnDataObjectShadow":case "js:bpmnDataObject":l.shape="note;size=16";r=r["bpmn:DataObjectNodeStyle"]||r["y:GenericNode"]||r["y:GenericGroupNode"];f={};this.mapObject(r,{"y:StyleProperties.y:Property":{"com.yworks.bpmn.dataObjectType":"dataObjectType",
"com.yworks.bpmn.marker1":"marker1"}},f);if("true"==r.collection||"bpmn_marker_parallel"==f.marker1){var d=new mxCell("",new mxGeometry(.5,1,10,10),"html=1;whiteSpace=wrap;shape=parallelMarker;");d.vertex=!0;d.geometry.relative=!0;d.geometry.offset=new mxPoint(-5,-10);e.insert(d)}if("INPUT"==r.type||"data_object_type_input"==f.dataObjectType)d=new mxCell("",new mxGeometry(0,0,10,10),"html=1;shape=singleArrow;arrowWidth=0.4;arrowSize=0.4;"),d.vertex=!0,d.geometry.relative=!0,d.geometry.offset=new mxPoint(2,
-2),e.insert(d);else if("OUTPUT"==r.type||"data_object_type_output"==f.dataObjectType)d=new mxCell("",new mxGeometry(0,0,10,10),"html=1;shape=singleArrow;arrowWidth=0.4;arrowSize=0.4;fillColor=#000000;"),d.vertex=!0,d.geometry.relative=!0,d.geometry.offset=new mxPoint(2,2),e.insert(d);break;case "js:BpmnChoreography":this.mapObject(r,{defaults:{shape:"swimlane;collapsible=0;rounded=1",startSize:"20",strokeColor:"#006000",fillColor:"#CCCCCC"}},k);d=e.geometry;d=new mxCell("",new mxGeometry(0,d.height-
-20,d.width,20),"strokeColor=#006000;fillColor=#777777;rounded=1");d.vertex=!0;e.insert(d);f&&f.lblTxts&&(e.value=f.lblTxts[0],d.value=f.lblTxts[1]);break;case "js:bpmnActivityShadow":case "js:bpmnActivity":k.shape="ext;rounded=1";f={};r=r["y:GenericNode"]||r["y:GenericGroupNode"];this.mapObject(r,{"y:StyleProperties.y:Property":{"com.yworks.bpmn.taskType":"taskType","com.yworks.bpmn.activityType":"activityType","com.yworks.bpmn.marker1":"marker1","com.yworks.bpmn.marker2":"marker2","com.yworks.bpmn.marker3":"marker3",
-"com.yworks.bpmn.marker4":"marker4"}},f);switch(f.activityType){case "activity_type_transaction":k["double"]="1"}switch(f.taskType){case "task_type_send":var b=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;fillColor=#000000;strokeColor=#FFFFFF;");b.geometry.offset=new mxPoint(4,7);break;case "task_type_receive":b=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;");b.geometry.offset=new mxPoint(4,7);break;case "task_type_user":b=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.user_task;");
+2),e.insert(d);else if("OUTPUT"==r.type||"data_object_type_output"==f.dataObjectType)d=new mxCell("",new mxGeometry(0,0,10,10),"html=1;shape=singleArrow;arrowWidth=0.4;arrowSize=0.4;fillColor=#000000;"),d.vertex=!0,d.geometry.relative=!0,d.geometry.offset=new mxPoint(2,2),e.insert(d);break;case "js:BpmnChoreography":this.mapObject(r,{defaults:{shape:"swimlane;collapsible=0;rounded=1",startSize:"20",strokeColor:"#006000",fillColor:"#CCCCCC"}},l);d=e.geometry;d=new mxCell("",new mxGeometry(0,d.height-
+20,d.width,20),"strokeColor=#006000;fillColor=#777777;rounded=1");d.vertex=!0;e.insert(d);f&&f.lblTxts&&(e.value=f.lblTxts[0],d.value=f.lblTxts[1]);break;case "js:bpmnActivityShadow":case "js:bpmnActivity":l.shape="ext;rounded=1";f={};r=r["y:GenericNode"]||r["y:GenericGroupNode"];this.mapObject(r,{"y:StyleProperties.y:Property":{"com.yworks.bpmn.taskType":"taskType","com.yworks.bpmn.activityType":"activityType","com.yworks.bpmn.marker1":"marker1","com.yworks.bpmn.marker2":"marker2","com.yworks.bpmn.marker3":"marker3",
+"com.yworks.bpmn.marker4":"marker4"}},f);switch(f.activityType){case "activity_type_transaction":l["double"]="1"}switch(f.taskType){case "task_type_send":var b=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;fillColor=#000000;strokeColor=#FFFFFF;");b.geometry.offset=new mxPoint(4,7);break;case "task_type_receive":b=new mxCell("",new mxGeometry(0,0,19,12),"shape=message;");b.geometry.offset=new mxPoint(4,7);break;case "task_type_user":b=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.user_task;");
b.geometry.offset=new mxPoint(4,5);break;case "task_type_manual":b=new mxCell("",new mxGeometry(0,0,15,10),"shape=mxgraph.bpmn.manual_task;");b.geometry.offset=new mxPoint(4,7);break;case "task_type_business_rule":b=new mxCell("",new mxGeometry(0,0,18,13),"shape=mxgraph.bpmn.business_rule_task;");b.geometry.offset=new mxPoint(4,7);break;case "task_type_service":b=new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.service_task;");b.geometry.offset=new mxPoint(4,5);break;case "task_type_script":b=
new mxCell("",new mxGeometry(0,0,15,15),"shape=mxgraph.bpmn.script_task;"),b.geometry.offset=new mxPoint(4,5)}b&&(b.vertex=!0,b.geometry.relative=!0,e.insert(b),b=null);for(var a=0,d=1;4>=d;d++)f["marker"+d]&&a++;r=-7.5*a-2*(a-1);for(d=1;d<=a;d++){switch(f["marker"+d]){case "bpmn_marker_closed":b=new mxCell("",new mxGeometry(.5,1,15,15),"shape=plus;part=1;");b.geometry.offset=new mxPoint(r,-20);break;case "bpmn_marker_open":b=new mxCell("",new mxGeometry(.5,1,15,15),"shape=rect;part=1;");b.geometry.offset=
new mxPoint(r,-20);var c=new mxCell("",new mxGeometry(.5,.5,8,1),"shape=rect;part=1;");c.geometry.offset=new mxPoint(-4,-1);c.geometry.relative=!0;c.vertex=!0;b.insert(c);break;case "bpmn_marker_loop":b=new mxCell("",new mxGeometry(.5,1,15,15),"shape=mxgraph.bpmn.loop;part=1;");b.geometry.offset=new mxPoint(r,-20);break;case "bpmn_marker_parallel":b=new mxCell("",new mxGeometry(.5,1,15,15),"shape=parallelMarker;part=1;");b.geometry.offset=new mxPoint(r,-20);break;case "bpmn_marker_sequential":b=new mxCell("",
new mxGeometry(.5,1,15,15),"shape=parallelMarker;direction=south;part=1;");b.geometry.offset=new mxPoint(r,-20);break;case "bpmn_marker_ad_hoc":b=new mxCell("",new mxGeometry(.5,1,15,10),"shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;fillColor=#000000");b.geometry.offset=new mxPoint(r,-17);break;case "bpmn_marker_compensation":b=new mxCell("",new mxGeometry(.5,1,15,11),"shape=mxgraph.bpmn.compensation;part=1;"),b.geometry.offset=new mxPoint(r,-18)}b.geometry.relative=!0;b.vertex=!0;e.insert(b);
-r+=20}break;case "js:table":k.shape="swimlane;collapsible=0;swimlaneLine=0";f=r["yjs:TableNodeStyle"]||r["demotablestyle:DemoTableStyle"];!f&&r["bpmn:PoolNodeStyle"]&&(f=r["bpmn:PoolNodeStyle"]["yjs:TableNodeStyle"]);this.mapObject(f,{"backgroundStyle.demotablestyle:TableBackgroundStyle":{"insetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableBackgroundFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"swimlaneFillColor",mod:"color"},"tableBackgroundStroke.yjs:Stroke":{fill:{key:"strokeColor",
-mod:"color"},thickness:"strokeWidth"}},"backgroundStyle.yjs:ShapeNodeStyle.fill":{key:"fillColor",mod:"color"},"backgroundStyle.yjs:ShapeNodeStyle.fill.yjs:SolidColorFill.color":{key:"fillColor",mod:"color"}},k);k.swimlaneFillColor=k.fillColor;f=f.table["y:Table"];var h=a=0,n={x:0};r=0;(d=f.Insets)?(d=d.split(","),"0"!=d[0]?(k.startSize=d[0],n.x=parseFloat(d[0]),k.horizontal="0"):"0"!=d[1]&&(k.startSize=d[1],r=parseFloat(d[1]),h+=r)):k.startSize="0";var l={},x={Insets:function(a,b){b.startSize=a.split(",")[0]},
+r+=20}break;case "js:table":l.shape="swimlane;collapsible=0;swimlaneLine=0";f=r["yjs:TableNodeStyle"]||r["demotablestyle:DemoTableStyle"];!f&&r["bpmn:PoolNodeStyle"]&&(f=r["bpmn:PoolNodeStyle"]["yjs:TableNodeStyle"]);this.mapObject(f,{"backgroundStyle.demotablestyle:TableBackgroundStyle":{"insetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableBackgroundFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"swimlaneFillColor",mod:"color"},"tableBackgroundStroke.yjs:Stroke":{fill:{key:"strokeColor",
+mod:"color"},thickness:"strokeWidth"}},"backgroundStyle.yjs:ShapeNodeStyle.fill":{key:"fillColor",mod:"color"},"backgroundStyle.yjs:ShapeNodeStyle.fill.yjs:SolidColorFill.color":{key:"fillColor",mod:"color"}},l);l.swimlaneFillColor=l.fillColor;f=f.table["y:Table"];var h=a=0,n={x:0};r=0;(d=f.Insets)?(d=d.split(","),"0"!=d[0]?(l.startSize=d[0],n.x=parseFloat(d[0]),l.horizontal="0"):"0"!=d[1]&&(l.startSize=d[1],r=parseFloat(d[1]),h+=r)):l.startSize="0";var k={},w={Insets:function(a,b){b.startSize=a.split(",")[0]},
"Style.bpmn:AlternatingLeafStripeStyle":{"evenLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"evenFill",mod:"color"},backgroundFill:{key:"evenLaneFill",mod:"color"}},"oddLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"oddFill",mod:"color"},backgroundFill:{key:"oddLaneFill",mod:"color"}}},"Style.yjs:NodeStyleStripeStyleAdapter":{"demotablestyle:DemoStripeStyle":{"stripeInsetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableLineFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"strokeColor",
-mod:"color"}},"yjs:ShapeNodeStyle":{fill:{key:"swimlaneFillColor",mod:"color"}}},Size:"height"};this.mapObject(f.RowDefaults,{defaults:{shape:"swimlane;collapsible=0;horizontal=0",startSize:"0"},"y:StripeDefaults":x},l);b={};c={Insets:function(a,b){b.startSize=a.split(",")[1]},"Style.bpmn:AlternatingLeafStripeStyle":{"evenLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"evenFill",mod:"color"},backgroundFill:{key:"evenLaneFill",mod:"color"}},"oddLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"oddFill",
+mod:"color"}},"yjs:ShapeNodeStyle":{fill:{key:"swimlaneFillColor",mod:"color"}}},Size:"height"};this.mapObject(f.RowDefaults,{defaults:{shape:"swimlane;collapsible=0;horizontal=0",startSize:"0"},"y:StripeDefaults":w},k);b={};c={Insets:function(a,b){b.startSize=a.split(",")[1]},"Style.bpmn:AlternatingLeafStripeStyle":{"evenLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"evenFill",mod:"color"},backgroundFill:{key:"evenLaneFill",mod:"color"}},"oddLeafDescriptor.bpmn:StripeDescriptor":{insetFill:{key:"oddFill",
mod:"color"},backgroundFill:{key:"oddLaneFill",mod:"color"}}},"Style.yjs:NodeStyleStripeStyleAdapter":{"demotablestyle:DemoStripeStyle":{"stripeInsetFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"fillColor",mod:"color"},"tableLineFill.yjs:SolidColorFill.color.yjs:Color.value":{key:"strokeColor",mod:"color"}},"yjs:ShapeNodeStyle":{fill:{key:"swimlaneFillColor",mod:"color"}}},Size:"width"};this.mapObject(f.ColumnDefaults,{defaults:{shape:"swimlane;collapsible=0",startSize:"0",fillColor:"none"},
-"y:StripeDefaults":c},b);var d=e.geometry,a=f.Rows["y:Row"],h=h+parseFloat(b.startSize),w=n.x,A=n.x;n.lx=n.x;if(a)for(a instanceof Array||(a=[a]),d=0;d<a.length;d++)n.x=A,n.lx=A,h=this.addRow(a[d],e,d&1,h,n,x,l),w=Math.max(n.x,w);f=f.Columns["y:Column"];a=w;if(f)for(f instanceof Array||(f=[f]),d=0;d<f.length;d++)a=this.addColumn(f[d],e,d&1,a,r,c,b);break;case "js:table2":k.shape="swimlane;collapsible=0;swimlaneLine=0";f={};this.mapObject(r,{"y:TableNode":{"y:StyleProperties.y:Property":{"yed.table.section.color":{key:"secColor",
+"y:StripeDefaults":c},b);var d=e.geometry,a=f.Rows["y:Row"],h=h+parseFloat(b.startSize),y=n.x,A=n.x;n.lx=n.x;if(a)for(a instanceof Array||(a=[a]),d=0;d<a.length;d++)n.x=A,n.lx=A,h=this.addRow(a[d],e,d&1,h,n,w,k),y=Math.max(n.x,y);f=f.Columns["y:Column"];a=y;if(f)for(f instanceof Array||(f=[f]),d=0;d<f.length;d++)a=this.addColumn(f[d],e,d&1,a,r,c,b);break;case "js:table2":l.shape="swimlane;collapsible=0;swimlaneLine=0";f={};this.mapObject(r,{"y:TableNode":{"y:StyleProperties.y:Property":{"yed.table.section.color":{key:"secColor",
mod:"color"},"yed.table.header.height":"headerH","yed.table.header.color.main":{key:"headerColor",mod:"color"},"yed.table.header.color.alternating":{key:"headerColorAlt",mod:"color"},"yed.table.lane.color.main":{key:"laneColor",mod:"color"},"yed.table.lane.color.alternating":{key:"laneColorAlt",mod:"color"},"yed.table.lane.style":"laneStyle","com.yworks.bpmn.type":"isHorz",POOL_LANE_COLOR_ALTERNATING:{key:"laneColorAlt",mod:"color"},POOL_LANE_COLOR_MAIN:{key:"laneColor",mod:"color"},POOL_LANE_STYLE:"laneStyle",
-POOL_HEADER_COLOR_MAIN:{key:"headerColor",mod:"color"},POOL_HEADER_COLOR_ALTERNATING:{key:"headerColorAlt",mod:"color"},POOL_TABLE_SECTION_COLOR:{key:"secColor",mod:"color"}},"y:Table":{"y:DefaultColumnInsets.top":"colHHeight","y:DefaultRowInsets.left":"rowHWidth","y:Insets":{top:"tblHHeight",left:"tblHWidth"}}}},f);k.swimlaneFillColor=k.fillColor;x=b=0;"pool_type_lane_and_column"==f.isHorz||"pool_type_empty"==f.isHorz||"pool_type_lane"==f.isHorz?x=parseFloat(f.tblHWidth):b=parseFloat(f.tblHHeight);
-k.startSize=b?b:x;try{a=r["y:TableNode"]["y:Table"]["y:Rows"]["y:Row"];c=r["y:TableNode"]["y:Table"]["y:Columns"]["y:Column"];h="lane.style.rows"==f.laneStyle||"lane_style_rows"==f.laneStyle;a instanceof Array||(a=[a]);c instanceof Array||(c=[c]);n=parseFloat(f.rowHWidth);for(d=0;d<a.length;d++)a[d]["y:Insets"]&&(n=Math.max(n,parseFloat(a[d]["y:Insets"].left)+parseFloat(a[d]["y:Insets"].right)));l=parseFloat(f.colHHeight);for(d=0;d<c.length;d++)c[d]["y:Insets"]&&(l=Math.max(l,parseFloat(c[d]["y:Insets"].top)+
-parseFloat(c[d]["y:Insets"].bottom)));h?(this.addTbl2Rows(e,a,b,x,n,l,h,f),this.addTbl2Cols(e,c,b,x,n,l,h,f)):(this.addTbl2Cols(e,c,b,x,n,l,h,f),this.addTbl2Rows(e,a,b,x,n,l,h,f))}catch(B){}break;case "js:relationship_big_entity":k.shape="swimlane;startSize=30;rounded=1;arcSize=5;collapsible=0";if(e=r["y:GenericNode"]["y:Fill"])k.fillColor=e.color2,k.swimlaneFillColor=e.color;break;case "js:relationship_attribute":k.shape="1"==k["double"]?"doubleEllipse":"ellipse"}0<p.indexOf("Shadow")&&(k.shadow=
+POOL_HEADER_COLOR_MAIN:{key:"headerColor",mod:"color"},POOL_HEADER_COLOR_ALTERNATING:{key:"headerColorAlt",mod:"color"},POOL_TABLE_SECTION_COLOR:{key:"secColor",mod:"color"}},"y:Table":{"y:DefaultColumnInsets.top":"colHHeight","y:DefaultRowInsets.left":"rowHWidth","y:Insets":{top:"tblHHeight",left:"tblHWidth"}}}},f);l.swimlaneFillColor=l.fillColor;w=b=0;"pool_type_lane_and_column"==f.isHorz||"pool_type_empty"==f.isHorz||"pool_type_lane"==f.isHorz?w=parseFloat(f.tblHWidth):b=parseFloat(f.tblHHeight);
+l.startSize=b?b:w;try{a=r["y:TableNode"]["y:Table"]["y:Rows"]["y:Row"];c=r["y:TableNode"]["y:Table"]["y:Columns"]["y:Column"];h="lane.style.rows"==f.laneStyle||"lane_style_rows"==f.laneStyle;a instanceof Array||(a=[a]);c instanceof Array||(c=[c]);n=parseFloat(f.rowHWidth);for(d=0;d<a.length;d++)a[d]["y:Insets"]&&(n=Math.max(n,parseFloat(a[d]["y:Insets"].left)+parseFloat(a[d]["y:Insets"].right)));k=parseFloat(f.colHHeight);for(d=0;d<c.length;d++)c[d]["y:Insets"]&&(k=Math.max(k,parseFloat(c[d]["y:Insets"].top)+
+parseFloat(c[d]["y:Insets"].bottom)));h?(this.addTbl2Rows(e,a,b,w,n,k,h,f),this.addTbl2Cols(e,c,b,w,n,k,h,f)):(this.addTbl2Cols(e,c,b,w,n,k,h,f),this.addTbl2Rows(e,a,b,w,n,k,h,f))}catch(C){}break;case "js:relationship_big_entity":l.shape="swimlane;startSize=30;rounded=1;arcSize=5;collapsible=0";if(e=r["y:GenericNode"]["y:Fill"])l.fillColor=e.color2,l.swimlaneFillColor=e.color;break;case "js:relationship_attribute":l.shape="1"==l["double"]?"doubleEllipse":"ellipse"}0<p.indexOf("Shadow")&&(l.shadow=
"1")}};
-mxGraphMlCodec.prototype.addTbl2Rows=function(e,k,r,f,p,d,b,a){r+=d;for(var c=null!=a.isHorz,h=0;h<k.length;h++){var n=h&1,l=new mxCell;l.vertex=!0;var x={shape:"swimlane;collapsible=0;horizontal=0",startSize:p,fillColor:a.secColor||"none",swimlaneLine:c?"0":"1"};0==parseFloat(x.startSize)&&(x.fillColor="none",x.swimlaneLine="0");if(b){var w=n?a.headerColorAlt:a.headerColor;x.swimlaneFillColor=n?a.laneColorAlt:a.laneColor;x.fillColor=w?w:x.swimlaneFillColor}n=parseFloat(k[h].height);w=c&&0==h?d:0;
-l.geometry=new mxGeometry(f,r-w,e.geometry.width-f,n+w);r+=n;l.style=this.styleMap2Str(x);e.insert(l)}};
-mxGraphMlCodec.prototype.addTbl2Cols=function(e,k,r,f,p,d,b,a){f=p+f;for(var c=null!=a.isHorz,h=0;h<k.length;h++){var n=h&1,l=new mxCell;l.vertex=!0;var x={shape:"swimlane;collapsible=0",startSize:d,fillColor:a.secColor||"none",swimlaneLine:c?"0":"1"};0==parseFloat(x.startSize)&&(x.fillColor="none");if(!b){var w=n?a.headerColorAlt:a.headerColor;x.swimlaneFillColor=n?a.laneColorAlt:a.laneColor;x.fillColor=w?w:x.swimlaneFillColor}n=parseFloat(k[h].width);w=c&&0==h?p:0;l.geometry=new mxGeometry(f-w,
-r,n+w,e.geometry.height-r);f+=n;l.style=this.styleMap2Str(x);e.insert(l)}};
-mxGraphMlCodec.prototype.addRow=function(e,k,r,f,p,d,b){var a=new mxCell;a.vertex=!0;var c=mxUtils.clone(b);this.mapObject(e,d,c);r?(c.oddFill&&(c.fillColor=c.oddFill),c.oddLaneFill&&(c.swimlaneFillColor=c.oddLaneFill)):(c.evenFill&&(c.fillColor=c.evenFill),c.evenLaneFill&&(c.swimlaneFillColor=c.evenLaneFill));r=parseFloat(c.height);a.geometry=new mxGeometry(p.lx,f,k.geometry.width-p.lx,r);var h=e.Labels;h&&this.addLabels(a,h,c);a.style=this.styleMap2Str(c);k.insert(a);e=e["y:Row"];p.lx=0;c.startSize&&
-(p.lx=parseFloat(c.startSize),p.x+=p.lx);k=c=p.x;var h=p.lx,n=0;if(e){e instanceof Array||(e=[e]);for(var l=0;l<e.length;l++)p.x=c,p.lx=h,n=this.addRow(e[l],a,l&1,n,p,d,b),k=Math.max(p.x,k)}p.x=k;r=Math.max(r,n);a.geometry.height=r;return f+r};
-mxGraphMlCodec.prototype.addColumn=function(e,k,r,f,p,d,b){var a=new mxCell;a.vertex=!0;var c=mxUtils.clone(b);this.mapObject(e,d,c);r?(c.oddFill&&(c.fillColor=c.oddFill),c.oddLaneFill&&(c.swimlaneFillColor=c.oddLaneFill)):(c.evenFill&&(c.fillColor=c.evenFill),c.evenLaneFill&&(c.swimlaneFillColor=c.evenLaneFill));r=parseFloat(c.width);a.geometry=new mxGeometry(f,p,r,k.geometry.height-p);var h=e.Labels;h&&this.addLabels(a,h,c);a.style=this.styleMap2Str(c);k.insert(a);e=e["y:Column"];k=0;if(e)for(e instanceof
-Array||(e=[e]),c=0;c<e.length;c++)k=this.addColumn(e[c],a,c&1,k,p,d,b);r=Math.max(r,k);a.geometry.width=r;return f+r};mxGraphMlCodec.prototype.handleFixedRatio=function(e,k){var r=k.shape,f=e.geometry;if(r&&f)if(0<r.indexOf(";aspect=fixed"))r=Math.min(f.height,f.width),r==f.height&&(f.x+=(f.width-r)/2),f.height=r,f.width=r;else if(0<r.indexOf(";rotation=90")||0<r.indexOf(";rotation=-90")){var r=f.height,p=f.width;f.height=p;f.width=r;r=(r-p)/2;f.x-=r;f.y+=r}};
-mxGraphMlCodec.prototype.addNodeGeo=function(e,k,r,f){var p=k[mxGraphMlConstants.RECT],d=0,b=0,a=30,c=30;p?(d=p[mxGraphMlConstants.X],b=p[mxGraphMlConstants.Y],a=p[mxGraphMlConstants.WIDTH],c=p[mxGraphMlConstants.HEIGHT]):(d=k[mxGraphMlConstants.X_L]||d,b=k[mxGraphMlConstants.Y_L]||b,a=k[mxGraphMlConstants.WIDTH_L]||a,c=k[mxGraphMlConstants.HEIGHT_L]||c);e=e.geometry;e.x=parseFloat(d)-r;e.y=parseFloat(b)-f;e.width=parseFloat(a);e.height=parseFloat(c)};
-mxGraphMlCodec.prototype.importEdge=function(e,k,r,f,p){var d=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA),b=e.getAttribute(mxGraphMlConstants.ID),a=e.getAttribute(mxGraphMlConstants.EDGE_SOURCE),c=e.getAttribute(mxGraphMlConstants.EDGE_TARGET),h=e.getAttribute(mxGraphMlConstants.EDGE_SOURCE_PORT);e=e.getAttribute(mxGraphMlConstants.EDGE_TARGET_PORT);a=this.nodesMap[a];c=this.nodesMap[c];r=k.insertEdge(r,null,"",a.node,c.node,"graphMLId="+b);for(var b={graphMlID:b},n=0;n<d.length;n++){var l=
-this.dataElem2Obj(d[n]),x=l["y:PolyLineEdge"]||l["y:GenericEdge"]||l["y:ArcEdge"]||l["y:BezierEdge"]||l["y:QuadCurveEdge"]||l["y:SplineEdge"];l.key==this.edgesKeys[mxGraphMlConstants.EDGE_GEOMETRY].key?this.addEdgeGeo(r,l,f,p):l.key==this.edgesKeys[mxGraphMlConstants.EDGE_STYLE].key?this.addEdgeStyle(r,l,b):l.key==this.edgesKeys[mxGraphMlConstants.EDGE_LABELS].key?this.addLabels(r,l,b,k):x&&(this.addEdgeStyle(r,l,b),l=this.addEdgePath(r,x["y:Path"],b,f,p),x["y:EdgeLabel"]&&this.addLabels(r,x["y:EdgeLabel"],
-b,k,l),null!=b.shape&&0==b.shape.indexOf("link")&&(b.width=b.strokeWidth,b.strokeWidth=1))}a.ports&&h&&(k=a.ports[h],k.pos&&(b.exitX=k.pos.x,b.exitY=k.pos.y));c.ports&&e&&(k=c.ports[e],k.pos&&(b.entryX=k.pos.x,b.entryY=k.pos.y));r.style=this.styleMap2Str(b);return r};
-mxGraphMlCodec.prototype.addEdgeGeo=function(e,k,r,f){if(k=k[mxGraphMlConstants.Y_BEND]){for(var p=[],d=0;d<k.length;d++){var b=k[d][mxGraphMlConstants.LOCATION];b&&(b=b.split(","),p.push(new mxPoint(parseFloat(b[0])-r,parseFloat(b[1])-f)))}e.geometry.points=p}};
-mxGraphMlCodec.prototype.addEdgePath=function(e,k,r,f,p){var d=[];if(k){var b=parseFloat(k.sx),a=parseFloat(k.sy),c=parseFloat(k.tx),h=parseFloat(k.ty),n=e.source.geometry;0!=b||0!=a?(r.exitX=(b+n.width/2)/n.width,r.exitY=(a+n.height/2)/n.height,d.push(new mxPoint(n.x+r.exitX*n.width-f,n.y+r.exitY*n.height-p))):d.push(new mxPoint(n.x+n.width/2-f,n.y+n.height/2-p));b=e.target.geometry;0!=c||0!=h?(r.entryX=(c+b.width/2)/b.width,r.entryY=(h+b.height/2)/b.height,r=new mxPoint(b.x+r.entryX*b.width-f,b.y+
-r.entryY*b.height-p)):r=new mxPoint(b.x+b.width/2-f,b.y+b.height/2-p);if(k=k["y:Point"]){k instanceof Array||(k=[k]);c=[];for(h=0;h<k.length;h++)b=new mxPoint(parseFloat(k[h].x)-f,parseFloat(k[h].y)-p),c.push(b),d.push(b);e.geometry.points=c}d.push(r)}return d};
-mxGraphMlCodec.prototype.addEdgeStyle=function(e,k,r){e=function(a,b){b.dashed=1;var c;switch(a){case "DashDot":c="3 1 1 1";break;case "Dot":c="1 1";break;case "DashDotDot":c="3 1 1 1 1 1";break;case "Dash":c="3 1";break;default:c=a.replace(/0/g,"1")}c&&(0>c.indexOf(" ")&&(c=c+" "+c),b.dashPattern=c)};var f=function(a,b){b.endFill="WHITE"==a||0==a.indexOf("white_")||0==a.indexOf("transparent_")?"0":"1"},p=function(a,b){b.startFill="WHITE"==a||0==a.indexOf("white_")||0==a.indexOf("transparent_")?"0":
+mxGraphMlCodec.prototype.addTbl2Rows=function(e,l,r,f,p,d,b,a){r+=d;for(var c=null!=a.isHorz,h=0;h<l.length;h++){var n=h&1,k=new mxCell;k.vertex=!0;var w={shape:"swimlane;collapsible=0;horizontal=0",startSize:p,fillColor:a.secColor||"none",swimlaneLine:c?"0":"1"};0==parseFloat(w.startSize)&&(w.fillColor="none",w.swimlaneLine="0");if(b){var y=n?a.headerColorAlt:a.headerColor;w.swimlaneFillColor=n?a.laneColorAlt:a.laneColor;w.fillColor=y?y:w.swimlaneFillColor}n=parseFloat(l[h].height);y=c&&0==h?d:0;
+k.geometry=new mxGeometry(f,r-y,e.geometry.width-f,n+y);r+=n;k.style=this.styleMap2Str(w);e.insert(k)}};
+mxGraphMlCodec.prototype.addTbl2Cols=function(e,l,r,f,p,d,b,a){f=p+f;for(var c=null!=a.isHorz,h=0;h<l.length;h++){var n=h&1,k=new mxCell;k.vertex=!0;var w={shape:"swimlane;collapsible=0",startSize:d,fillColor:a.secColor||"none",swimlaneLine:c?"0":"1"};0==parseFloat(w.startSize)&&(w.fillColor="none");if(!b){var y=n?a.headerColorAlt:a.headerColor;w.swimlaneFillColor=n?a.laneColorAlt:a.laneColor;w.fillColor=y?y:w.swimlaneFillColor}n=parseFloat(l[h].width);y=c&&0==h?p:0;k.geometry=new mxGeometry(f-y,
+r,n+y,e.geometry.height-r);f+=n;k.style=this.styleMap2Str(w);e.insert(k)}};
+mxGraphMlCodec.prototype.addRow=function(e,l,r,f,p,d,b){var a=new mxCell;a.vertex=!0;var c=mxUtils.clone(b);this.mapObject(e,d,c);r?(c.oddFill&&(c.fillColor=c.oddFill),c.oddLaneFill&&(c.swimlaneFillColor=c.oddLaneFill)):(c.evenFill&&(c.fillColor=c.evenFill),c.evenLaneFill&&(c.swimlaneFillColor=c.evenLaneFill));r=parseFloat(c.height);a.geometry=new mxGeometry(p.lx,f,l.geometry.width-p.lx,r);var h=e.Labels;h&&this.addLabels(a,h,c);a.style=this.styleMap2Str(c);l.insert(a);e=e["y:Row"];p.lx=0;c.startSize&&
+(p.lx=parseFloat(c.startSize),p.x+=p.lx);l=c=p.x;var h=p.lx,n=0;if(e){e instanceof Array||(e=[e]);for(var k=0;k<e.length;k++)p.x=c,p.lx=h,n=this.addRow(e[k],a,k&1,n,p,d,b),l=Math.max(p.x,l)}p.x=l;r=Math.max(r,n);a.geometry.height=r;return f+r};
+mxGraphMlCodec.prototype.addColumn=function(e,l,r,f,p,d,b){var a=new mxCell;a.vertex=!0;var c=mxUtils.clone(b);this.mapObject(e,d,c);r?(c.oddFill&&(c.fillColor=c.oddFill),c.oddLaneFill&&(c.swimlaneFillColor=c.oddLaneFill)):(c.evenFill&&(c.fillColor=c.evenFill),c.evenLaneFill&&(c.swimlaneFillColor=c.evenLaneFill));r=parseFloat(c.width);a.geometry=new mxGeometry(f,p,r,l.geometry.height-p);var h=e.Labels;h&&this.addLabels(a,h,c);a.style=this.styleMap2Str(c);l.insert(a);e=e["y:Column"];l=0;if(e)for(e instanceof
+Array||(e=[e]),c=0;c<e.length;c++)l=this.addColumn(e[c],a,c&1,l,p,d,b);r=Math.max(r,l);a.geometry.width=r;return f+r};mxGraphMlCodec.prototype.handleFixedRatio=function(e,l){var r=l.shape,f=e.geometry;if(r&&f)if(0<r.indexOf(";aspect=fixed"))r=Math.min(f.height,f.width),r==f.height&&(f.x+=(f.width-r)/2),f.height=r,f.width=r;else if(0<r.indexOf(";rotation=90")||0<r.indexOf(";rotation=-90")){var r=f.height,p=f.width;f.height=p;f.width=r;r=(r-p)/2;f.x-=r;f.y+=r}};
+mxGraphMlCodec.prototype.addNodeGeo=function(e,l,r,f){var p=l[mxGraphMlConstants.RECT],d=0,b=0,a=30,c=30;p?(d=p[mxGraphMlConstants.X],b=p[mxGraphMlConstants.Y],a=p[mxGraphMlConstants.WIDTH],c=p[mxGraphMlConstants.HEIGHT]):(d=l[mxGraphMlConstants.X_L]||d,b=l[mxGraphMlConstants.Y_L]||b,a=l[mxGraphMlConstants.WIDTH_L]||a,c=l[mxGraphMlConstants.HEIGHT_L]||c);e=e.geometry;e.x=parseFloat(d)-r;e.y=parseFloat(b)-f;e.width=parseFloat(a);e.height=parseFloat(c)};
+mxGraphMlCodec.prototype.importEdge=function(e,l,r,f,p){var d=this.getDirectChildNamedElements(e,mxGraphMlConstants.DATA),b=e.getAttribute(mxGraphMlConstants.ID),a=e.getAttribute(mxGraphMlConstants.EDGE_SOURCE),c=e.getAttribute(mxGraphMlConstants.EDGE_TARGET),h=e.getAttribute(mxGraphMlConstants.EDGE_SOURCE_PORT);e=e.getAttribute(mxGraphMlConstants.EDGE_TARGET_PORT);a=this.nodesMap[a];c=this.nodesMap[c];r=l.insertEdge(r,null,"",a.node,c.node,"graphMLId="+b);for(var b={graphMlID:b},n=0;n<d.length;n++){var k=
+this.dataElem2Obj(d[n]),w=k["y:PolyLineEdge"]||k["y:GenericEdge"]||k["y:ArcEdge"]||k["y:BezierEdge"]||k["y:QuadCurveEdge"]||k["y:SplineEdge"];k.key==this.edgesKeys[mxGraphMlConstants.EDGE_GEOMETRY].key?this.addEdgeGeo(r,k,f,p):k.key==this.edgesKeys[mxGraphMlConstants.EDGE_STYLE].key?this.addEdgeStyle(r,k,b):k.key==this.edgesKeys[mxGraphMlConstants.EDGE_LABELS].key?this.addLabels(r,k,b,l):w&&(this.addEdgeStyle(r,k,b),k=this.addEdgePath(r,w["y:Path"],b,f,p),w["y:EdgeLabel"]&&this.addLabels(r,w["y:EdgeLabel"],
+b,l,k),null!=b.shape&&0==b.shape.indexOf("link")&&(b.width=b.strokeWidth,b.strokeWidth=1))}a.ports&&h&&(l=a.ports[h],l.pos&&(b.exitX=l.pos.x,b.exitY=l.pos.y));c.ports&&e&&(l=c.ports[e],l.pos&&(b.entryX=l.pos.x,b.entryY=l.pos.y));r.style=this.styleMap2Str(b);return r};
+mxGraphMlCodec.prototype.addEdgeGeo=function(e,l,r,f){if(l=l[mxGraphMlConstants.Y_BEND]){for(var p=[],d=0;d<l.length;d++){var b=l[d][mxGraphMlConstants.LOCATION];b&&(b=b.split(","),p.push(new mxPoint(parseFloat(b[0])-r,parseFloat(b[1])-f)))}e.geometry.points=p}};
+mxGraphMlCodec.prototype.addEdgePath=function(e,l,r,f,p){var d=[];if(l){var b=parseFloat(l.sx),a=parseFloat(l.sy),c=parseFloat(l.tx),h=parseFloat(l.ty),n=e.source.geometry;0!=b||0!=a?(r.exitX=(b+n.width/2)/n.width,r.exitY=(a+n.height/2)/n.height,d.push(new mxPoint(n.x+r.exitX*n.width-f,n.y+r.exitY*n.height-p))):d.push(new mxPoint(n.x+n.width/2-f,n.y+n.height/2-p));b=e.target.geometry;0!=c||0!=h?(r.entryX=(c+b.width/2)/b.width,r.entryY=(h+b.height/2)/b.height,r=new mxPoint(b.x+r.entryX*b.width-f,b.y+
+r.entryY*b.height-p)):r=new mxPoint(b.x+b.width/2-f,b.y+b.height/2-p);if(l=l["y:Point"]){l instanceof Array||(l=[l]);c=[];for(h=0;h<l.length;h++)b=new mxPoint(parseFloat(l[h].x)-f,parseFloat(l[h].y)-p),c.push(b),d.push(b);e.geometry.points=c}d.push(r)}return d};
+mxGraphMlCodec.prototype.addEdgeStyle=function(e,l,r){e=function(a,b){b.dashed=1;var c;switch(a){case "DashDot":c="3 1 1 1";break;case "Dot":c="1 1";break;case "DashDotDot":c="3 1 1 1 1 1";break;case "Dash":c="3 1";break;default:c=a.replace(/0/g,"1")}c&&(0>c.indexOf(" ")&&(c=c+" "+c),b.dashPattern=c)};var f=function(a,b){b.endFill="WHITE"==a||0==a.indexOf("white_")||0==a.indexOf("transparent_")?"0":"1"},p=function(a,b){b.startFill="WHITE"==a||0==a.indexOf("white_")||0==a.indexOf("transparent_")?"0":
"1"},d={defaults:{rounded:0,endArrow:"none"},configuration:{key:"shape",mod:"shape"},"y:LineStyle":{color:{key:"strokeColor",mod:"color"},type:function(a,b){"line"!=a&&(b.dashed=1);var c=null;switch(a){case "dashed":c="3 1";break;case "dotted":c="1 1";break;case "dashed_dotted":c="3 2 1 2"}c&&(b.dashPattern=c)},width:"strokeWidth"},"y:Arrows":{source:function(a,b){b.startArrow=mxGraphMlArrowsMap[a]||"classic";p(a,b)},target:function(a,b){b.endArrow=mxGraphMlArrowsMap[a]||"classic";f(a,b)}},"y:BendStyle":{smoothed:{key:"rounded",
-mod:"bool"}}},b=mxUtils.clone(d);b.defaults.curved="1";this.mapObject(k,{"yjs:PolylineEdgeStyle":{defaults:{endArrow:"none",rounded:0},smoothingLength:function(a,b){b.rounded=a&&0<parseFloat(a)?"1":"0"},stroke:{key:"strokeColor",mod:"color"},"stroke.yjs:Stroke":{dashStyle:e,"dashStyle.yjs:DashStyle.dashes":e,fill:{key:"strokeColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"strokeColor",mod:"color"},"thickness.sys:Double":"strokeWidth",thickness:"strokeWidth"},targetArrow:{key:"endArrow",
+mod:"bool"}}},b=mxUtils.clone(d);b.defaults.curved="1";this.mapObject(l,{"yjs:PolylineEdgeStyle":{defaults:{endArrow:"none",rounded:0},smoothingLength:function(a,b){b.rounded=a&&0<parseFloat(a)?"1":"0"},stroke:{key:"strokeColor",mod:"color"},"stroke.yjs:Stroke":{dashStyle:e,"dashStyle.yjs:DashStyle.dashes":e,fill:{key:"strokeColor",mod:"color"},"fill.yjs:SolidColorFill.color":{key:"strokeColor",mod:"color"},"thickness.sys:Double":"strokeWidth",thickness:"strokeWidth"},targetArrow:{key:"endArrow",
mod:"arrow"},"targetArrow.yjs:Arrow":{defaults:{endArrow:"classic",endFill:"1",endSize:"6"},fill:f,scale:{key:"endSize",mod:"scale",scale:5},type:{key:"endArrow",mod:"arrow"}},sourceArrow:{key:"startArrow",mod:"arrow"},"sourceArrow.yjs:Arrow":{defaults:{startArrow:"classic",startFill:"1",startSize:"6"},fill:p,scale:{key:"startSize",mod:"scale",scale:5},type:{key:"startArrow",mod:"arrow"}}},"y:PolyLineEdge":d,"y:GenericEdge":d,"y:ArcEdge":b,"y:BezierEdge":b,"y:QuadCurveEdge":b,"y:SplineEdge":b},r)};
-mxGraphMlCodec.prototype.addLabels=function(e,k,r,f,p){r=e.getChildCount();var d=k[mxGraphMlConstants.Y_LABEL]||k;k=[];var b=[],a=[];if(d){d instanceof Array||(d=[d]);for(var c=0;c<d.length;c++){var h=d[c],n={},l=h[mxGraphMlConstants.TEXT]||h;l&&(l=l["#text"]);var x=h[mxGraphMlConstants.LAYOUTPARAMETER]||h||{},w=function(a,b){a&&(a=a.toUpperCase());var c=b.fontStyle||0;switch(a){case "ITALIC":c|=2;break;case "BOLD":c|=1;break;case "UNDERLINE":c|=4}b.fontStyle=c};this.mapObject(h,{"Style.yjs:DefaultLabelStyle":{backgroundFill:{key:"labelBackgroundColor",
+mxGraphMlCodec.prototype.addLabels=function(e,l,r,f,p){r=e.getChildCount();var d=l[mxGraphMlConstants.Y_LABEL]||l;l=[];var b=[],a=[];if(d){d instanceof Array||(d=[d]);for(var c=0;c<d.length;c++){var h=d[c],n={},k=h[mxGraphMlConstants.TEXT]||h;k&&(k=k["#text"]);var w=h[mxGraphMlConstants.LAYOUTPARAMETER]||h||{},y=function(a,b){a&&(a=a.toUpperCase());var c=b.fontStyle||0;switch(a){case "ITALIC":c|=2;break;case "BOLD":c|=1;break;case "UNDERLINE":c|=4}b.fontStyle=c};this.mapObject(h,{"Style.yjs:DefaultLabelStyle":{backgroundFill:{key:"labelBackgroundColor",
mod:"color"},"backgroundFill.yjs:SolidColorFill.color":{key:"labelBackgroundColor",mod:"color"},backgroundStroke:{key:"labelBorderColor",mod:"color"},"backgroundStroke.yjs:Stroke.fill":{key:"labelBorderColor",mod:"color"},textFill:{key:"fontColor",mod:"color"},"textFill.yjs:SolidColorFill.color":{key:"fontColor",mod:"color"},textSize:"fontSize",horizontalTextAlignment:"align",verticalTextAlignment:"verticalAlign",wrapping:function(a,b){a&&(b.whiteSpace="wrap")},"font.yjs:Font":{fontFamily:"fontFamily",
-fontSize:"fontSize",fontStyle:w,fontWeight:w,textDecoration:w}},"Style.y:VoidLabelStyle":function(a,b){b.VoidLbl=!0},alignment:"align",fontFamily:"fontFamily",fontSize:"fontSize",fontStyle:w,underlinedText:function(a,b){var c=b.fontStyle||0;"true"==a&&(c|=4);b.fontStyle=c},horizontalTextPosition:"",textColor:{key:"fontColor",mod:"color"},verticalTextPosition:"verticalAlign",hasText:{key:"hasText",mod:"bool"},rotationAngle:"rotation"},n);n.VoidLbl||"0"==n.hasText||(k.push(l),b.push(n),a.push(x))}}for(c=
-0;c<k.length;c++)if(k[c]&&(!a[c]||!a[c]["bpmn:ParticipantParameter"])){k[c]=mxUtils.htmlEntities(k[c],!1).replace(/\n/g,"<br/>");x=e.geometry;n=new mxCell(k[c],new mxGeometry(0,0,x.width,x.height),"text;html=1;spacing=0;"+this.styleMap2Str(b[c]));n.vertex=!0;e.insert(n,r);d=n.geometry;if(a[c]["y:RatioAnchoredLabelModelParameter"])x=mxUtils.getSizeForString(k[c],b[c].fontSize,b[c].fontFamily),(h=a[c]["y:RatioAnchoredLabelModelParameter"].LayoutOffset)?(h=h.split(","),d.x=parseFloat(h[0]),d.y=parseFloat(h[1]),
-d.width=x.width,d.height=x.height,n.style+=";spacingTop=-4;"):n.style+=";align=center;";else if(a[c]["y:InteriorLabelModel"]){switch(a[c]["y:InteriorLabelModel"]){case "Center":n.style+=";verticalAlign=middle;";break;case "North":d.height=1;break;case "West":d.width=x.height,d.height=x.width,d.y=x.height/2-x.width/2,d.x=-d.y,n.style+=";rotation=-90"}n.style+=";align=center;"}else if(a[c]["y:StretchStripeLabelModel"]||a[c]["y:StripeLabelModelParameter"])switch(a[c]["y:StretchStripeLabelModel"]||a[c]["y:StripeLabelModelParameter"].Position){case "North":d.height=
-1;break;case "West":d.width=x.height,d.height=x.width,d.y=x.height/2-x.width/2,d.x=-d.y,n.style+=";rotation=-90;"}else if(a[c]["bpmn:PoolHeaderLabelModel"]){switch(a[c]["bpmn:PoolHeaderLabelModel"]){case "NORTH":d.height=1;break;case "WEST":d.width=x.height,d.height=x.width,d.y=x.height/2-x.width/2,d.x=-d.y,n.style+=";rotation=-90;"}n.style+=";align=center;"}else if(a[c]["y:InteriorStretchLabelModelParameter"])n.style+=";align=center;";else if(a[c]["y:ExteriorLabelModel"])switch(a[c]["y:ExteriorLabelModel"]){case "East":n.style+=
-";labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;";break;case "South":n.style+=";labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;";break;case "North":n.style+=";labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;";break;case "West":n.style+=";labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;"}else if(a[c]["y:FreeEdgeLabelModelParameter"]){d.relative=!0;d.adjustIt=!0;var x=
-a[c]["y:FreeEdgeLabelModelParameter"],h=x.Ratio,w=x.Distance,A=x.Angle;h&&(d.x=parseFloat(h));w&&(d.y=parseFloat(w));A&&(n.style+=";rotation="+parseFloat(A)*(180/Math.PI));n.style+=";verticalAlign=middle;"}else if(a[c]["y:EdgePathLabelModelParameter"]){d.relative=!0;x=a[c]["y:EdgePathLabelModelParameter"];l=x.SideOfEdge;h=x.SegmentRatio;d.x=h?2*parseFloat(h)-1:0;if(l)switch(l){case "RightOfEdge":d.y=-15;break;case "LeftOfEdge":d.y=15}n.style+=";verticalAlign=middle;"}else if(x=parseFloat(a[c].x),
-h=parseFloat(a[c].y),a[c].width&&(d.width=parseFloat(a[c].width)),a[c].height&&(d.height=parseFloat(a[c].height)),e.edge)if(d.relative=!0,d.x=0,d.y=0,n=e.source.geometry.getCenterX()-e.target.geometry.getCenterX(),l=e.source.geometry.getCenterY()-e.target.geometry.getCenterY(),f&&p&&a[c]["y:ModelParameter"]&&a[c]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"]){var x=a[c]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"],A=parseFloat(x.angle),w=parseFloat(x.distance),B=x.position,h=parseFloat(x.ratio),
-x=parseFloat(x.segment),E=new mxCellState;E.absolutePoints=p;f.view.updateEdgeBounds(E);var C="left"==B?1:-1;if(-1==x&&6.283185307179586==A)d.offset=new mxPoint(1>Math.abs(h)?E.segments[0]*h:h,C*w);else{-1==x&&(x=0);for(var F=A=0;F<x;F++)A+=E.segments[F];A+=E.segments[x]*h;d.x=A/E.length*2-1;d.y=(("center"==B?0:w)+d.height/2*C*(Math.abs(n)>Math.abs(l)?1:-1))*C}}else isNaN(x)||isNaN(h)||(d.offset=new mxPoint(x+n/2+(0<n?-d.width:d.width),h));else d.x=x||0,d.y=h||0;b[c].rotation&&270==b[c].rotation&&
-(d.x-=d.height/2)}return{lblTxts:k,lblStyles:b}};mxGraphMlCodec.prototype.processPage=function(e,k){var r=(new mxCodec).encode(e.getModel());r.setAttribute("style","default-style2");r=mxUtils.getXml(r);r='<diagram name="Page '+k+'">'+Graph.compress(r);return r+"</diagram>"};mxGraphMlCodec.prototype.getDirectChildNamedElements=function(e,k){for(var r=[],f=e.firstChild;null!=f;f=f.nextSibling)null!=f&&1==f.nodeType&&k==f.nodeName&&r.push(f);return r};
-mxGraphMlCodec.prototype.getDirectFirstChildNamedElements=function(e,k){for(var r=e.firstChild;null!=r;r=r.nextSibling)if(null!=r&&1==r.nodeType&&k==r.nodeName)return r;return null};mxGraphMlCodec.prototype.getDirectChildElements=function(e){var k=[];for(e=e.firstChild;null!=e;e=e.nextSibling)null!=e&&1==e.nodeType&&k.push(e);return k};mxGraphMlCodec.prototype.getDirectFirstChildElement=function(e){for(e=e.firstChild;null!=e;e=e.nextSibling)if(null!=e&&1==e.nodeType)return e;return null};
-var mxGraphMlConverters={"orgchartconverters.linebreakconverter":function(e,k){if("string"===typeof e){for(var r=e;20<r.length&&-1<r.indexOf(" ");)r=r.substring(0,r.lastIndexOf(" "));return"true"===k?r:e.substring(r.length)}return""},"orgchartconverters.borderconverter":function(e,k){return"boolean"===typeof e?e?"#FFBB33":"rgba(0,0,0,0)":"#FFF"},"orgchartconverters.addhashconverter":function(e,k){return"string"===typeof e?"string"===typeof k?"#"+e+k:"#"+e:e},"orgchartconverters.intermediateconverter":function(e,
-k){return"string"===typeof e&&17<e.length?e.replace(/^(.)(\S*)(.*)/,"$1.$3"):e},"orgchartconverters.overviewconverter":function(e,k){return"string"===typeof e&&0<e.length?e.replace(/^(.)(\S*)(.*)/,"$1.$3"):""}},mxGraphMlArrowsMap={SIMPLE:"open",TRIANGLE:"block",DIAMOND:"diamond",CIRCLE:"oval",CROSS:"cross",SHORT:"classicThin",DEFAULT:"classic",NONE:"none",none:"none",white_delta_bar:"block",delta:"block",standard:"classic",diamond:"diamond",white_diamond:"diamond",white_delta:"block",plain:"open",
+fontSize:"fontSize",fontStyle:y,fontWeight:y,textDecoration:y}},"Style.y:VoidLabelStyle":function(a,b){b.VoidLbl=!0},alignment:"align",fontFamily:"fontFamily",fontSize:"fontSize",fontStyle:y,underlinedText:function(a,b){var c=b.fontStyle||0;"true"==a&&(c|=4);b.fontStyle=c},horizontalTextPosition:"",textColor:{key:"fontColor",mod:"color"},verticalTextPosition:"verticalAlign",hasText:{key:"hasText",mod:"bool"},rotationAngle:"rotation"},n);n.VoidLbl||"0"==n.hasText||(l.push(k),b.push(n),a.push(w))}}for(c=
+0;c<l.length;c++)if(l[c]&&(!a[c]||!a[c]["bpmn:ParticipantParameter"])){l[c]=mxUtils.htmlEntities(l[c],!1).replace(/\n/g,"<br/>");w=e.geometry;n=new mxCell(l[c],new mxGeometry(0,0,w.width,w.height),"text;html=1;spacing=0;"+this.styleMap2Str(b[c]));n.vertex=!0;e.insert(n,r);d=n.geometry;if(a[c]["y:RatioAnchoredLabelModelParameter"])w=mxUtils.getSizeForString(l[c],b[c].fontSize,b[c].fontFamily),(h=a[c]["y:RatioAnchoredLabelModelParameter"].LayoutOffset)?(h=h.split(","),d.x=parseFloat(h[0]),d.y=parseFloat(h[1]),
+d.width=w.width,d.height=w.height,n.style+=";spacingTop=-4;"):n.style+=";align=center;";else if(a[c]["y:InteriorLabelModel"]){switch(a[c]["y:InteriorLabelModel"]){case "Center":n.style+=";verticalAlign=middle;";break;case "North":d.height=1;break;case "West":d.width=w.height,d.height=w.width,d.y=w.height/2-w.width/2,d.x=-d.y,n.style+=";rotation=-90"}n.style+=";align=center;"}else if(a[c]["y:StretchStripeLabelModel"]||a[c]["y:StripeLabelModelParameter"])switch(a[c]["y:StretchStripeLabelModel"]||a[c]["y:StripeLabelModelParameter"].Position){case "North":d.height=
+1;break;case "West":d.width=w.height,d.height=w.width,d.y=w.height/2-w.width/2,d.x=-d.y,n.style+=";rotation=-90;"}else if(a[c]["bpmn:PoolHeaderLabelModel"]){switch(a[c]["bpmn:PoolHeaderLabelModel"]){case "NORTH":d.height=1;break;case "WEST":d.width=w.height,d.height=w.width,d.y=w.height/2-w.width/2,d.x=-d.y,n.style+=";rotation=-90;"}n.style+=";align=center;"}else if(a[c]["y:InteriorStretchLabelModelParameter"])n.style+=";align=center;";else if(a[c]["y:ExteriorLabelModel"])switch(a[c]["y:ExteriorLabelModel"]){case "East":n.style+=
+";labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;";break;case "South":n.style+=";labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;";break;case "North":n.style+=";labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;";break;case "West":n.style+=";labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;"}else if(a[c]["y:FreeEdgeLabelModelParameter"]){d.relative=!0;d.adjustIt=!0;var w=
+a[c]["y:FreeEdgeLabelModelParameter"],h=w.Ratio,y=w.Distance,A=w.Angle;h&&(d.x=parseFloat(h));y&&(d.y=parseFloat(y));A&&(n.style+=";rotation="+parseFloat(A)*(180/Math.PI));n.style+=";verticalAlign=middle;"}else if(a[c]["y:EdgePathLabelModelParameter"]){d.relative=!0;w=a[c]["y:EdgePathLabelModelParameter"];k=w.SideOfEdge;h=w.SegmentRatio;d.x=h?2*parseFloat(h)-1:0;if(k)switch(k){case "RightOfEdge":d.y=-15;break;case "LeftOfEdge":d.y=15}n.style+=";verticalAlign=middle;"}else if(w=parseFloat(a[c].x),
+h=parseFloat(a[c].y),a[c].width&&(d.width=parseFloat(a[c].width)),a[c].height&&(d.height=parseFloat(a[c].height)),e.edge)if(d.relative=!0,d.x=0,d.y=0,n=e.source.geometry.getCenterX()-e.target.geometry.getCenterX(),k=e.source.geometry.getCenterY()-e.target.geometry.getCenterY(),f&&p&&a[c]["y:ModelParameter"]&&a[c]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"]){var w=a[c]["y:ModelParameter"]["y:SmartEdgeLabelModelParameter"],A=parseFloat(w.angle),y=parseFloat(w.distance),C=w.position,h=parseFloat(w.ratio),
+w=parseFloat(w.segment),E=new mxCellState;E.absolutePoints=p;f.view.updateEdgeBounds(E);var B="left"==C?1:-1;if(-1==w&&6.283185307179586==A)d.offset=new mxPoint(1>Math.abs(h)?E.segments[0]*h:h,B*y);else{-1==w&&(w=0);for(var F=A=0;F<w;F++)A+=E.segments[F];A+=E.segments[w]*h;d.x=A/E.length*2-1;d.y=(("center"==C?0:y)+d.height/2*B*(Math.abs(n)>Math.abs(k)?1:-1))*B}}else isNaN(w)||isNaN(h)||(d.offset=new mxPoint(w+n/2+(0<n?-d.width:d.width),h));else d.x=w||0,d.y=h||0;b[c].rotation&&270==b[c].rotation&&
+(d.x-=d.height/2)}return{lblTxts:l,lblStyles:b}};mxGraphMlCodec.prototype.processPage=function(e,l){var r=(new mxCodec).encode(e.getModel());r.setAttribute("style","default-style2");r=mxUtils.getXml(r);r='<diagram name="Page '+l+'">'+Graph.compress(r);return r+"</diagram>"};mxGraphMlCodec.prototype.getDirectChildNamedElements=function(e,l){for(var r=[],f=e.firstChild;null!=f;f=f.nextSibling)null!=f&&1==f.nodeType&&l==f.nodeName&&r.push(f);return r};
+mxGraphMlCodec.prototype.getDirectFirstChildNamedElements=function(e,l){for(var r=e.firstChild;null!=r;r=r.nextSibling)if(null!=r&&1==r.nodeType&&l==r.nodeName)return r;return null};mxGraphMlCodec.prototype.getDirectChildElements=function(e){var l=[];for(e=e.firstChild;null!=e;e=e.nextSibling)null!=e&&1==e.nodeType&&l.push(e);return l};mxGraphMlCodec.prototype.getDirectFirstChildElement=function(e){for(e=e.firstChild;null!=e;e=e.nextSibling)if(null!=e&&1==e.nodeType)return e;return null};
+var mxGraphMlConverters={"orgchartconverters.linebreakconverter":function(e,l){if("string"===typeof e){for(var r=e;20<r.length&&-1<r.indexOf(" ");)r=r.substring(0,r.lastIndexOf(" "));return"true"===l?r:e.substring(r.length)}return""},"orgchartconverters.borderconverter":function(e,l){return"boolean"===typeof e?e?"#FFBB33":"rgba(0,0,0,0)":"#FFF"},"orgchartconverters.addhashconverter":function(e,l){return"string"===typeof e?"string"===typeof l?"#"+e+l:"#"+e:e},"orgchartconverters.intermediateconverter":function(e,
+l){return"string"===typeof e&&17<e.length?e.replace(/^(.)(\S*)(.*)/,"$1.$3"):e},"orgchartconverters.overviewconverter":function(e,l){return"string"===typeof e&&0<e.length?e.replace(/^(.)(\S*)(.*)/,"$1.$3"):""}},mxGraphMlArrowsMap={SIMPLE:"open",TRIANGLE:"block",DIAMOND:"diamond",CIRCLE:"oval",CROSS:"cross",SHORT:"classicThin",DEFAULT:"classic",NONE:"none",none:"none",white_delta_bar:"block",delta:"block",standard:"classic",diamond:"diamond",white_diamond:"diamond",white_delta:"block",plain:"open",
skewed_dash:"dash",concave:"openThin",transparent_circle:"oval",crows_foot_many:"ERmany",crows_foot_one:"ERone",crows_foot_one_optional:"ERzeroToOne",crows_foot_one_mandatory:"ERmandOne",crows_foot_many_optional:"ERzeroToMany",crows_foot_many_mandatory:"ERoneToMany",white_circle:"oval",t_shape:"ERone","short":"classicThin",convex:"",cross:"cross"},mxGraphMlShapesMap={star5:"mxgraph.basic.star;flipV=1",star6:"mxgraph.basic.6_point_star",star8:"mxgraph.basic.8_point_star",sheared_rectangle:"parallelogram",
sheared_rectangle2:"parallelogram;flipH=1",hexagon:"hexagon",octagon:"mxgraph.basic.octagon",ellipse:"ellipse",round_rectangle:"rect;rounded=1;arcsize=30",diamond:"rhombus",fat_arrow:"step;perimeter=stepPerimeter",fat_arrow2:"step;perimeter=stepPerimeter;flipH=1",trapez:"trapezoid;perimeter=trapezoidPerimeter;flipV=1",trapez2:"trapezoid;perimeter=trapezoidPerimeter",triangle:"triangle",triangle2:"triangle",rectangle:"rect",rectangle3d:"",roundrectangle:"rect;rounded=1;arcsize=30",fatarrow:"step;perimeter=stepPerimeter",
fatarrow2:"step;perimeter=stepPerimeter;flipH=1",parallelogram:"parallelogram",parallelogram2:"parallelogram;flipH=1",trapezoid2:"trapezoid;perimeter=trapezoidPerimeter;flipV=1",trapezoid:"trapezoid;perimeter=trapezoidPerimeter",bevelnode:"rect;glass=1;",bevelnodewithshadow:"rect;glass=1;shadow=1",bevelnode2:"rect;glass=1;rounded=1;arcsize=30",bevelnode3:"rect;glass=1;rounded=1;arcsize=30;shadow=1",shinyplatenode:"rect;glass=1",shinyplatenodewithshadow:"rect;glass=1;shadow=1",shinyplatenode2:"rect;glass=1;rounded=1;arcsize=30",
@@ -1678,7 +1678,7 @@ artifact_type_request_message:"message",connection_type_sequence_flow:"",connect
HYPEREDGE:"hyperedge",PORT:"port",ENDPOINT:"endpoint",KEY:"key",DATA:"data",ALL:"all",EDGE_SOURCE:"source",EDGE_SOURCE_PORT:"sourceport",EDGE_TARGET:"target",EDGE_TARGET_PORT:"targetport",EDGE_DIRECTED:"directed",EDGE_UNDIRECTED:"undirected",EDGE_DEFAULT:"edgedefault",PORT_NAME:"name",HEIGHT:"Height",WIDTH:"Width",X:"X",Y:"Y",HEIGHT_L:"height",WIDTH_L:"width",X_L:"x",Y_L:"y",JGRAPH:"jGraph:",GEOMETRY:"y:Geometry",FILL:"Fill",SHAPENODE:"y:ShapeNode",SHAPEEDGE:"ShapeEdge",JGRAPH_URL:"http://www.jgraph.com/",
KEY_NODE_ID:"d0",KEY_NODE_NAME:"nodeData",KEY_EDGE_ID:"d1",KEY_EDGE_NAME:"edgeData",STYLE:"Style",SHAPE:"Shape",TYPE:"type",LABEL:"label",TEXT:"text",PROPERTIES:"properties",SOURCETARGET:"SourceTarget",RECT:"y:RectD",NODE_LABELS:"NodeLabels",NODE_LABEL:"y:NodeLabel",NODE_GEOMETRY:"NodeGeometry",USER_TAGS:"UserTags",NODE_STYLE:"NodeStyle",NODE_GRAPHICS:"nodegraphics",NODE_VIEW_STATE:"NodeViewState",EDGE_LABELS:"EdgeLabels",EDGE_GEOMETRY:"EdgeGeometry",EDGE_STYLE:"EdgeStyle",EDGE_VIEW_STATE:"EdgeViewState",
PORT_LOCATION_PARAMETER:"PortLocationParameter",PORT_STYLE:"PortStyle",PORT_VIEW_STATE:"PortViewState",SHARED_DATA:"SharedData",Y_SHARED_DATA:"y:SharedData",X_KEY:"x:Key",GRAPHML_REFERENCE:"y:GraphMLReference",RESOURCE_KEY:"ResourceKey",Y_RESOURCES:"y:Resources",Y_RESOURCE:"y:Resource",REFID:"refid",X_LIST:"x:List",X_STATIC:"x:Static",Y_BEND:"y:Bend",LOCATION:"Location",Y_LABEL:"y:Label",LAYOUTPARAMETER:"LayoutParameter",YJS_DEFAULTLABELSTYLE:"yjs:DefaultLabelStyle",MEMBER:"Member"};
-EditorUi.prototype.doImportGraphML=function(e,k,r){(new mxGraphMlCodec).decode(e,k,r)};/*!
+EditorUi.prototype.doImportGraphML=function(e,l,r){(new mxGraphMlCodec).decode(e,l,r)};/*!
JSZip v3.1.3 - A Javascript class for generating and reading zip files
<http://stuartk.com/jszip>
diff --git a/src/main/webapp/js/grapheditor/Actions.js b/src/main/webapp/js/grapheditor/Actions.js
index 8670579a..c8b9feaf 100644
--- a/src/main/webapp/js/grapheditor/Actions.js
+++ b/src/main/webapp/js/grapheditor/Actions.js
@@ -1452,10 +1452,10 @@ Actions.prototype.init = function()
rmWaypointAction.handler.removePoint(rmWaypointAction.handler.state, rmWaypointAction.index);
}
});
- this.addAction('clearWaypoints', function()
+ this.addAction('clearWaypoints', function(evt)
{
var cells = graph.getSelectionCells();
-
+
if (cells != null)
{
cells = graph.addAllEdges(cells);
@@ -1471,7 +1471,15 @@ Actions.prototype.init = function()
{
var geo = graph.getCellGeometry(cell);
- if (geo != null)
+ // Resets fixed connection point
+ if (mxEvent.isShiftDown(evt))
+ {
+ graph.setCellStyles(mxConstants.STYLE_EXIT_X, null, [cell]);
+ graph.setCellStyles(mxConstants.STYLE_EXIT_Y, null, [cell]);
+ graph.setCellStyles(mxConstants.STYLE_ENTRY_X, null, [cell]);
+ graph.setCellStyles(mxConstants.STYLE_ENTRY_Y, null, [cell]);
+ }
+ else if (geo != null)
{
geo = geo.clone();
geo.points = null;
diff --git a/src/main/webapp/js/grapheditor/Dialogs.js b/src/main/webapp/js/grapheditor/Dialogs.js
index ba77d7df..971380e3 100644
--- a/src/main/webapp/js/grapheditor/Dialogs.js
+++ b/src/main/webapp/js/grapheditor/Dialogs.js
@@ -1446,7 +1446,34 @@ var EditDataDialog = function(ui, cell)
text.style.textAlign = 'center';
mxUtils.write(text, id);
- form.addField(mxResources.get('id') + ':', text);
+ var idInput = form.addField(mxResources.get('id') + ':', text);
+
+ mxEvent.addListener(text, 'dblclick', function(evt)
+ {
+ if (mxEvent.isControlDown(evt) || mxEvent.isMetaDown(evt))
+ {
+ var dlg = new FilenameDialog(ui, id, mxResources.get('apply'), mxUtils.bind(this, function(value)
+ {
+ if (value != null && value.length > 0 && value != id)
+ {
+ if (graph.getModel().getCell(value) == null)
+ {
+ graph.getModel().cellRemoved(cell);
+ cell.setId(value);
+ id = value;
+ idInput.innerHTML = mxUtils.htmlEntities(value);
+ graph.getModel().cellAdded(cell);
+ }
+ else
+ {
+ ui.handleError({message: mxResources.get('alreadyExst', [value])});
+ }
+ }
+ }), mxResources.get('id'));
+ ui.showDialog(dlg.container, 300, 80, true, true);
+ dlg.init();
+ }
+ });
}
for (var i = 0; i < temp.length; i++)
diff --git a/src/main/webapp/js/grapheditor/EditorUi.js b/src/main/webapp/js/grapheditor/EditorUi.js
index e4f95cfa..eda1ed03 100644
--- a/src/main/webapp/js/grapheditor/EditorUi.js
+++ b/src/main/webapp/js/grapheditor/EditorUi.js
@@ -185,13 +185,25 @@ EditorUi = function(editor, container, lightbox)
}
// Implements a global current style for edges and vertices that is applied to new cells
- var insertHandler = function(cells, asText, model, vertexStyle, edgeStyle)
+ var insertHandler = function(cells, asText, model, vertexStyle, edgeStyle, applyAll, recurse)
{
vertexStyle = (vertexStyle != null) ? vertexStyle : graph.currentVertexStyle;
edgeStyle = (edgeStyle != null) ? edgeStyle : graph.currentEdgeStyle;
model = (model != null) ? model : graph.getModel();
+ if (recurse)
+ {
+ var temp = [];
+
+ for (var i = 0; i < cells.length; i++)
+ {
+ temp = temp.concat(model.getDescendants(cells[i]));
+ }
+
+ cells = temp;
+ }
+
model.beginUpdate();
try
{
@@ -263,7 +275,7 @@ EditorUi = function(editor, container, lightbox)
if (styleValue != null && (key != 'shape' || edge))
{
// Special case: Connect styles are not applied here but in the connection handler
- if (!edge || mxUtils.indexOf(connectStyles, key) < 0)
+ if (!edge || applyAll || mxUtils.indexOf(connectStyles, key) < 0)
{
newStyle = mxUtils.setStyle(newStyle, key, styleValue);
}
diff --git a/src/main/webapp/js/grapheditor/Format.js b/src/main/webapp/js/grapheditor/Format.js
index 400e842a..4df932fc 100644
--- a/src/main/webapp/js/grapheditor/Format.js
+++ b/src/main/webapp/js/grapheditor/Format.js
@@ -1863,7 +1863,7 @@ ArrangePanel.prototype.addGroupOps = function(div)
btn = mxUtils.button(mxResources.get('clearWaypoints'), mxUtils.bind(this, function(evt)
{
- this.editorUi.actions.get('clearWaypoints').funct();
+ this.editorUi.actions.get('clearWaypoints').funct(evt);
}));
btn.setAttribute('title', mxResources.get('clearWaypoints') + ' (' + this.editorUi.actions.get('clearWaypoints').shortcut + ')');
@@ -3833,7 +3833,9 @@ TextFormatPanel.prototype.addFont = function(container)
function setSelected(elt, selected)
{
- elt.style.backgroundImage = (selected) ? 'linear-gradient(#c5ecff 0px,#87d4fb 100%)' : '';
+ elt.style.backgroundImage = (selected) ? (Editor.isDarkMode() ?
+ 'linear-gradient(rgb(0 161 241) 0px, rgb(0, 97, 146) 100%)':
+ 'linear-gradient(#c5ecff 0px,#87d4fb 100%)') : '';
};
var listener = mxUtils.bind(this, function(sender, evt, force)
diff --git a/src/main/webapp/js/grapheditor/Sidebar.js b/src/main/webapp/js/grapheditor/Sidebar.js
index fafbf53f..0f800b9a 100644
--- a/src/main/webapp/js/grapheditor/Sidebar.js
+++ b/src/main/webapp/js/grapheditor/Sidebar.js
@@ -1039,6 +1039,11 @@ Sidebar.prototype.addGeneralPalette = function(expand)
{
var lineTags = 'line lines connector connectors connection connections arrow arrows ';
this.setCurrentSearchEntryLibrary('general', 'general');
+ var sb = this;
+
+ // Reusable cells
+ var field = new mxCell('List Item', new mxGeometry(0, 0, 60, 26), 'text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
+ field.vertex = true;
var fns = [
this.createVertexTemplateEntry('rounded=0;whiteSpace=wrap;html=1;', 120, 60, '', 'Rectangle', null, null, 'rect rectangle box'),
@@ -1072,7 +1077,26 @@ Sidebar.prototype.addGeneralPalette = function(expand)
this.createVertexTemplateEntry('shape=xor;whiteSpace=wrap;html=1;', 60, 80, '', 'Or', null, null, 'logic or'),
this.createVertexTemplateEntry('shape=or;whiteSpace=wrap;html=1;', 60, 80, '', 'And', null, null, 'logic and'),
this.createVertexTemplateEntry('shape=dataStorage;whiteSpace=wrap;html=1;fixedSize=1;', 100, 80, '', 'Data Storage'),
- this.addEntry('curve', mxUtils.bind(this, function()
+ this.createVertexTemplateEntry('swimlane;startSize=0;', 200, 200, '', 'Container', null, null, 'container swimlane lane pool group'),
+ this.createVertexTemplateEntry('swimlane;', 200, 200, 'Vertical Container', 'Container', null, null, 'container swimlane lane pool group'),
+ this.createVertexTemplateEntry('swimlane;horizontal=0;', 200, 200, 'Horizontal Container', 'Horizontal Container', null, null, 'container swimlane lane pool group'),
+ this.addEntry('list group erd table', function()
+ {
+ var cell = new mxCell('List', new mxGeometry(0, 0, 140, 110),
+ 'swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;' +
+ 'resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;');
+ cell.vertex = true;
+ cell.insert(sb.cloneCell(field, 'Item 1'));
+ cell.insert(sb.cloneCell(field, 'Item 2'));
+ cell.insert(sb.cloneCell(field, 'Item 3'));
+
+ return sb.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'List');
+ }),
+ this.addEntry('list item entry value group erd table', function()
+ {
+ return sb.createVertexTemplateFromCells([sb.cloneCell(field, 'List Item')], field.geometry.width, field.geometry.height, 'List Item');
+ }),
+ this.addEntry('curve', mxUtils.bind(this, function()
{
var cell = new mxCell('', new mxGeometry(0, 0, 50, 50), 'curved=1;endArrow=classic;html=1;');
cell.geometry.setTerminalPoint(new mxPoint(0, 50), true);
@@ -1131,7 +1155,7 @@ Sidebar.prototype.addGeneralPalette = function(expand)
})),
this.addEntry(lineTags + 'edge title multiplicity', mxUtils.bind(this, function()
{
- var edge = new mxCell('Label', new mxGeometry(0, 0, 0, 0), 'endArrow=classic;html=1;');
+ var edge = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=classic;html=1;');
edge.geometry.setTerminalPoint(new mxPoint(0, 0), true);
edge.geometry.setTerminalPoint(new mxPoint(160, 0), false);
edge.geometry.relative = true;
@@ -1922,13 +1946,7 @@ Sidebar.prototype.createThumb = function(cells, width, height, parent, title, sh
var fo = mxClient.NO_FO;
mxClient.NO_FO = Editor.prototype.originalNoForeignObject;
this.graph.view.scaleAndTranslate(1, 0, 0);
-
- // Applies default styles for thumbs
- var temp = this.graph.cloneCells(cells);
- this.editorUi.insertHandler(temp, null, this.graph.model,
- Graph.prototype.defaultVertexStyle,
- Graph.prototype.defaultEdgeStyle);
- this.graph.addCells(temp);
+ this.graph.addCells(cells);
var bounds = this.graph.getGraphBounds();
var s = Math.floor(Math.min((width - 2 * this.thumbBorder) / bounds.width,
@@ -2032,6 +2050,13 @@ Sidebar.prototype.createItem = function(cells, title, showLabel, showTitle, widt
{
mxEvent.consume(evt);
});
+
+ // Applies default styles
+ cells = this.graph.cloneCells(cells);
+ this.editorUi.insertHandler(cells, null, this.graph.model,
+ Graph.prototype.defaultVertexStyle,
+ Graph.prototype.defaultEdgeStyle,
+ true, true);
this.createThumb(cells, this.thumbWidth, this.thumbHeight, elt, title, showLabel, showTitle, width, height);
var bounds = new mxRectangle(0, 0, width, height);
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index d1c337d8..3d563678 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -193,9 +193,10 @@ var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456
"");l<a.length;)d=this._keyStr.indexOf(a.charAt(l++)),e=this._keyStr.indexOf(a.charAt(l++)),g=this._keyStr.indexOf(a.charAt(l++)),k=this._keyStr.indexOf(a.charAt(l++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|k,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=k&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):(127<d&&2048>d?b+=
String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){var b="",c=0,d;for(c1=c2=0;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.mxLoadSettings=window.mxLoadSettings||"1"!=urlParams.configure;window.isSvgBrowser=!0;window.DRAWIO_BASE_URL=window.DRAWIO_BASE_URL||(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)?window.location.protocol+"//"+window.location.hostname:"https://app.diagrams.net");window.DRAWIO_LIGHTBOX_URL=window.DRAWIO_LIGHTBOX_URL||"https://viewer.diagrams.net";
window.EXPORT_URL=window.EXPORT_URL||"https://convert.diagrams.net/node/export";window.PLANT_URL=window.PLANT_URL||"https://plant-aws.diagrams.net";window.DRAW_MATH_URL=window.DRAW_MATH_URL||window.DRAWIO_BASE_URL+"/math";window.VSD_CONVERT_URL=window.VSD_CONVERT_URL||"https://convert.diagrams.net/VsdConverter/api/converter";window.EMF_CONVERT_URL=window.EMF_CONVERT_URL||"https://convert.diagrams.net/emf2png/convertEMF";window.REALTIME_URL=window.REALTIME_URL||"cache";
-window.DRAWIO_GITLAB_URL=window.DRAWIO_GITLAB_URL||"https://gitlab.com";window.DRAWIO_GITLAB_ID=window.DRAWIO_GITLAB_ID||"c9b9d3fcdce2dec7abe3ab21ad8123d89ac272abb7d0883f08923043e80f3e36";window.DRAWIO_GITHUB_URL=window.DRAWIO_GITHUB_URL||"https://github.com";window.DRAWIO_GITHUB_API_URL=window.DRAWIO_GITHUB_API_URL||"https://api.github.com";window.DRAWIO_GITHUB_ID=window.DRAWIO_GITHUB_ID||"4f88e2ec436d76c2ee6e";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"import";
-window.PROXY_URL=window.PROXY_URL||"proxy";window.DRAWIO_VIEWER_URL=window.DRAWIO_VIEWER_URL||null;window.NOTIFICATIONS_URL=window.NOTIFICATIONS_URL||"https://www.draw.io/notifications";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||((null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev)&&"file:"!=window.location.protocol?"iconSearch":window.DRAWIO_BASE_URL+"/iconSearch");
-window.TEMPLATE_PATH=window.TEMPLATE_PATH||"templates";window.NEW_DIAGRAM_CATS_PATH=window.NEW_DIAGRAM_CATS_PATH||"newDiagramCats";window.PLUGINS_BASE_PATH=window.PLUGINS_BASE_PATH||"";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_CONFIG=window.DRAWIO_CONFIG||null;window.mxLoadResources=window.mxLoadResources||!1;
+window.DRAWIO_GITLAB_URL=window.DRAWIO_GITLAB_URL||"https://gitlab.com";window.DRAWIO_GITLAB_ID=window.DRAWIO_GITLAB_ID||"c9b9d3fcdce2dec7abe3ab21ad8123d89ac272abb7d0883f08923043e80f3e36";window.DRAWIO_GITHUB_URL=window.DRAWIO_GITHUB_URL||"https://github.com";window.DRAWIO_GITHUB_API_URL=window.DRAWIO_GITHUB_API_URL||"https://api.github.com";window.DRAWIO_GITHUB_ID=window.DRAWIO_GITHUB_ID||"4f88e2ec436d76c2ee6e";window.DRAWIO_DROPBOX_ID=window.DRAWIO_DROPBOX_ID||"libwls2fa9szdji";
+window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"import";window.PROXY_URL=window.PROXY_URL||"proxy";window.DRAWIO_VIEWER_URL=window.DRAWIO_VIEWER_URL||null;window.NOTIFICATIONS_URL=window.NOTIFICATIONS_URL||"https://www.draw.io/notifications";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";
+window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||((null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev)&&"file:"!=window.location.protocol?"iconSearch":window.DRAWIO_BASE_URL+"/iconSearch");window.TEMPLATE_PATH=window.TEMPLATE_PATH||"templates";window.NEW_DIAGRAM_CATS_PATH=window.NEW_DIAGRAM_CATS_PATH||"newDiagramCats";window.PLUGINS_BASE_PATH=window.PLUGINS_BASE_PATH||"";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";
+window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_CONFIG=window.DRAWIO_CONFIG||null;window.mxLoadResources=window.mxLoadResources||!1;
window.mxLanguage=window.mxLanguage||function(){var a=urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).language||null);if(!a&&window.mxIsElectron&&(a=require("electron").remote.app.getLocale(),null!=a)){var c=a.indexOf("-");0<=c&&(a=a.substring(0,c));a=a.toLowerCase()}}catch(d){isLocalStorage=!1}return a}();
window.mxLanguageMap=window.mxLanguageMap||{i18n:"",id:"Bahasa Indonesia",ms:"Bahasa Melayu",bs:"Bosanski",bg:"Bulgarian",ca:"Català",cs:"Čeština",da:"Dansk",de:"Deutsch",et:"Eesti",en:"English",es:"Español",eu:"Euskara",fil:"Filipino",fr:"Français",gl:"Galego",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski","pt-br":"Português (Brasil)",pt:"Português (Portugal)",ro:"Română",fi:"Suomi",sv:"Svenska",vi:"Tiếng Việt",tr:"Türkçe",el:"Ελληνικά",ru:"Русский",sr:"Српски",uk:"Українська",
he:"עברית",ar:"العربية",fa:"فارسی",th:"ไทย",ko:"한국어",ja:"日本語",zh:"简体中文","zh-tw":"繁體中文"};"undefined"===typeof window.mxBasePath&&(window.mxBasePath="mxgraph",window.mxImageBasePath="mxgraph/images");if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap)"en"!=lang&&window.mxLanguages.push(lang)}window.location.hostname==DRAWIO_LIGHTBOX_URL.substring(DRAWIO_LIGHTBOX_URL.indexOf("//")+2)&&(urlParams.lightbox="1");"1"==urlParams.lightbox&&(urlParams.chrome="0");
@@ -204,7 +205,7 @@ function setCurrentXml(a,b){null!=window.parent&&null!=window.parent.openFile&&w
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);0==b&&(urlParams.splash="0")}catch(d){}a=urlParams["export"];null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),EXPORT_URL=a);a=urlParams.gitlab;null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];
null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=window.location.host;if("test.draw.io"!=a){var c="diagrams.net",b=a.length-c.length,c=a.lastIndexOf(c,b);-1!==c&&c===b?window.DRAWIO_LOG_URL="https://log.diagrams.net":(c="draw.io",b=a.length-c.length,c=a.lastIndexOf(c,b),-1!==c&&c===b&&(window.DRAWIO_LOG_URL="https://log.draw.io"))}})();
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";"trello"==urlParams.mode&&(urlParams.tr="1");"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.8",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.9",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -2005,7 +2006,7 @@ d);this.exportColor(e)};this.fromRGB=function(a,b,c,d){0>a&&(a=0);1<a&&(a=1);0>b
function(a,b){var c=a.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);return c?(6===c[1].length?this.fromRGB(parseInt(c[1].substr(0,2),16)/255,parseInt(c[1].substr(2,2),16)/255,parseInt(c[1].substr(4,2),16)/255,b):this.fromRGB(parseInt(c[1].charAt(0)+c[1].charAt(0),16)/255,parseInt(c[1].charAt(1)+c[1].charAt(1),16)/255,parseInt(c[1].charAt(2)+c[1].charAt(2),16)/255,b),!0):!1};this.toString=function(){return(256|Math.round(255*this.rgb[0])).toString(16).substr(1)+(256|Math.round(255*this.rgb[1])).toString(16).substr(1)+
(256|Math.round(255*this.rgb[2])).toString(16).substr(1)};var r=this,t="hvs"===this.pickerMode.toLowerCase()?1:0,u=mxJSColor.fetchElement(this.valueElement),x=mxJSColor.fetchElement(this.styleElement),y=!1,B=!1,A=1,z=2,C=4,v=8;u&&(q=function(){r.fromString(u.value,A);p()},mxJSColor.addEvent(u,"keyup",q),mxJSColor.addEvent(u,"input",q),mxJSColor.addEvent(u,"blur",l),u.setAttribute("autocomplete","off"));x&&(x.jscStyle={backgroundImage:x.style.backgroundImage,backgroundColor:x.style.backgroundColor,
color:x.style.color});switch(t){case 0:mxJSColor.requireImage("hs.png");break;case 1:mxJSColor.requireImage("hv.png")}this.importColor()}};mxJSColor.install();
-Editor=function(a,b,e,d,n){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,e);this.editable=null!=n?n:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=
+Editor=function(a,b,e,d,l){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,e);this.editable=null!=l?l:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=
function(){return this.status};this.graphChangeListener=function(a,b){var d=null!=b?b.getProperty("edit"):null;null!=d&&d.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0;
(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(b){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS;
Editor.moveImage=mxClient.IS_SVG?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI4cHgiIGhlaWdodD0iMjhweCI+PGc+PC9nPjxnPjxnPjxnPjxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIuNCwyLjQpc2NhbGUoMC44KXJvdGF0ZSg0NSwxMiwxMikiIHN0cm9rZT0iIzI5YjZmMiIgZmlsbD0iIzI5YjZmMiIgZD0iTTE1LDNsMi4zLDIuM2wtMi44OSwyLjg3bDEuNDIsMS40MkwxOC43LDYuN0wyMSw5VjNIMTV6IE0zLDlsMi4zLTIuM2wyLjg3LDIuODlsMS40Mi0xLjQyTDYuNyw1LjNMOSwzSDNWOXogTTksMjEgbC0yLjMtMi4zbDIuODktMi44N2wtMS40Mi0xLjQyTDUuMywxNy4zTDMsMTV2Nkg5eiBNMjEsMTVsLTIuMywyLjNsLTIuODctMi44OWwtMS40MiwxLjQybDIuODksMi44N0wxNSwyMWg2VjE1eiIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=":IMAGE_PATH+
@@ -2033,7 +2034,7 @@ Editor.roughFillStyles=[{val:"auto",dispName:"Auto"},{val:"hachure",dispName:"Ha
Editor.enableNativeCipboard=window==window.top&&!mxClient.IS_FF&&null!=navigator.clipboard;Editor.darkMode=!1;Editor.isDarkMode=function(a){return Editor.darkMode||"dark"==uiTheme};Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;mxUtils.extend(Editor,mxEventSource);Editor.prototype.originalNoForeignObject=mxClient.NO_FO;
Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0;Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;
Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.defaultGraphOverflow="hidden";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(a){this.autosave=a;this.fireEvent(new mxEventObject("autosaveChanged"))};Editor.prototype.getEditBlankUrl=function(a){return this.editBlankUrl+a};
-Editor.prototype.editAsNew=function(a,b){var e=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);if("undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)){var d=null,n=mxUtils.bind(this,function(b){"ready"==b.data&&b.source==d&&(mxEvent.removeListener(window,"message",n),d.postMessage(a,"*"))});mxEvent.addListener(window,"message",n);d=this.graph.openLink(this.getEditBlankUrl(e+(0<e.length?"&":"?")+
+Editor.prototype.editAsNew=function(a,b){var e=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);if("undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)){var d=null,l=mxUtils.bind(this,function(b){"ready"==b.data&&b.source==d&&(mxEvent.removeListener(window,"message",l),d.postMessage(a,"*"))});mxEvent.addListener(window,"message",l);d=this.graph.openLink(this.getEditBlankUrl(e+(0<e.length?"&":"?")+
"client=1"),null,!0)}else this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a))};Editor.prototype.createGraph=function(a,b){var e=new Graph(null,b,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e};
Editor.prototype.resetGraph=function(){this.graph.gridEnabled=this.graph.defaultGridEnabled&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.graphHandler.guidesEnabled=!0;this.graph.setTooltips(!0);this.graph.setConnectable(!0);this.graph.foldingEnabled=!0;this.graph.scrollbars=this.graph.defaultScrollbars;this.graph.pageVisible=this.graph.defaultPageVisible;this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;this.graph.background=
null;this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.pageFormat=mxGraph.prototype.pageFormat;this.graph.currentScale=1;this.graph.currentTranslate.x=0;this.graph.currentTranslate.y=0;this.updateGraphComponents();this.graph.view.setScale(1)};
@@ -2046,14 +2047,14 @@ Editor.prototype.getGraphXml=function(a){a=(null!=a?a:1)?(new mxCodec(mxUtils.cr
this.graph.gridSize);a.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0");a.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0");a.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0");a.setAttribute("arrows",this.graph.connectionArrowsEnabled?"1":"0");a.setAttribute("fold",this.graph.foldingEnabled?"1":"0");a.setAttribute("page",this.graph.pageVisible?"1":"0");a.setAttribute("pageScale",this.graph.pageScale);a.setAttribute("pageWidth",this.graph.pageFormat.width);
a.setAttribute("pageHeight",this.graph.pageFormat.height);null!=this.graph.background&&a.setAttribute("background",this.graph.background);return a};Editor.prototype.updateGraphComponents=function(){var a=this.graph;null!=a.container&&(a.view.validateBackground(),a.container.style.overflow=a.scrollbars?"auto":this.defaultGraphOverflow,this.fireEvent(new mxEventObject("updateGraphComponents")))};Editor.prototype.setModified=function(a){this.modified=a};
Editor.prototype.setFilename=function(a){this.filename=a};
-Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,e){var d=a.getSelectionCellsForChanges(e.getProperty("edit").changes,function(a){return!(a instanceof mxChildChange)});if(0<d.length){a.getModel();for(var n=[],q=0;q<
-d.length;q++)null!=a.view.getState(d[q])&&n.push(d[q]);a.setSelectionCells(n)}};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};
+Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,e){var d=a.getSelectionCellsForChanges(e.getProperty("edit").changes,function(a){return!(a instanceof mxChildChange)});if(0<d.length){a.getModel();for(var l=[],q=0;q<
+d.length;q++)null!=a.view.getState(d[q])&&l.push(d[q]);a.setSelectionCells(l)}};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,b,e,d,n,l,t,q,c,f,g){var m=e,k=d,p=mxUtils.getDocumentSize();null!=window.innerHeight&&(p.height=window.innerHeight);var u=p.height,A=Math.max(1,Math.round((p.width-e-64)/2)),F=Math.max(1,Math.round((u-d-a.footerHeight)/3));b.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-64):e;d=Math.min(d,u-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=
-Dialog.backdropColor,this.bg.style.height=u+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));p=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=p.x+"px";this.bg.style.top=p.y+"px";A+=p.x;F+=p.y;n&&document.body.appendChild(this.bg);var z=a.createDiv(c?"geTransDialog":"geDialog");n=this.getPosition(A,F,e,d);A=n.x;F=n.y;z.style.width=e+"px";z.style.height=d+"px";z.style.left=A+"px";z.style.top=F+"px";z.style.zIndex=this.zIndex;
-z.appendChild(b);document.body.appendChild(z);!q&&b.clientHeight>z.clientHeight-64&&(b.style.overflowY="auto");if(l&&(l=document.createElement("img"),l.setAttribute("src",Dialog.prototype.closeImage),l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=F+14+"px",l.style.left=A+e+38-0+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,!g)){var y=!1;mxEvent.addGestureListeners(this.bg,
-mxUtils.bind(this,function(a){y=!0}),null,mxUtils.bind(this,function(c){y&&(a.hideDialog(!0),y=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=f){var c=f();null!=c&&(m=e=c.w,k=d=c.h)}c=mxUtils.getDocumentSize();u=c.height;this.bg.style.height=u+"px";A=Math.max(1,Math.round((c.width-e-64)/2));F=Math.max(1,Math.round((u-d-a.footerHeight)/3));e=null!=document.body?Math.min(m,document.body.scrollWidth-64):m;d=Math.min(k,u-64);c=this.getPosition(A,F,e,d);A=c.x;F=c.y;z.style.left=A+"px";
-z.style.top=F+"px";z.style.width=e+"px";z.style.height=d+"px";!q&&b.clientHeight>z.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=F+14+"px",this.dialogImg.style.left=A+e+38-0+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=z;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
+function Dialog(a,b,e,d,l,m,u,q,c,f,g){var k=e,p=d,t=mxUtils.getDocumentSize();null!=window.innerHeight&&(t.height=window.innerHeight);var v=t.height,A=Math.max(1,Math.round((t.width-e-64)/2)),F=Math.max(1,Math.round((v-d-a.footerHeight)/3));b.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-64):e;d=Math.min(d,v-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=
+Dialog.backdropColor,this.bg.style.height=v+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));t=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=t.x+"px";this.bg.style.top=t.y+"px";A+=t.x;F+=t.y;l&&document.body.appendChild(this.bg);var y=a.createDiv(c?"geTransDialog":"geDialog");l=this.getPosition(A,F,e,d);A=l.x;F=l.y;y.style.width=e+"px";y.style.height=d+"px";y.style.left=A+"px";y.style.top=F+"px";y.style.zIndex=this.zIndex;
+y.appendChild(b);document.body.appendChild(y);!q&&b.clientHeight>y.clientHeight-64&&(b.style.overflowY="auto");if(m&&(m=document.createElement("img"),m.setAttribute("src",Dialog.prototype.closeImage),m.setAttribute("title",mxResources.get("close")),m.className="geDialogClose",m.style.top=F+14+"px",m.style.left=A+e+38-0+"px",m.style.zIndex=this.zIndex,mxEvent.addListener(m,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(m),this.dialogImg=m,!g)){var z=!1;mxEvent.addGestureListeners(this.bg,
+mxUtils.bind(this,function(a){z=!0}),null,mxUtils.bind(this,function(c){z&&(a.hideDialog(!0),z=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=f){var c=f();null!=c&&(k=e=c.w,p=d=c.h)}c=mxUtils.getDocumentSize();v=c.height;this.bg.style.height=v+"px";A=Math.max(1,Math.round((c.width-e-64)/2));F=Math.max(1,Math.round((v-d-a.footerHeight)/3));e=null!=document.body?Math.min(k,document.body.scrollWidth-64):k;d=Math.min(p,v-64);c=this.getPosition(A,F,e,d);A=c.x;F=c.y;y.style.left=A+"px";
+y.style.top=F+"px";y.style.width=e+"px";y.style.height=d+"px";!q&&b.clientHeight>y.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=F+14+"px",this.dialogImg.style.left=A+e+38-0+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=u;this.container=y;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":
IMAGE_PATH+"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
@@ -2062,47 +2063,47 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
"/locked.png";
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,b){return new mxPoint(a,b)};Dialog.prototype.close=function(a,b){if(null!=this.onDialogClose){if(0==this.onDialogClose(a,b))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
-var ErrorDialog=function(a,b,e,d,n,l,t,q,c,f,g){c=null!=c?c:!0;var m=document.createElement("div");m.style.textAlign="center";if(null!=b){var k=document.createElement("div");k.style.padding="0px";k.style.margin="0px";k.style.fontSize="18px";k.style.paddingBottom="16px";k.style.marginBottom="10px";k.style.borderBottom="1px solid #c0c0c0";k.style.color="gray";k.style.whiteSpace="nowrap";k.style.textOverflow="ellipsis";k.style.overflow="hidden";mxUtils.write(k,b);k.setAttribute("title",b);m.appendChild(k)}b=
-document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=e;m.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=l&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();l()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=f&&(f=mxUtils.button(f,function(){null!=g&&g()}),f.className="geBtn",e.appendChild(f));var p=mxUtils.button(d,function(){c&&a.hideDialog();null!=n&&n()});
-p.className="geBtn";e.appendChild(p);null!=t&&(d=mxUtils.button(t,function(){c&&a.hideDialog();null!=q&&q()}),d.className="geBtn gePrimaryBtn",e.appendChild(d));this.init=function(){p.focus()};m.appendChild(e);this.container=m},PrintDialog=function(a,b){this.create(a,b)};
-PrintDialog.prototype.create=function(a){function b(a){var c=q.checked||f.checked,b=parseInt(m.value)/100;isNaN(b)&&(b=1,m.value="100%");var b=.75*b,d=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,k=1/e.pageScale;if(c){var p=q.checked?1:parseInt(g.value);isNaN(p)||(k=mxUtils.getScaleForPageCount(p,e,d))}e.getGraphBounds();var l=p=0,d=mxRectangle.fromRectangle(d);d.width=Math.ceil(d.width*b);d.height=Math.ceil(d.height*b);k*=b;!c&&e.pageVisible?(b=e.getPageLayout(),p-=b.x*d.width,l-=b.y*d.height):
-c=!0;c=PrintDialog.createPrintPreview(e,k,d,0,p,l,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,d,n,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var t=document.createElement("tbody");d=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(q);var c=document.createElement("span");mxUtils.write(c," "+mxResources.get("fitPage"));
-n.appendChild(c);mxEvent.addListener(c,"click",function(a){q.checked=!q.checked;f.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){f.checked=!q.checked});d.appendChild(n);t.appendChild(d);d=d.cloneNode(!1);var f=document.createElement("input");f.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(f);c=document.createElement("span");mxUtils.write(c," "+mxResources.get("posterPrint")+":");n.appendChild(c);mxEvent.addListener(c,
-"click",function(a){f.checked=!f.checked;q.checked=!f.checked;mxEvent.consume(a)});d.appendChild(n);var g=document.createElement("input");g.setAttribute("value","1");g.setAttribute("type","number");g.setAttribute("min","1");g.setAttribute("size","4");g.setAttribute("disabled","disabled");g.style.width="50px";n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(g);mxUtils.write(n," "+mxResources.get("pages")+" (max)");d.appendChild(n);t.appendChild(d);mxEvent.addListener(f,"change",
-function(){f.checked?g.removeAttribute("disabled"):g.setAttribute("disabled","disabled");q.checked=!f.checked});d=d.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");d.appendChild(n);n=document.createElement("td");var m=document.createElement("input");m.setAttribute("value","100 %");m.setAttribute("size","5");m.style.width="50px";n.appendChild(m);d.appendChild(n);t.appendChild(d);d=document.createElement("tr");n=document.createElement("td");n.colSpan=2;
-n.style.paddingTop="20px";n.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&n.appendChild(c);if(PrintDialog.previewEnabled){var k=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});k.className="geBtn";n.appendChild(k)}k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});k.className="geBtn gePrimaryBtn";n.appendChild(k);a.editor.cancelFirst||
-n.appendChild(c);d.appendChild(n);t.appendChild(d);l.appendChild(t);this.container=l};PrintDialog.printPreview=function(a){try{if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}}catch(e){}};
-PrintDialog.createPrintPreview=function(a,b,e,d,n,l,t){b=new mxPrintPreview(a,b,e,d,n,l);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=t;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return b};
+var ErrorDialog=function(a,b,e,d,l,m,u,q,c,f,g){c=null!=c?c:!0;var k=document.createElement("div");k.style.textAlign="center";if(null!=b){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,b);p.setAttribute("title",b);k.appendChild(p)}b=
+document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=e;k.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=m&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();m()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=f&&(f=mxUtils.button(f,function(){null!=g&&g()}),f.className="geBtn",e.appendChild(f));var t=mxUtils.button(d,function(){c&&a.hideDialog();null!=l&&l()});
+t.className="geBtn";e.appendChild(t);null!=u&&(d=mxUtils.button(u,function(){c&&a.hideDialog();null!=q&&q()}),d.className="geBtn gePrimaryBtn",e.appendChild(d));this.init=function(){t.focus()};k.appendChild(e);this.container=k},PrintDialog=function(a,b){this.create(a,b)};
+PrintDialog.prototype.create=function(a){function b(a){var c=q.checked||f.checked,b=parseInt(k.value)/100;isNaN(b)&&(b=1,k.value="100%");var b=.75*b,d=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,p=1/e.pageScale;if(c){var t=q.checked?1:parseInt(g.value);isNaN(t)||(p=mxUtils.getScaleForPageCount(t,e,d))}e.getGraphBounds();var m=t=0,d=mxRectangle.fromRectangle(d);d.width=Math.ceil(d.width*b);d.height=Math.ceil(d.height*b);p*=b;!c&&e.pageVisible?(b=e.getPageLayout(),t-=b.x*d.width,m-=b.y*d.height):
+c=!0;c=PrintDialog.createPrintPreview(e,p,d,0,t,m,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,d,l,m=document.createElement("table");m.style.width="100%";m.style.height="100%";var u=document.createElement("tbody");d=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");l=document.createElement("td");l.setAttribute("colspan","2");l.style.fontSize="10pt";l.appendChild(q);var c=document.createElement("span");mxUtils.write(c," "+mxResources.get("fitPage"));
+l.appendChild(c);mxEvent.addListener(c,"click",function(a){q.checked=!q.checked;f.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){f.checked=!q.checked});d.appendChild(l);u.appendChild(d);d=d.cloneNode(!1);var f=document.createElement("input");f.setAttribute("type","checkbox");l=document.createElement("td");l.style.fontSize="10pt";l.appendChild(f);c=document.createElement("span");mxUtils.write(c," "+mxResources.get("posterPrint")+":");l.appendChild(c);mxEvent.addListener(c,
+"click",function(a){f.checked=!f.checked;q.checked=!f.checked;mxEvent.consume(a)});d.appendChild(l);var g=document.createElement("input");g.setAttribute("value","1");g.setAttribute("type","number");g.setAttribute("min","1");g.setAttribute("size","4");g.setAttribute("disabled","disabled");g.style.width="50px";l=document.createElement("td");l.style.fontSize="10pt";l.appendChild(g);mxUtils.write(l," "+mxResources.get("pages")+" (max)");d.appendChild(l);u.appendChild(d);mxEvent.addListener(f,"change",
+function(){f.checked?g.removeAttribute("disabled"):g.setAttribute("disabled","disabled");q.checked=!f.checked});d=d.cloneNode(!1);l=document.createElement("td");mxUtils.write(l,mxResources.get("pageScale")+":");d.appendChild(l);l=document.createElement("td");var k=document.createElement("input");k.setAttribute("value","100 %");k.setAttribute("size","5");k.style.width="50px";l.appendChild(k);d.appendChild(l);u.appendChild(d);d=document.createElement("tr");l=document.createElement("td");l.colSpan=2;
+l.style.paddingTop="20px";l.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&l.appendChild(c);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});p.className="geBtn";l.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});p.className="geBtn gePrimaryBtn";l.appendChild(p);a.editor.cancelFirst||
+l.appendChild(c);d.appendChild(l);u.appendChild(d);m.appendChild(u);this.container=m};PrintDialog.printPreview=function(a){try{if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}}catch(e){}};
+PrintDialog.createPrintPreview=function(a,b,e,d,l,m,u){b=new mxPrintPreview(a,b,e,d,l,m);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=u;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return b};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(a){function b(){null==g||g==mxConstants.NONE?(f.style.backgroundColor="",f.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(f.style.backgroundColor=g,f.style.backgroundImage="")}function e(){null==p?(k.removeAttribute("title"),k.style.fontSize="",k.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(k.setAttribute("title",p.src),k.style.fontSize="11px",k.innerHTML=mxUtils.htmlEntities(p.src.substring(0,42))+"...")}var d=a.editor.graph,n,
-l,t=document.createElement("table");t.style.width="100%";t.style.height="100%";var q=document.createElement("tbody");n=document.createElement("tr");l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("paperSize")+":");n.appendChild(l);l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";var c=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",d.pageFormat);n.appendChild(l);q.appendChild(n);n=document.createElement("tr");
-l=document.createElement("td");mxUtils.write(l,mxResources.get("background")+":");n.appendChild(l);l=document.createElement("td");l.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var f=document.createElement("button");f.style.width="18px";f.style.height="18px";f.style.marginRight="20px";f.style.backgroundPosition="center center";f.style.backgroundRepeat="no-repeat";var g=d.background;b();mxEvent.addListener(f,"click",function(c){a.pickColor(g||"none",function(a){g=
-a;b()});mxEvent.consume(c)});l.appendChild(f);mxUtils.write(l,mxResources.get("gridSize")+":");var m=document.createElement("input");m.setAttribute("type","number");m.setAttribute("min","0");m.style.width="40px";m.style.marginLeft="6px";m.value=d.getGridSize();l.appendChild(m);mxEvent.addListener(m,"change",function(){var a=parseInt(m.value);m.value=Math.max(1,isNaN(a)?d.getGridSize():a)});n.appendChild(l);q.appendChild(n);n=document.createElement("tr");l=document.createElement("td");mxUtils.write(l,
-mxResources.get("image")+":");n.appendChild(l);l=document.createElement("td");var k=document.createElement("a");k.style.textDecoration="underline";k.style.cursor="pointer";k.style.color="#a0a0a0";var p=d.backgroundImage;mxEvent.addListener(k,"click",function(c){a.showBackgroundImageDialog(function(a,c){c||(p=a,e())},p);mxEvent.consume(c)});e();l.appendChild(k);n.appendChild(l);q.appendChild(n);n=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.paddingTop="16px";l.setAttribute("align",
-"right");var u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&l.appendChild(u);var A=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=parseInt(m.value);isNaN(b)||d.gridSize===b||d.setGridSize(b);b=new ChangePageSetup(a,g,p,c.get());b.ignoreColor=d.background==g;b.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=p?p.src:null);d.pageFormat.width==b.previousFormat.width&&d.pageFormat.height==
-b.previousFormat.height&&b.ignoreColor&&b.ignoreImage||d.model.execute(b)});A.className="geBtn gePrimaryBtn";l.appendChild(A);a.editor.cancelFirst||l.appendChild(u);n.appendChild(l);q.appendChild(n);t.appendChild(q);this.container=t};
-PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function n(a,b,d){if(d||m!=document.activeElement&&k!=document.activeElement){a=!1;for(b=0;b<u.length;b++)d=u[b],y?"custom"==d.key&&(q.value=d.key,y=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
-e.height==d.format.height?(q.value=d.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,t.removeAttribute("checked"),t.defaultChecked=!1,t.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(q.value=d.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,t.setAttribute("checked","checked"),t.defaultChecked=!0,a=t.checked=!0));a?(c.style.display="",g.style.display="none"):(m.value=e.width/100,k.value=e.height/100,l.setAttribute("checked","checked"),
-q.value="custom",c.style.display="none",g.style.display="")}}b="format-"+b;var l=document.createElement("input");l.setAttribute("name",b);l.setAttribute("type","radio");l.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",b);t.setAttribute("type","radio");t.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var c=document.createElement("div");c.style.marginLeft="4px";c.style.width="210px";
-c.style.height="24px";l.style.marginRight="6px";c.appendChild(l);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));c.appendChild(b);t.style.marginLeft="10px";t.style.marginRight="6px";c.appendChild(t);var f=document.createElement("span");f.style.width="100px";mxUtils.write(f,mxResources.get("landscape"));c.appendChild(f);var g=document.createElement("div");g.style.marginLeft="4px";g.style.width="210px";g.style.height="24px";var m=document.createElement("input");
-m.setAttribute("size","7");m.style.textAlign="right";g.appendChild(m);mxUtils.write(g," in x ");var k=document.createElement("input");k.setAttribute("size","7");k.style.textAlign="right";g.appendChild(k);mxUtils.write(g," in");c.style.display="none";g.style.display="none";for(var p={},u=PageSetupDialog.getFormats(),A=0;A<u.length;A++){var F=u[A];p[F.key]=F;var z=document.createElement("option");z.setAttribute("value",F.key);mxUtils.write(z,F.title);q.appendChild(z)}var y=!1;n();a.appendChild(q);mxUtils.br(a);
-a.appendChild(c);a.appendChild(g);var M=e,L=function(a,b){var f=p[q.value];null!=f.format?(m.value=f.format.width/100,k.value=f.format.height/100,g.style.display="none",c.style.display=""):(c.style.display="none",g.style.display="");f=parseFloat(m.value);if(isNaN(f)||0>=f)m.value=e.width/100;f=parseFloat(k.value);if(isNaN(f)||0>=f)k.value=e.height/100;f=new mxRectangle(0,0,Math.floor(100*parseFloat(m.value)),Math.floor(100*parseFloat(k.value)));"custom"!=q.value&&t.checked&&(f=new mxRectangle(0,0,
-f.height,f.width));b&&y||f.width==M.width&&f.height==M.height||(M=f,null!=d&&d(M))};mxEvent.addListener(b,"click",function(a){l.checked=!0;L(a);mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){t.checked=!0;L(a);mxEvent.consume(a)});mxEvent.addListener(m,"blur",L);mxEvent.addListener(m,"click",L);mxEvent.addListener(k,"blur",L);mxEvent.addListener(k,"click",L);mxEvent.addListener(t,"change",L);mxEvent.addListener(l,"change",L);mxEvent.addListener(q,"change",function(a){y="custom"==q.value;
-L(a,!0)});L();return{set:function(a){e=a;n(null,null,!0)},get:function(){return M},widthInput:m,heightInput:k}};
+var PageSetupDialog=function(a){function b(){null==g||g==mxConstants.NONE?(f.style.backgroundColor="",f.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(f.style.backgroundColor=g,f.style.backgroundImage="")}function e(){null==t?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(p.setAttribute("title",t.src),p.style.fontSize="11px",p.innerHTML=mxUtils.htmlEntities(t.src.substring(0,42))+"...")}var d=a.editor.graph,l,
+m,u=document.createElement("table");u.style.width="100%";u.style.height="100%";var q=document.createElement("tbody");l=document.createElement("tr");m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("paperSize")+":");l.appendChild(m);m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";var c=PageSetupDialog.addPageFormatPanel(m,"pagesetupdialog",d.pageFormat);l.appendChild(m);q.appendChild(l);l=document.createElement("tr");
+m=document.createElement("td");mxUtils.write(m,mxResources.get("background")+":");l.appendChild(m);m=document.createElement("td");m.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var f=document.createElement("button");f.style.width="18px";f.style.height="18px";f.style.marginRight="20px";f.style.backgroundPosition="center center";f.style.backgroundRepeat="no-repeat";var g=d.background;b();mxEvent.addListener(f,"click",function(c){a.pickColor(g||"none",function(a){g=
+a;b()});mxEvent.consume(c)});m.appendChild(f);mxUtils.write(m,mxResources.get("gridSize")+":");var k=document.createElement("input");k.setAttribute("type","number");k.setAttribute("min","0");k.style.width="40px";k.style.marginLeft="6px";k.value=d.getGridSize();m.appendChild(k);mxEvent.addListener(k,"change",function(){var a=parseInt(k.value);k.value=Math.max(1,isNaN(a)?d.getGridSize():a)});l.appendChild(m);q.appendChild(l);l=document.createElement("tr");m=document.createElement("td");mxUtils.write(m,
+mxResources.get("image")+":");l.appendChild(m);m=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var t=d.backgroundImage;mxEvent.addListener(p,"click",function(c){a.showBackgroundImageDialog(function(a,c){c||(t=a,e())},t);mxEvent.consume(c)});e();m.appendChild(p);l.appendChild(m);q.appendChild(l);l=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="16px";m.setAttribute("align",
+"right");var v=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});v.className="geBtn";a.editor.cancelFirst&&m.appendChild(v);var A=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=parseInt(k.value);isNaN(b)||d.gridSize===b||d.setGridSize(b);b=new ChangePageSetup(a,g,t,c.get());b.ignoreColor=d.background==g;b.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=t?t.src:null);d.pageFormat.width==b.previousFormat.width&&d.pageFormat.height==
+b.previousFormat.height&&b.ignoreColor&&b.ignoreImage||d.model.execute(b)});A.className="geBtn gePrimaryBtn";m.appendChild(A);a.editor.cancelFirst||m.appendChild(v);l.appendChild(m);q.appendChild(l);u.appendChild(q);this.container=u};
+PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function l(a,b,d){if(d||k!=document.activeElement&&p!=document.activeElement){a=!1;for(b=0;b<v.length;b++)d=v[b],z?"custom"==d.key&&(q.value=d.key,z=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
+e.height==d.format.height?(q.value=d.key,m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0,u.removeAttribute("checked"),u.defaultChecked=!1,u.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(q.value=d.key,m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1,u.setAttribute("checked","checked"),u.defaultChecked=!0,a=u.checked=!0));a?(c.style.display="",g.style.display="none"):(k.value=e.width/100,p.value=e.height/100,m.setAttribute("checked","checked"),
+q.value="custom",c.style.display="none",g.style.display="")}}b="format-"+b;var m=document.createElement("input");m.setAttribute("name",b);m.setAttribute("type","radio");m.setAttribute("value","portrait");var u=document.createElement("input");u.setAttribute("name",b);u.setAttribute("type","radio");u.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var c=document.createElement("div");c.style.marginLeft="4px";c.style.width="210px";
+c.style.height="24px";m.style.marginRight="6px";c.appendChild(m);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));c.appendChild(b);u.style.marginLeft="10px";u.style.marginRight="6px";c.appendChild(u);var f=document.createElement("span");f.style.width="100px";mxUtils.write(f,mxResources.get("landscape"));c.appendChild(f);var g=document.createElement("div");g.style.marginLeft="4px";g.style.width="210px";g.style.height="24px";var k=document.createElement("input");
+k.setAttribute("size","7");k.style.textAlign="right";g.appendChild(k);mxUtils.write(g," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";g.appendChild(p);mxUtils.write(g," in");c.style.display="none";g.style.display="none";for(var t={},v=PageSetupDialog.getFormats(),A=0;A<v.length;A++){var F=v[A];t[F.key]=F;var y=document.createElement("option");y.setAttribute("value",F.key);mxUtils.write(y,F.title);q.appendChild(y)}var z=!1;l();a.appendChild(q);mxUtils.br(a);
+a.appendChild(c);a.appendChild(g);var L=e,M=function(a,b){var f=t[q.value];null!=f.format?(k.value=f.format.width/100,p.value=f.format.height/100,g.style.display="none",c.style.display=""):(c.style.display="none",g.style.display="");f=parseFloat(k.value);if(isNaN(f)||0>=f)k.value=e.width/100;f=parseFloat(p.value);if(isNaN(f)||0>=f)p.value=e.height/100;f=new mxRectangle(0,0,Math.floor(100*parseFloat(k.value)),Math.floor(100*parseFloat(p.value)));"custom"!=q.value&&u.checked&&(f=new mxRectangle(0,0,
+f.height,f.width));b&&z||f.width==L.width&&f.height==L.height||(L=f,null!=d&&d(L))};mxEvent.addListener(b,"click",function(a){m.checked=!0;M(a);mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){u.checked=!0;M(a);mxEvent.consume(a)});mxEvent.addListener(k,"blur",M);mxEvent.addListener(k,"click",M);mxEvent.addListener(p,"blur",M);mxEvent.addListener(p,"click",M);mxEvent.addListener(u,"change",M);mxEvent.addListener(m,"change",M);mxEvent.addListener(q,"change",function(a){z="custom"==q.value;
+M(a,!0)});M();return{set:function(a){e=a;l(null,null,!0)},get:function(){return L},widthInput:k,heightInput:p}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
-var FilenameDialog=function(a,b,e,d,n,l,t,q,c,f,g,m){c=null!=c?c:!0;var k,p,u=document.createElement("table"),A=document.createElement("tbody");u.style.marginTop="8px";k=document.createElement("tr");p=document.createElement("td");p.style.whiteSpace="nowrap";p.style.fontSize="10pt";p.style.width=g?"80px":"120px";mxUtils.write(p,(n||mxResources.get("filename"))+":");k.appendChild(p);var F=document.createElement("input");F.setAttribute("value",b||"");F.style.marginLeft="4px";F.style.width=null!=m?m+
-"px":"180px";var z=mxUtils.button(e,function(){if(null==l||l(F.value))c&&a.hideDialog(),d(F.value)});z.className="geBtn gePrimaryBtn";this.init=function(){if(null!=n||null==t)if(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?F.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=u.parentNode;if(null!=a){var c=null;mxEvent.addListener(a,"dragleave",function(a){null!=c&&(c.style.backgroundColor="",c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
-"dragover",mxUtils.bind(this,function(a){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=F,c.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=c&&(c.style.backgroundColor="",c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(F.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),z.click());a.stopPropagation();a.preventDefault()}))}}};p=document.createElement("td");p.style.whiteSpace=
-"nowrap";p.appendChild(F);k.appendChild(p);if(null!=n||null==t)A.appendChild(k),null!=g&&(null!=a.editor.diagramFileTypes&&(k=FilenameDialog.createFileTypes(a,F,a.editor.diagramFileTypes),k.style.marginLeft="6px",k.style.width="74px",p.appendChild(k),F.style.width=null!=m?m-40+"px":"140px"),p.appendChild(FilenameDialog.createTypeHint(a,F,g)));null!=t&&(k=document.createElement("tr"),p=document.createElement("td"),p.colSpan=2,p.appendChild(t),k.appendChild(p),A.appendChild(k));k=document.createElement("tr");
-p=document.createElement("td");p.colSpan=2;p.style.paddingTop="20px";p.style.whiteSpace="nowrap";p.setAttribute("align","right");g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});g.className="geBtn";a.editor.cancelFirst&&p.appendChild(g);null!=q&&(m=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(q)}),m.className="geBtn",p.appendChild(m));mxEvent.addListener(F,"keypress",function(a){13==a.keyCode&&z.click()});p.appendChild(z);a.editor.cancelFirst||
-p.appendChild(g);k.appendChild(p);A.appendChild(k);u.appendChild(A);this.container=u};FilenameDialog.filenameHelpLink=null;
-FilenameDialog.createTypeHint=function(a,b,e){var d=document.createElement("img");d.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(d,70);var n=function(){d.setAttribute("src",Editor.helpImage);d.setAttribute("title",mxResources.get("help"));for(var a=0;a<e.length;a++)if(0<e[a].ext.length&&b.value.toLowerCase().substring(b.value.length-e[a].ext.length-1)=="."+e[a].ext){d.setAttribute("src",
-mxClient.imageBasePath+"/warning.png");d.setAttribute("title",mxResources.get(e[a].title));break}};mxEvent.addListener(b,"keyup",n);mxEvent.addListener(b,"change",n);mxEvent.addListener(d,"click",function(b){var e=d.getAttribute("title");d.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&a.showError(null,e,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
-mxEvent.consume(b)});n();return d};
-FilenameDialog.createFileTypes=function(a,b,e){var d=document.createElement("select");for(a=0;a<e.length;a++){var n=document.createElement("option");n.setAttribute("value",a);mxUtils.write(n,mxResources.get(e[a].description)+" (."+e[a].extension+")");d.appendChild(n)}mxEvent.addListener(d,"change",function(a){a=e[d.value].extension;var l=b.value.lastIndexOf(".");0<l?(a=e[d.value].extension,b.value=b.value.substring(0,l+1)+a):b.value=b.value+"."+a;"createEvent"in document?(a=document.createEvent("HTMLEvents"),
-a.initEvent("change",!1,!0),b.dispatchEvent(a)):b.fireEvent("onchange")});a=function(a){var l=b.value.lastIndexOf(".");a=0;if(0<l)for(var l=b.value.toLowerCase().substring(l+1),q=0;q<e.length;q++)if(l==e[q].extension){a=q;break}d.value=a};mxEvent.addListener(b,"change",a);mxEvent.addListener(b,"keyup",a);a();return d};
+var FilenameDialog=function(a,b,e,d,l,m,u,q,c,f,g,k){c=null!=c?c:!0;var p,t,v=document.createElement("table"),A=document.createElement("tbody");v.style.marginTop="8px";p=document.createElement("tr");t=document.createElement("td");t.style.whiteSpace="nowrap";t.style.fontSize="10pt";t.style.width=g?"80px":"120px";mxUtils.write(t,(l||mxResources.get("filename"))+":");p.appendChild(t);var F=document.createElement("input");F.setAttribute("value",b||"");F.style.marginLeft="4px";F.style.width=null!=k?k+
+"px":"180px";var y=mxUtils.button(e,function(){if(null==m||m(F.value))c&&a.hideDialog(),d(F.value)});y.className="geBtn gePrimaryBtn";this.init=function(){if(null!=l||null==u)if(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?F.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=v.parentNode;if(null!=a){var c=null;mxEvent.addListener(a,"dragleave",function(a){null!=c&&(c.style.backgroundColor="",c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
+"dragover",mxUtils.bind(this,function(a){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=F,c.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=c&&(c.style.backgroundColor="",c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(F.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),y.click());a.stopPropagation();a.preventDefault()}))}}};t=document.createElement("td");t.style.whiteSpace=
+"nowrap";t.appendChild(F);p.appendChild(t);if(null!=l||null==u)A.appendChild(p),null!=g&&(null!=a.editor.diagramFileTypes&&(p=FilenameDialog.createFileTypes(a,F,a.editor.diagramFileTypes),p.style.marginLeft="6px",p.style.width="74px",t.appendChild(p),F.style.width=null!=k?k-40+"px":"140px"),t.appendChild(FilenameDialog.createTypeHint(a,F,g)));null!=u&&(p=document.createElement("tr"),t=document.createElement("td"),t.colSpan=2,t.appendChild(u),p.appendChild(t),A.appendChild(p));p=document.createElement("tr");
+t=document.createElement("td");t.colSpan=2;t.style.paddingTop="20px";t.style.whiteSpace="nowrap";t.setAttribute("align","right");g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});g.className="geBtn";a.editor.cancelFirst&&t.appendChild(g);null!=q&&(k=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(q)}),k.className="geBtn",t.appendChild(k));mxEvent.addListener(F,"keypress",function(a){13==a.keyCode&&y.click()});t.appendChild(y);a.editor.cancelFirst||
+t.appendChild(g);p.appendChild(t);A.appendChild(p);v.appendChild(A);this.container=v};FilenameDialog.filenameHelpLink=null;
+FilenameDialog.createTypeHint=function(a,b,e){var d=document.createElement("img");d.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(d,70);var l=function(){d.setAttribute("src",Editor.helpImage);d.setAttribute("title",mxResources.get("help"));for(var a=0;a<e.length;a++)if(0<e[a].ext.length&&b.value.toLowerCase().substring(b.value.length-e[a].ext.length-1)=="."+e[a].ext){d.setAttribute("src",
+mxClient.imageBasePath+"/warning.png");d.setAttribute("title",mxResources.get(e[a].title));break}};mxEvent.addListener(b,"keyup",l);mxEvent.addListener(b,"change",l);mxEvent.addListener(d,"click",function(b){var e=d.getAttribute("title");d.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&a.showError(null,e,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
+mxEvent.consume(b)});l();return d};
+FilenameDialog.createFileTypes=function(a,b,e){var d=document.createElement("select");for(a=0;a<e.length;a++){var l=document.createElement("option");l.setAttribute("value",a);mxUtils.write(l,mxResources.get(e[a].description)+" (."+e[a].extension+")");d.appendChild(l)}mxEvent.addListener(d,"change",function(a){a=e[d.value].extension;var m=b.value.lastIndexOf(".");0<m?(a=e[d.value].extension,b.value=b.value.substring(0,m+1)+a):b.value=b.value+"."+a;"createEvent"in document?(a=document.createEvent("HTMLEvents"),
+a.initEvent("change",!1,!0),b.dispatchEvent(a)):b.fireEvent("onchange")});a=function(a){var m=b.value.lastIndexOf(".");a=0;if(0<m)for(var m=b.value.toLowerCase().substring(m+1),q=0;q<e.length;q++)if(m==e[q].extension){a=q;break}d.value=a};mxEvent.addListener(b,"change",a);mxEvent.addListener(b,"keyup",a);a();return d};
(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var b=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(b),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,
this.backgroundPageShape.init(a.container),c.style.position="absolute",a.container.insertBefore(this.backgroundPageShape.node,c),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(c){a.dblClick(c)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){null!=
a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=b,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null);this.validateBackgroundStyles()}};
@@ -2110,55 +2111,55 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,b=nul
")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,a.view.backgroundPageShape.node.style.backgroundImage=d,a.view.backgroundPageShape.node.style.backgroundColor=b,a.view.backgroundPageShape.node.style.borderColor=
a.defaultPageBorderColor,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=g,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],g=1;g<this.gridSteps;g++){var e=g*b;d.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+
" "+c)}return'<svg width="'+c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,d){a.apply(this,arguments);
-if(null!=this.shiftPreview1){var c=this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+b,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+d,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,g=this.view.translate,e=this.pageFormat,k=d*this.pageScale,p=this.view.getBackgroundPageBounds();
-b=p.width;c=p.height;var u=new mxRectangle(d*g.x,d*g.y,e.width*k,e.height*k),l=(a=a&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(c/u.height)-1:0,q=a?Math.ceil(b/u.width)-1:0,n=p.x+b,y=p.y+c;null==this.horizontalPageBreaks&&0<l&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<q&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?l:q,b=0;b<=c;b++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(p.x),
-Math.round(p.y+(b+1)*u.height)),new mxPoint(Math.round(n),Math.round(p.y+(b+1)*u.height))]:[new mxPoint(Math.round(p.x+(b+1)*u.width),Math.round(p.y)),new mxPoint(Math.round(p.x+(b+1)*u.width),Math.round(y))];null!=a[b]?(a[b].points=d,a[b].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[b]=d)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);
+if(null!=this.shiftPreview1){var c=this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+b,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+d,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,g=this.view.translate,e=this.pageFormat,p=d*this.pageScale,t=this.view.getBackgroundPageBounds();
+b=t.width;c=t.height;var v=new mxRectangle(d*g.x,d*g.y,e.width*p,e.height*p),m=(a=a&&Math.min(v.width,v.height)>this.minPageBreakDist)?Math.ceil(c/v.height)-1:0,q=a?Math.ceil(b/v.width)-1:0,l=t.x+b,z=t.y+c;null==this.horizontalPageBreaks&&0<m&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<q&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?m:q,b=0;b<=c;b++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(t.x),
+Math.round(t.y+(b+1)*v.height)),new mxPoint(Math.round(l),Math.round(t.y+(b+1)*v.height))]:[new mxPoint(Math.round(t.x+(b+1)*v.width),Math.round(t.y)),new mxPoint(Math.round(t.x+(b+1)*v.width),Math.round(z))];null!=a[b]?(a[b].points=d,a[b].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[b]=d)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);
a(this.verticalPageBreaks)};var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,d,c){for(var f=0;f<d.length;f++){if(this.graph.isTableCell(d[f])||this.graph.isTableRow(d[f]))return!1;if(this.graph.getModel().isVertex(d[f])){var g=this.graph.getCellGeometry(d[f]);if(null!=g&&g.relative)return!1}}return b.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=
e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,
-g=this.graph.pageScale,e=d.width*g,d=d.height*g,g=Math.floor(Math.min(0,b)/e),k=Math.floor(Math.min(0,c)/d);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+k*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-k)*d)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
-this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var n=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,g,e){var f=n.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var l=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
-function(a,b,c){var d,g=this.graph.model.getParent(a);if(b)d=this.graph.model.isEdge(a)?null:this.graph.getCellGeometry(a),d=!this.graph.model.isEdge(g)&&!this.graph.isSiblingSelected(a)&&(null!=d&&d.relative||!this.graph.isContainer(g)||this.graph.isPart(a));else if(d=l.apply(this,arguments),this.graph.isTableCell(a)||this.graph.isTableRow(a))d=g,this.graph.isTable(d)||(d=this.graph.model.getParent(d)),d=!this.graph.selectionCellsHandler.isHandled(d)||this.graph.isCellSelected(d)&&this.graph.isToggleEvent(c.getEvent())||
+g=this.graph.pageScale,e=d.width*g,d=d.height*g,g=Math.floor(Math.min(0,b)/e),p=Math.floor(Math.min(0,c)/d);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+p*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-p)*d)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
+this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var l=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,g,e){var f=l.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var m=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
+function(a,b,c){var d,g=this.graph.model.getParent(a);if(b)d=this.graph.model.isEdge(a)?null:this.graph.getCellGeometry(a),d=!this.graph.model.isEdge(g)&&!this.graph.isSiblingSelected(a)&&(null!=d&&d.relative||!this.graph.isContainer(g)||this.graph.isPart(a));else if(d=m.apply(this,arguments),this.graph.isTableCell(a)||this.graph.isTableRow(a))d=g,this.graph.isTable(d)||(d=this.graph.model.getParent(d)),d=!this.graph.selectionCellsHandler.isHandled(d)||this.graph.isCellSelected(d)&&this.graph.isToggleEvent(c.getEvent())||
this.graph.isCellSelected(a)&&!this.graph.isToggleEvent(c.getEvent())||this.graph.isTableCell(a)&&this.graph.isCellSelected(g);return d};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a),d=this.graph.view.getState(c),g=this.graph.isCellSelected(a);null!=d&&(b.isVertex(c)||b.isEdge(c));){var e=this.graph.isCellSelected(c),g=g||e;if(e||!g&&(this.graph.isTableCell(a)||this.graph.isTableRow(a)))a=c;c=b.getParent(c)}return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=e;this.initialDefaultVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.initialDefaultEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=
-mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!d.standalone){var n="rounded shadow glass dashed dashPattern labelBackgroundColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),
-l="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var f=d.getCellStyle(b);a=[];var b=[],g;for(g in c.style)f[g]!=c.style[g]&&(a.push(c.style[g]),b.push(g));for(var e=d.getModel().getStyle(c.cell),k=null!=e?e.split(";"):[],e=0;e<k.length;e++){var m=
-k[e],p=m.indexOf("=");if(0<=p){g=m.substring(0,p);var u=m.substring(p+1);null!=f[g]&&"none"==u&&(a.push(u),b.push(g))}}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",b,"values",a,"cells",[c.cell]))}}catch(Y){this.handleError(Y)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
-"keys",[],"values",[],"cells",[]))};var t=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<t.length;b++)0>mxUtils.indexOf(n,t[b])&&n.push(t[b]);var q="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),c=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],["opacity"],["align"],["html"]];for(b=0;b<c.length;b++)for(e=0;e<c[b].length;e++)n.push(c[b][e]);
-for(b=0;b<l.length;b++)0>mxUtils.indexOf(n,l[b])&&n.push(l[b]);var f=function(a,b,f,g,e){g=null!=g?g:d.currentVertexStyle;e=null!=e?e:d.currentEdgeStyle;f=null!=f?f:d.getModel();f.beginUpdate();try{for(var k=0;k<a.length;k++){var x=a[k],m;if(b)m=["fontSize","fontFamily","fontColor"];else{var p=f.getStyle(x),u=null!=p?p.split(";"):[];m=n.slice();for(var B=0;B<u.length;B++){var q=u[B],z=q.indexOf("=");if(0<=z){var y=q.substring(0,z),A=mxUtils.indexOf(m,y);0<=A&&m.splice(A,1);for(var t=0;t<c.length;t++){var Q=
-c[t];if(0<=mxUtils.indexOf(Q,y))for(var H=0;H<Q.length;H++){var F=mxUtils.indexOf(m,Q[H]);0<=F&&m.splice(F,1)}}}}}for(var M=f.isEdge(x),t=M?e:g,L=f.getStyle(x),B=0;B<m.length;B++){var y=m[B],I=t[y];null==I||"shape"==y&&!M||M&&!(0>mxUtils.indexOf(l,y))||(L=mxUtils.setStyle(L,y,I))}Editor.simpleLabels&&(L=mxUtils.setStyle(mxUtils.setStyle(L,"html",null),"whiteSpace",null));f.setStyle(x,L)}}finally{f.endUpdate()}};d.addListener("cellsInserted",function(a,c){f(c.getProperty("cells"))});d.addListener("textInserted",
-function(a,c){f(c.getProperty("cells"),!0)});this.insertHandler=f;this.createDivs();this.createUi();this.refresh();var g=mxUtils.bind(this,function(a){null==a&&(a=window.event);return d.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=g,this.menubarContainer.onmousedown=g,this.toolbarContainer.onselectstart=g,this.toolbarContainer.onmousedown=g,this.diagramContainer.onselectstart=g,this.diagramContainer.onmousedown=g,this.sidebarContainer.onselectstart=
-g,this.sidebarContainer.onmousedown=g,this.formatContainer.onselectstart=g,this.formatContainer.onmousedown=g,this.footerContainer.onselectstart=g,this.footerContainer.onmousedown=g,null!=this.tabContainer&&(this.tabContainer.onselectstart=g));!this.editor.chromeless||this.editor.editable?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}}return g(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||
-9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var m=d.graphHandler.start;d.graphHandler.start=function(){null!=G.hoverIcons&&G.hoverIcons.reset();m.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,
-"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var k=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return k||p.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=
-a.which||d.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(k=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor="";k=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var u=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return u.apply(this,
-arguments)||k||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return A.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var F=d.isZoomWheelEvent;
-d.isZoomWheelEvent=function(){return k||F.apply(this,arguments)};var z=!1,y=null,M=null,L=null,I=mxUtils.bind(this,function(){if(null!=this.toolbar&&z!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var b=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));a=b}a=this.toolbar.fontMenu;b=this.toolbar.sizeMenu;if(null==L)this.toolbar.createTextToolbar();else{for(var f=0;f<L.length;f++)this.toolbar.container.appendChild(L[f]);
-this.toolbar.fontMenu=y;this.toolbar.sizeMenu=M}z=d.cellEditor.isContentEditing();y=a;M=b;L=c}}),G=this,K=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){K.apply(this,arguments);I();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=d.getSelectedEditingElement();null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=G.toolbar&&(G.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),G.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},
-0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var E=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){try{E.apply(this,arguments),I()}catch(Q){G.handleError(Q)}};d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(H){}var J=
-d.fireMouseEvent;d.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();J.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};d.connectionHandler.addListener(mxEvent.CONNECT,
-function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));f(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=d.getModel().isVertex(b[e])||f,!(g=d.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=c.getProperty("keys"),k=c.getProperty("values"),e=0;e<b.length;e++){var m=0<=mxUtils.indexOf(t,b[e]);if("strokeColor"!=b[e]||null!=k[e]&&"none"!=
-k[e])if(0<=mxUtils.indexOf(l,b[e]))g||0<=mxUtils.indexOf(q,b[e])?null==k[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=k[e]:f&&0<=mxUtils.indexOf(n,b[e])&&(null==k[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=k[e]);else if(0<=mxUtils.indexOf(n,b[e])){if(f||m)null==k[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=k[e];if(g||m||0<=mxUtils.indexOf(q,b[e]))null==k[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=k[e]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||
-Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
-d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?
-"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
-this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);
-this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),f=c.getProperty("parent");d.getModel().isLayer(f)&&!d.isCellVisible(f)&&null!=b&&0<b.length&&d.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,
-this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,
-"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph()}this.init();d.standalone||this.open()};
-mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;
-EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
+mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!d.standalone){var l="rounded shadow glass dashed dashPattern labelBackgroundColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),
+m="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var f=d.getCellStyle(b);a=[];var b=[],g;for(g in c.style)f[g]!=c.style[g]&&(a.push(c.style[g]),b.push(g));for(var e=d.getModel().getStyle(c.cell),p=null!=e?e.split(";"):[],e=0;e<p.length;e++){var k=
+p[e],t=k.indexOf("=");if(0<=t){g=k.substring(0,t);var v=k.substring(t+1);null!=f[g]&&"none"==v&&(a.push(v),b.push(g))}}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",b,"values",a,"cells",[c.cell]))}}catch(X){this.handleError(X)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
+"keys",[],"values",[],"cells",[]))};var u=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<u.length;b++)0>mxUtils.indexOf(l,u[b])&&l.push(u[b]);var q="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),c=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],["opacity"],["align"],["html"]];for(b=0;b<c.length;b++)for(e=0;e<c[b].length;e++)l.push(c[b][e]);
+for(b=0;b<m.length;b++)0>mxUtils.indexOf(l,m[b])&&l.push(m[b]);var f=function(a,b,f,g,e,p,k){g=null!=g?g:d.currentVertexStyle;e=null!=e?e:d.currentEdgeStyle;f=null!=f?f:d.getModel();if(k){k=[];for(var n=0;n<a.length;n++)k=k.concat(f.getDescendants(a[n]));a=k}f.beginUpdate();try{for(n=0;n<a.length;n++){var t=a[n],v;if(b)v=["fontSize","fontFamily","fontColor"];else{var C=f.getStyle(t),B=null!=C?C.split(";"):[];v=l.slice();for(var q=0;q<B.length;q++){var y=B[q],z=y.indexOf("=");if(0<=z){var A=y.substring(0,
+z),ka=mxUtils.indexOf(v,A);0<=ka&&v.splice(ka,1);for(k=0;k<c.length;k++){var u=c[k];if(0<=mxUtils.indexOf(u,A))for(var N=0;N<u.length;N++){var I=mxUtils.indexOf(v,u[N]);0<=I&&v.splice(I,1)}}}}}var F=f.isEdge(t);k=F?e:g;for(var L=f.getStyle(t),q=0;q<v.length;q++){var A=v[q],G=k[A];null!=G&&("shape"!=A||F)&&(!F||p||0>mxUtils.indexOf(m,A))&&(L=mxUtils.setStyle(L,A,G))}Editor.simpleLabels&&(L=mxUtils.setStyle(mxUtils.setStyle(L,"html",null),"whiteSpace",null));f.setStyle(t,L)}}finally{f.endUpdate()}};
+d.addListener("cellsInserted",function(a,c){f(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){f(c.getProperty("cells"),!0)});this.insertHandler=f;this.createDivs();this.createUi();this.refresh();var g=mxUtils.bind(this,function(a){null==a&&(a=window.event);return d.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=g,this.menubarContainer.onmousedown=g,this.toolbarContainer.onselectstart=g,this.toolbarContainer.onmousedown=
+g,this.diagramContainer.onselectstart=g,this.diagramContainer.onmousedown=g,this.sidebarContainer.onselectstart=g,this.sidebarContainer.onmousedown=g,this.formatContainer.onselectstart=g,this.formatContainer.onmousedown=g,this.footerContainer.onselectstart=g,this.footerContainer.onmousedown=g,null!=this.tabContainer&&(this.tabContainer.onselectstart=g));!this.editor.chromeless||this.editor.editable?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=c;){if("geHint"==
+c.className)return!0;c=c.parentNode}}return g(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var k=d.graphHandler.start;
+d.graphHandler.start=function(){null!=J.hoverIcons&&J.hoverIcons.reset();k.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var p=!1,t=this.hoverIcons.isResetEvent;
+this.hoverIcons.isResetEvent=function(a,c){return p||t.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||d.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(p=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor="";p=!1});mxEvent.addListener(document,
+"keyup",this.keyupHandler);var v=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return v.apply(this,arguments)||p||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return A.apply(this,arguments)||13==a.keyCode&&
+(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var F=d.isZoomWheelEvent;d.isZoomWheelEvent=function(){return p||F.apply(this,arguments)};var y=!1,z=null,L=null,M=null,G=mxUtils.bind(this,function(){if(null!=this.toolbar&&y!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var b=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));
+a=b}a=this.toolbar.fontMenu;b=this.toolbar.sizeMenu;if(null==M)this.toolbar.createTextToolbar();else{for(var f=0;f<M.length;f++)this.toolbar.container.appendChild(M[f]);this.toolbar.fontMenu=z;this.toolbar.sizeMenu=L}y=d.cellEditor.isContentEditing();z=a;L=b;M=c}}),J=this,H=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){H.apply(this,arguments);G();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=d.getSelectedEditingElement();null!=
+c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=J.toolbar&&(J.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),J.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var D=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){try{D.apply(this,arguments),G()}catch(N){J.handleError(N)}};
+d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(I){}var K=d.fireMouseEvent;d.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();K.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
+function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};d.connectionHandler.addListener(mxEvent.CONNECT,function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));f(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=d.getModel().isVertex(b[e])||f,!(g=d.getModel().isEdge(b[e])||
+g)||!f);e++);else g=f=!0;for(var b=c.getProperty("keys"),p=c.getProperty("values"),e=0;e<b.length;e++){var k=0<=mxUtils.indexOf(u,b[e]);if("strokeColor"!=b[e]||null!=p[e]&&"none"!=p[e])if(0<=mxUtils.indexOf(m,b[e]))g||0<=mxUtils.indexOf(q,b[e])?null==p[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=p[e]:f&&0<=mxUtils.indexOf(l,b[e])&&(null==p[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=p[e]);else if(0<=mxUtils.indexOf(l,b[e])){if(f||k)null==p[e]?delete d.currentVertexStyle[b[e]]:
+d.currentVertexStyle[b[e]]=p[e];if(g||k||0<=mxUtils.indexOf(q,b[e]))null==p[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=p[e]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?
+"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?
+"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=
+this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||
+"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),f=c.getProperty("parent");d.getModel().isLayer(f)&&
+!d.isCellVisible(f)&&null!=b&&0<b.length&&d.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=
+mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",
+mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph()}this.init();d.standalone||this.open()};mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;
+EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"!=urlParams["shape-picker"]&&this.installShapePicker();mxEvent.addListener(a.container,"scroll",mxUtils.bind(this,function(){a.tooltipHandler.hide();null!=a.connectionHandler&&null!=a.connectionHandler.constraintHandler&&a.connectionHandler.constraintHandler.reset()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){a.tooltipHandler.hide();var b=a.getRubberband();null!=b&&b.cancel()}));mxEvent.addListener(a.container,
"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));var b=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){b.apply(this,
arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};
EditorUi.prototype.installShapePicker=function(){var a=this.editor.graph,b=this;a.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){"mouseDown"==d.getProperty("eventName")&&b.hideShapePicker()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));var e=
-a.popupMenuHandler.isMenuShowing;a.popupMenuHandler.isMenuShowing=function(){return e.apply(this,arguments)||null!=b.shapePicker};var d=a.dblClick;a.dblClick=function(a,e){if(this.isEnabled())if(null!=e||null==b.sidebar||mxEvent.isShiftDown(a))d.apply(this,arguments);else{mxEvent.consume(a);var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(c.x,c.y)}),30)}};if(null!=this.hoverIcons){var n=this.hoverIcons.drag;
-this.hoverIcons.drag=function(){b.hideShapePicker();n.apply(this,arguments)};var l=this.hoverIcons.execute;this.hoverIcons.execute=function(d,e,c){var f=c.getEvent();this.graph.isCloneEvent(f)||mxEvent.isShiftDown(f)?l.apply(this,arguments):this.graph.connectVertex(d.cell,e,this.graph.defaultEdgeLength,f,null,null,mxUtils.bind(this,function(f,m,k){var g=a.getCompositeParent(d.cell);f=a.getCellGeometry(g);for(c.consume();null!=g&&a.model.isVertex(g)&&null!=f&&f.relative;)cell=g,g=a.model.getParent(cell),
-f=a.getCellGeometry(g);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(c.getGraphX(),c.getGraphY(),g,mxUtils.bind(this,function(a){k(a)}),e)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,f,this)}))}}};
-EditorUi.prototype.showShapePicker=function(a,b,e,d,n){a=this.createShapePicker(a,b,e,d,n,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(e));null!=a&&(null!=this.hoverIcons&&this.hoverIcons.reset(),b=this.editor.graph,b.popupMenuHandler.hideMenu(),b.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=d,this.shapePicker=a)};
-EditorUi.prototype.createShapePicker=function(a,b,e,d,n,l,t){var q=null;if(null!=t&&0<t.length){var c=this,f=this.editor.graph,q=document.createElement("div");n=f.view.getState(e);var g=null==e||null!=n&&f.isTransparentState(n)?null:f.copyStyle(e);e=6>t.length?35*t.length:140;q.className="geToolbarContainer geSidebarContainer geSidebar";q.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;";
-mxUtils.setPrefixedStyle(q.style,"transform","translate(-22px,-22px)");null!=f.background&&f.background!=mxConstants.NONE&&(q.style.backgroundColor=f.background);f.container.appendChild(q);e=mxUtils.bind(this,function(e){var k=document.createElement("a");k.className="geItem";k.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";q.appendChild(k);null!=g&&"1"!=urlParams.sketch?this.sidebar.graph.pasteStyle(g,
-[e]):c.insertHandler([e],""!=e.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([e],25,25,k,null,!0,!1,e.geometry.width,e.geometry.height);mxEvent.addListener(k,"click",function(){var g=f.cloneCell(e);if(null!=d)d(g);else{g.geometry.x=f.snap(Math.round(a/f.view.scale)-f.view.translate.x-e.geometry.width/2);g.geometry.y=f.snap(Math.round(b/f.view.scale)-f.view.translate.y-e.geometry.height/2);f.model.beginUpdate();try{f.addCell(g)}finally{f.model.endUpdate()}f.setSelectionCell(g);
-f.scrollCellToVisible(g);f.startEditingAtCell(g);null!=c.hoverIcons&&c.hoverIcons.update(f.view.getState(g))}null!=l&&l()})});for(n=0;n<t.length;n++)e(t[n])}return q};
-EditorUi.prototype.getCellsForShapePicker=function(a){var b=mxUtils.bind(this,function(a,b,n,l){return this.editor.graph.createVertex(null,null,l||"",0,0,b||120,n||60,a,!1)});return[null!=a?this.editor.graph.cloneCell(a):b("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text"),b("whiteSpace=wrap;html=1;"),b("rounded=1;whiteSpace=wrap;html=1;"),b("ellipse;whiteSpace=wrap;html=1;"),b("rhombus;whiteSpace=wrap;html=1;",80,80),b("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),
+a.popupMenuHandler.isMenuShowing;a.popupMenuHandler.isMenuShowing=function(){return e.apply(this,arguments)||null!=b.shapePicker};var d=a.dblClick;a.dblClick=function(a,e){if(this.isEnabled())if(null!=e||null==b.sidebar||mxEvent.isShiftDown(a))d.apply(this,arguments);else{mxEvent.consume(a);var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(c.x,c.y)}),30)}};if(null!=this.hoverIcons){var l=this.hoverIcons.drag;
+this.hoverIcons.drag=function(){b.hideShapePicker();l.apply(this,arguments)};var m=this.hoverIcons.execute;this.hoverIcons.execute=function(d,e,c){var f=c.getEvent();this.graph.isCloneEvent(f)||mxEvent.isShiftDown(f)?m.apply(this,arguments):this.graph.connectVertex(d.cell,e,this.graph.defaultEdgeLength,f,null,null,mxUtils.bind(this,function(f,k,p){var g=a.getCompositeParent(d.cell);f=a.getCellGeometry(g);for(c.consume();null!=g&&a.model.isVertex(g)&&null!=f&&f.relative;)cell=g,g=a.model.getParent(cell),
+f=a.getCellGeometry(g);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(c.getGraphX(),c.getGraphY(),g,mxUtils.bind(this,function(a){p(a)}),e)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,f,this)}))}}};
+EditorUi.prototype.showShapePicker=function(a,b,e,d,l){a=this.createShapePicker(a,b,e,d,l,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(e));null!=a&&(null!=this.hoverIcons&&this.hoverIcons.reset(),b=this.editor.graph,b.popupMenuHandler.hideMenu(),b.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=d,this.shapePicker=a)};
+EditorUi.prototype.createShapePicker=function(a,b,e,d,l,m,u){var q=null;if(null!=u&&0<u.length){var c=this,f=this.editor.graph,q=document.createElement("div");l=f.view.getState(e);var g=null==e||null!=l&&f.isTransparentState(l)?null:f.copyStyle(e);e=6>u.length?35*u.length:140;q.className="geToolbarContainer geSidebarContainer geSidebar";q.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;";
+mxUtils.setPrefixedStyle(q.style,"transform","translate(-22px,-22px)");null!=f.background&&f.background!=mxConstants.NONE&&(q.style.backgroundColor=f.background);f.container.appendChild(q);e=mxUtils.bind(this,function(e){var p=document.createElement("a");p.className="geItem";p.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";q.appendChild(p);null!=g&&"1"!=urlParams.sketch?this.sidebar.graph.pasteStyle(g,
+[e]):c.insertHandler([e],""!=e.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([e],25,25,p,null,!0,!1,e.geometry.width,e.geometry.height);mxEvent.addListener(p,"click",function(){var g=f.cloneCell(e);if(null!=d)d(g);else{g.geometry.x=f.snap(Math.round(a/f.view.scale)-f.view.translate.x-e.geometry.width/2);g.geometry.y=f.snap(Math.round(b/f.view.scale)-f.view.translate.y-e.geometry.height/2);f.model.beginUpdate();try{f.addCell(g)}finally{f.model.endUpdate()}f.setSelectionCell(g);
+f.scrollCellToVisible(g);f.startEditingAtCell(g);null!=c.hoverIcons&&c.hoverIcons.update(f.view.getState(g))}null!=m&&m()})});for(l=0;l<u.length;l++)e(u[l])}return q};
+EditorUi.prototype.getCellsForShapePicker=function(a){var b=mxUtils.bind(this,function(a,b,l,m){return this.editor.graph.createVertex(null,null,m||"",0,0,b||120,l||60,a,!1)});return[null!=a?this.editor.graph.cloneCell(a):b("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text"),b("whiteSpace=wrap;html=1;"),b("rounded=1;whiteSpace=wrap;html=1;"),b("ellipse;whiteSpace=wrap;html=1;"),b("rhombus;whiteSpace=wrap;html=1;",80,80),b("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),
b("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60),b("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;"),b("triangle;whiteSpace=wrap;html=1;",60,80),b("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80),b("shape=tape;whiteSpace=wrap;html=1;",120,100),b("ellipse;shape=cloud;whiteSpace=wrap;html=1;",
120,80),b("shape=cylinder;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;",60,80),b("shape=callout;rounded=1;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;",120,80),b("shape=doubleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.3;"),b("shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;",80,60),b("shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;flipH=1;",80,60),b("shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;",
40,40)]};EditorUi.prototype.hideShapePicker=function(a){null!=this.shapePicker&&(this.shapePicker.parentNode.removeChild(this.shapePicker),this.shapePicker=null,a||null==this.shapePickerCallback||this.shapePickerCallback(),this.shapePickerCallback=null)};EditorUi.prototype.onKeyDown=function(a){var b=this.editor.graph;9!=a.which||!b.isEnabled()||mxEvent.isAltDown(a)||b.isEditing()&&mxEvent.isShiftDown(a)||(b.isEditing()?b.stopEditing(!1):b.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))};
@@ -2169,48 +2170,48 @@ EditorUi.prototype.getCssClassForMarker=function(a,b,e,d){return"flexArrow"==b?n
e==mxConstants.ARROW_DIAMOND_THIN?"1"==d?"geSprite geSprite-"+a+"thindiamond":"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==d?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==d||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==
e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,b=this.actions.get("paste"),e=this.actions.get("pasteHere");b.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(b.isEnabled())};
-EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(d){d.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(b){var d=null;if(b.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var d=d||b.getSelectionCells(),d=b.getExportableCells(b.model.getTopmostCells(d)),e={},c=b.createCellLookup(d),f=b.cloneCells(d,null,e),g=new mxGraphModel,m=g.getChildAt(g.getRoot(),
-0),k=0;k<f.length;k++){g.add(m,f[k]);var p=b.view.getState(d[k]);if(null!=p){var u=b.getCellGeometry(f[k]);null!=u&&u.relative&&!g.isEdge(d[k])&&null==c[mxObjectIdentity.get(g.getParent(d[k]))]&&(u.offset=null,u.relative=!1,u.x=p.x/p.view.scale-p.view.translate.x,u.y=p.y/p.view.scale-p.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(e,c),f);mxClipboard.insertCount=1;mxClipboard.setCells(f)}a.updatePasteActionStates();return d};var e=mxClipboard.paste;mxClipboard.paste=function(b){var d=
-null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):d=e.apply(this,arguments);a.updatePasteActionStates();return d};var d=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){d.apply(this,arguments);a.updatePasteActionStates()};var n=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,d){n.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
+EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(d){d.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(b){var d=null;if(b.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var d=d||b.getSelectionCells(),d=b.getExportableCells(b.model.getTopmostCells(d)),e={},c=b.createCellLookup(d),f=b.cloneCells(d,null,e),g=new mxGraphModel,k=g.getChildAt(g.getRoot(),
+0),p=0;p<f.length;p++){g.add(k,f[p]);var t=b.view.getState(d[p]);if(null!=t){var v=b.getCellGeometry(f[p]);null!=v&&v.relative&&!g.isEdge(d[p])&&null==c[mxObjectIdentity.get(g.getParent(d[p]))]&&(v.offset=null,v.relative=!1,v.x=t.x/t.view.scale-t.view.translate.x,v.y=t.y/t.view.scale-t.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(e,c),f);mxClipboard.insertCount=1;mxClipboard.setCells(f)}a.updatePasteActionStates();return d};var e=mxClipboard.paste;mxClipboard.paste=function(b){var d=
+null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):d=e.apply(this,arguments);a.updatePasteActionStates();return d};var d=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){d.apply(this,arguments);a.updatePasteActionStates()};var l=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,d){l.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),c=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*c.width),this.scale*(this.translate.y+a.y*c.height),this.scale*a.width*c.width,
-this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,d,f){if(null!=a.container&&!a.isViewer()){d=null!=d?d:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),k=a.view.translate,x=a.view.scale,m=mxRectangle.fromRectangle(g);
-m.x=m.x/x-k.x;m.y=m.y/x-k.y;m.width/=x;m.height/=x;var k=a.container.scrollTop,p=a.container.scrollLeft,u=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)u+=3;var C=a.container.offsetWidth-u,u=a.container.offsetHeight-u;c=c?Math.max(.3,Math.min(b||1,C/m.width)):x;b=(C-c*m.width)/2/c;var l=0==this.lightboxVerticalDivider?0:(u-c*m.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),l=Math.max(l,0));if(e||g.width<C||g.height<u)a.view.scaleAndTranslate(c,Math.floor(b-
-m.x),Math.floor(l-m.y)),a.container.scrollTop=k*c/x,a.container.scrollLeft=p*c/x;else if(0!=d||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/x),Math.floor(g.y+f/x))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
-function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var n=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
-"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var l=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top=
-"0":this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",l);l();var t=0,l=mxUtils.bind(this,function(a,c,b){t++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=b&&d.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");
-a.setAttribute("src",c);d.appendChild(a);this.chromelessToolbar.appendChild(d);return d});null!=n.backBtn&&l(mxUtils.bind(this,function(a){window.location.href=n.backBtn.url;mxEvent.consume(a)}),Editor.backLargeImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var q=l(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),c=document.createElement("div");c.style.display="inline-block";
-c.style.verticalAlign="top";c.style.fontFamily="Helvetica,Arial";c.style.marginTop="8px";c.style.fontSize="14px";c.style.color="#ffffff";this.chromelessToolbar.appendChild(c);var f=l(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),g=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(c.innerHTML="",mxUtils.write(c,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+
-this.pages.length))});q.style.paddingLeft="0px";q.style.paddingRight="4px";f.style.paddingLeft="4px";f.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(f.style.display="",q.style.display="",c.style.display="inline-block"):(f.style.display="none",q.style.display="none",c.style.display="none");g()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",g)}l(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
-mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");l(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");l(mxUtils.bind(this,function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var k=null,p=null,u=mxUtils.bind(this,
-function(a){null!=k&&(window.clearTimeout(k),k=null);null!=p&&(window.clearTimeout(p),p=null);k=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);k=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";p=null}),600)}),a||200)}),A=mxUtils.bind(this,function(a){null!=k&&(window.clearTimeout(k),k=null);null!=p&&(window.clearTimeout(p),p=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
-a||30)});if("1"==urlParams.layers){this.layersDialog=null;var F=l(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=F.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius",
+this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,d,f){if(null!=a.container&&!a.isViewer()){d=null!=d?d:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),p=a.view.translate,n=a.view.scale,k=mxRectangle.fromRectangle(g);
+k.x=k.x/n-p.x;k.y=k.y/n-p.y;k.width/=n;k.height/=n;var p=a.container.scrollTop,t=a.container.scrollLeft,v=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)v+=3;var C=a.container.offsetWidth-v,v=a.container.offsetHeight-v;c=c?Math.max(.3,Math.min(b||1,C/k.width)):n;b=(C-c*k.width)/2/c;var m=0==this.lightboxVerticalDivider?0:(v-c*k.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),m=Math.max(m,0));if(e||g.width<C||g.height<v)a.view.scaleAndTranslate(c,Math.floor(b-
+k.x),Math.floor(m-k.y)),a.container.scrollTop=p*c/n,a.container.scrollLeft=t*c/n;else if(0!=d||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/n),Math.floor(g.y+f/n))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var l=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
+"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var m=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top=
+"0":this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",m);m();var u=0,m=mxUtils.bind(this,function(a,c,b){u++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=b&&d.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");
+a.setAttribute("src",c);d.appendChild(a);this.chromelessToolbar.appendChild(d);return d});null!=l.backBtn&&m(mxUtils.bind(this,function(a){window.location.href=l.backBtn.url;mxEvent.consume(a)}),Editor.backLargeImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var q=m(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),c=document.createElement("div");c.style.display="inline-block";
+c.style.verticalAlign="top";c.style.fontFamily="Helvetica,Arial";c.style.marginTop="8px";c.style.fontSize="14px";c.style.color="#ffffff";this.chromelessToolbar.appendChild(c);var f=m(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),g=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(c.innerHTML="",mxUtils.write(c,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+
+this.pages.length))});q.style.paddingLeft="0px";q.style.paddingRight="4px";f.style.paddingLeft="4px";f.style.paddingRight="0px";var k=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(f.style.display="",q.style.display="",c.style.display="inline-block"):(f.style.display="none",q.style.display="none",c.style.display="none");g()});this.editor.addListener("resetGraphView",k);this.editor.addListener("pageSelected",g)}m(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
+mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");m(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");m(mxUtils.bind(this,function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var p=null,t=null,v=mxUtils.bind(this,
+function(a){null!=p&&(window.clearTimeout(p),p=null);null!=t&&(window.clearTimeout(t),t=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;t=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";t=null}),600)}),a||200)}),A=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),p=null);null!=t&&(window.clearTimeout(t),t=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
+a||30)});if("1"==urlParams.layers){this.layersDialog=null;var F=m(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=F.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius",
"5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),z=a.getModel();z.addListener(mxEvent.CHANGE,function(){F.style.display=1<z.getChildCount(z.root)?"":"none"})}"1"!=urlParams.openInSameWin&&this.addChromelessToolbarItems(l);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||l(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==
-this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(m=0;m<this.lightboxToolbarActions.length;m++){var y=this.lightboxToolbarActions[m];l(y.fn,y.icon,y.tooltip)}null!=n.refreshBtn&&l(mxUtils.bind(this,function(a){n.refreshBtn.url?window.location.href=n.refreshBtn.url:window.location.reload();mxEvent.consume(a)}),Editor.refreshLargeImage,
-mxResources.get("refresh",null,"Refresh"));null!=n.fullscreenBtn&&window.self!==window.top&&l(mxUtils.bind(this,function(c){n.fullscreenBtn.url?a.openLink(n.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(c)}),Editor.fullscreenLargeImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(n.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&l(mxUtils.bind(this,function(a){"1"==urlParams.close||n.closeBtn?window.close():
-(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||A(30),u())}));mxEvent.addListener(this.chromelessToolbar,
-mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?u():A(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?u():A(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||A(30)}));var M=a.getTolerance();a.addMouseListener({startX:0,
-startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<M&&Math.abs(this.scrollTop-a.container.scrollTop)<M&&Math.abs(this.startX-b.getGraphX())<M&&Math.abs(this.startY-b.getGraphY())<M&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?
-u():A(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var L=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=a.y-(this.y0||0)*c.height}L.apply(this,arguments)};if(!a.isViewer()){var I=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=
-this.getPageLayout(),b=this.getPagePadding(),d=this.getPageSize(),f=Math.ceil(2*b.x+c.width*d.width),g=Math.ceil(2*b.y+c.height*d.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-c.x*d.width;b=b.y-c.y*d.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==b?I.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=
-Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((b-d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var G=a.view.getBackgroundPane(),K=a.view.getDrawPane();a.cumulativeZoomFactor=1;var E=null,J=null,H=null,X=null,Q=null,x=function(c){null!=E&&window.clearTimeout(E);window.setTimeout(function(){if(!a.isMouseDown||X)E=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
-null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),K.style.transformOrigin="",G.style.transformOrigin="",mxClient.IS_SF?(K.style.transform="scale(1)",G.style.transform="scale(1)",window.setTimeout(function(){K.style.transform="";G.style.transform=""},0)):(K.style.transform="",G.style.transform=""),a.view.getDecoratorPane().style.opacity="",
-a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),d=mxUtils.getOffset(a.container),f=a.view.scale,g=0,k=0;null!=J&&(g=a.container.offsetWidth/2-J.x+d.x,k=a.container.offsetHeight/2-J.y+d.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=f&&(null!=H&&(g+=c.x-H.x,k+=c.y-H.y),null!=b&&e.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),k*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==k||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
-1),a.container.scrollTop-=k*(a.cumulativeZoomFactor-1)));null!=Q&&K.setAttribute("filter",Q);a.cumulativeZoomFactor=1;Q=X=J=H=E=null}),null!=c?c:a.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},B=Date.now();a.lazyZoom=function(c,b,d){(b=b||!a.scrollbars)&&(J=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(!(15>Date.now()-B)){B=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+
+this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),y=a.getModel();y.addListener(mxEvent.CHANGE,function(){F.style.display=1<y.getChildCount(y.root)?"":"none"})}"1"!=urlParams.openInSameWin&&this.addChromelessToolbarItems(m);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||m(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==
+this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(k=0;k<this.lightboxToolbarActions.length;k++){var z=this.lightboxToolbarActions[k];m(z.fn,z.icon,z.tooltip)}null!=l.refreshBtn&&m(mxUtils.bind(this,function(a){l.refreshBtn.url?window.location.href=l.refreshBtn.url:window.location.reload();mxEvent.consume(a)}),Editor.refreshLargeImage,
+mxResources.get("refresh",null,"Refresh"));null!=l.fullscreenBtn&&window.self!==window.top&&m(mxUtils.bind(this,function(c){l.fullscreenBtn.url?a.openLink(l.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(c)}),Editor.fullscreenLargeImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(l.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&m(mxUtils.bind(this,function(a){"1"==urlParams.close||l.closeBtn?window.close():
+(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||A(30),v())}));mxEvent.addListener(this.chromelessToolbar,
+mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?v():A(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?v():A(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||A(30)}));var L=a.getTolerance();a.addMouseListener({startX:0,
+startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<L&&Math.abs(this.scrollTop-a.container.scrollTop)<L&&Math.abs(this.startX-b.getGraphX())<L&&Math.abs(this.startY-b.getGraphY())<L&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?
+v():A(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var M=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=a.y-(this.y0||0)*c.height}M.apply(this,arguments)};if(!a.isViewer()){var G=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=
+this.getPageLayout(),b=this.getPagePadding(),d=this.getPageSize(),f=Math.ceil(2*b.x+c.width*d.width),g=Math.ceil(2*b.y+c.height*d.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-c.x*d.width;b=b.y-c.y*d.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==b?G.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=
+Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((b-d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var J=a.view.getBackgroundPane(),H=a.view.getDrawPane();a.cumulativeZoomFactor=1;var D=null,K=null,I=null,R=null,N=null,n=function(c){null!=D&&window.clearTimeout(D);window.setTimeout(function(){if(!a.isMouseDown||R)D=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
+null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),H.style.transformOrigin="",J.style.transformOrigin="",mxClient.IS_SF?(H.style.transform="scale(1)",J.style.transform="scale(1)",window.setTimeout(function(){H.style.transform="";J.style.transform=""},0)):(H.style.transform="",J.style.transform=""),a.view.getDecoratorPane().style.opacity="",
+a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),d=mxUtils.getOffset(a.container),f=a.view.scale,g=0,p=0;null!=K&&(g=a.container.offsetWidth/2-K.x+d.x,p=a.container.offsetHeight/2-K.y+d.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=f&&(null!=I&&(g+=c.x-I.x,p+=c.y-I.y),null!=b&&e.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),p*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==p||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
+1),a.container.scrollTop-=p*(a.cumulativeZoomFactor-1)));null!=N&&H.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=R=K=I=D=null}),null!=c?c:a.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},B=Date.now();a.lazyZoom=function(c,b,d){(b=b||!a.scrollbars)&&(K=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(!(15>Date.now()-B)){B=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+
.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,
-160))/this.view.scale;if(a.isFastZoomEnabled()){null==Q&&""!=K.getAttribute("filter")&&(Q=K.getAttribute("filter"),K.removeAttribute("filter"));H=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=b?a.container.scrollLeft+a.container.clientWidth/2:J.x+a.container.scrollLeft-a.container.offsetLeft;var f=b?a.container.scrollTop+a.container.clientHeight/2:J.y+a.container.scrollTop-a.container.offsetTop;K.style.transformOrigin=c+"px "+f+"px";K.style.transform="scale("+this.cumulativeZoomFactor+
-")";G.style.transformOrigin=c+"px "+f+"px";G.style.transform="scale("+this.cumulativeZoomFactor+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(c=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(c.style,"transform-origin",(b?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":J.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(b?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":J.y+a.container.scrollTop-c.offsetTop-
-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(c.style,"transform","scale("+this.cumulativeZoomFactor+")"));a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset()}x(d)}};mxEvent.addGestureListeners(a.container,function(a){null!=E&&window.clearTimeout(E)},null,function(c){1!=a.cumulativeZoomFactor&&x(0)});mxEvent.addListener(a.container,"scroll",function(c){null==E||a.isMouseDown||1==a.cumulativeZoomFactor||x(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,
-function(c,b,d,f,g){if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!d&&a.isScrollWheelEvent(c))d=a.view.getTranslate(),f=40/a.view.scale,mxEvent.isShiftDown(c)?a.view.setTranslate(d.x+(b?-f:f),d.y):a.view.setTranslate(d.x,d.y+(b?f:-f));else if(d||a.isZoomWheelEvent(c))for(var e=mxEvent.getSource(c);null!=e;){if(e==a.container)return a.tooltipHandler.hideTooltip(),J=null!=f&&null!=g?new mxPoint(f,g):new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c)),X=d,a.lazyZoom(b),mxEvent.consume(c),
+160))/this.view.scale;if(a.isFastZoomEnabled()){null==N&&""!=H.getAttribute("filter")&&(N=H.getAttribute("filter"),H.removeAttribute("filter"));I=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=b?a.container.scrollLeft+a.container.clientWidth/2:K.x+a.container.scrollLeft-a.container.offsetLeft;var f=b?a.container.scrollTop+a.container.clientHeight/2:K.y+a.container.scrollTop-a.container.offsetTop;H.style.transformOrigin=c+"px "+f+"px";H.style.transform="scale("+this.cumulativeZoomFactor+
+")";J.style.transformOrigin=c+"px "+f+"px";J.style.transform="scale("+this.cumulativeZoomFactor+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(c=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(c.style,"transform-origin",(b?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":K.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(b?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":K.y+a.container.scrollTop-c.offsetTop-
+a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(c.style,"transform","scale("+this.cumulativeZoomFactor+")"));a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset()}n(d)}};mxEvent.addGestureListeners(a.container,function(a){null!=D&&window.clearTimeout(D)},null,function(c){1!=a.cumulativeZoomFactor&&n(0)});mxEvent.addListener(a.container,"scroll",function(c){null==D||a.isMouseDown||1==a.cumulativeZoomFactor||n(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,
+function(c,b,d,f,g){if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!d&&a.isScrollWheelEvent(c))d=a.view.getTranslate(),f=40/a.view.scale,mxEvent.isShiftDown(c)?a.view.setTranslate(d.x+(b?-f:f),d.y):a.view.setTranslate(d.x,d.y+(b?f:-f));else if(d||a.isZoomWheelEvent(c))for(var e=mxEvent.getSource(c);null!=e;){if(e==a.container)return a.tooltipHandler.hideTooltip(),K=null!=f&&null!=g?new mxPoint(f,g):new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c)),R=d,a.lazyZoom(b),mxEvent.consume(c),
!1;e=e.parentNode}}),a.container);a.panningHandler.zoomGraph=function(c){a.cumulativeZoomFactor=c.scale;a.lazyZoom(0<c.scale,!0);mxEvent.consume(c)}};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};
EditorUi.prototype.createTemporaryGraph=function(a){var b=new Graph(document.createElement("div"));b.stylesheet.styles=mxUtils.clone(a.styles);b.resetViewOnRootChange=!1;b.setConnectable(!1);b.gridEnabled=!1;b.autoScroll=!1;b.setTooltips(!1);b.setEnabled(!1);b.container.style.visibility="hidden";b.container.style.position="absolute";b.container.style.overflow="hidden";b.container.style.height="1px";b.container.style.width="1px";return b};
EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){a=null!=a?a:0==this.formatWidth;null!=this.format&&(this.formatWidth=a?240:0,this.formatContainer.style.display=a?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,e=60;null!=b&&(e=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};
EditorUi.prototype.isSelectionAllowed=function(a){return"SELECT"==mxEvent.getSource(a).nodeName||"INPUT"==mxEvent.getSource(a).nodeName&&mxUtils.isAncestorNode(this.formatContainer,mxEvent.getSource(a))};EditorUi.prototype.addBeforeUnloadListener=function(){window.onbeforeunload=mxUtils.bind(this,function(){if(!this.editor.isChromelessView())return this.onBeforeUnload()})};EditorUi.prototype.onBeforeUnload=function(){if(this.editor.modified)return mxResources.get("allChangesLost")};
EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=b&&(this.editor.setFilename(b),this.updateDocumentTitle())}catch(d){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+d.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange();
-this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.showPopupMenu=function(a,b,e,d){this.editor.graph.popupMenuHandler.hideMenu();var n=new mxPopupMenu(a);n.div.className+=" geMenubarMenu";n.smartSeparators=!0;n.showDisabled=!0;n.autoExpand=!0;n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments);n.destroy()});n.popup(b,e,null,d);this.setCurrentMenu(n)};
+this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.showPopupMenu=function(a,b,e,d){this.editor.graph.popupMenuHandler.hideMenu();var l=new mxPopupMenu(a);l.div.className+=" geMenubarMenu";l.smartSeparators=!0;l.showDisabled=!0;l.autoExpand=!0;l.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(l,arguments);l.destroy()});l.popup(b,e,null,d);this.setCurrentMenu(l)};
EditorUi.prototype.setCurrentMenu=function(a,b){this.currentMenuElt=b;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())};EditorUi.prototype.updateDocumentTitle=function(){var a=this.editor.getOrCreateFilename();null!=this.editor.appName&&(a+=" - "+this.editor.appName);document.title=a};
EditorUi.prototype.createHoverIcons=function(){return new HoverIcons(this.editor.graph)};EditorUi.prototype.redo=function(){try{this.editor.graph.isEditing()?document.execCommand("redo",!1,null):this.editor.undoManager.redo()}catch(a){}};EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var b=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);b==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};
EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()};EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==b?a+"?":a+"&",a+=e+"="+urlParams[e],b++;return a};
@@ -2218,27 +2219,27 @@ EditorUi.prototype.setScrollbars=function(a){var b=this.editor.graph,e=b.contain
EditorUi.prototype.resetScrollbars=function(){var a=this.editor.graph;if(!this.editor.extendCanvas)a.container.scrollTop=0,a.container.scrollLeft=0,mxUtils.hasScrollbars(a.container)||a.view.setTranslate(0,0);else if(!this.editor.isChromelessView())if(mxUtils.hasScrollbars(a.container))if(a.pageVisible){var b=a.getPagePadding();a.container.scrollTop=Math.floor(b.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(b.x,(a.container.scrollWidth-a.container.clientWidth)/2))-
1;b=a.getGraphBounds();0<b.width&&0<b.height&&(b.x>a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(b.x+b.width-a.container.clientWidth,b.x-10)),b.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(b.y+b.height-a.container.clientHeight,b.y-10)))}else{var b=a.getGraphBounds(),e=Math.max(b.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,b.y-Math.max(20,(a.container.clientHeight-Math.max(b.height,
a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,b.x-Math.max(0,(a.container.clientWidth-e)/2)))}else{var b=mxRectangle.fromRectangle(a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds()),e=a.view.translate,d=a.view.scale;b.x=b.x/d-e.x;b.y=b.y/d-e.y;b.width/=d;b.height/=d;a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-b.width)/2)-b.x+2),Math.floor((a.pageVisible?0:Math.max(0,(a.container.clientHeight-b.height)/4))-b.y+1))}};
-EditorUi.prototype.setPageVisible=function(a){var b=this.editor.graph,e=mxUtils.hasScrollbars(b.container),d=0,n=0;e&&(d=b.view.translate.x*b.view.scale-b.container.scrollLeft,n=b.view.translate.y*b.view.scale-b.container.scrollTop);b.pageVisible=a;b.pageBreaksVisible=a;b.preferPageSize=a;b.view.validateBackground();e&&(a=b.getSelectionCells(),b.clearSelection(),b.setSelectionCells(a));b.sizeDidChange();e&&(b.container.scrollLeft=b.view.translate.x*b.view.scale-d,b.container.scrollTop=b.view.translate.y*
-b.view.scale-n);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangeGridColor(a,b){this.ui=a;this.color=b}ChangeGridColor.prototype.execute=function(){var a=this.ui.editor.graph.view.gridColor;this.ui.setGridColor(this.color);this.color=a};(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);mxCodecRegistry.register(a)})();
-function ChangePageSetup(a,b,e,d,n){this.ui=a;this.previousColor=this.color=b;this.previousImage=this.image=e;this.previousFormat=this.format=d;this.previousPageScale=this.pageScale=n;this.ignoreImage=this.ignoreColor=!1}
+EditorUi.prototype.setPageVisible=function(a){var b=this.editor.graph,e=mxUtils.hasScrollbars(b.container),d=0,l=0;e&&(d=b.view.translate.x*b.view.scale-b.container.scrollLeft,l=b.view.translate.y*b.view.scale-b.container.scrollTop);b.pageVisible=a;b.pageBreaksVisible=a;b.preferPageSize=a;b.view.validateBackground();e&&(a=b.getSelectionCells(),b.clearSelection(),b.setSelectionCells(a));b.sizeDidChange();e&&(b.container.scrollLeft=b.view.translate.x*b.view.scale-d,b.container.scrollTop=b.view.translate.y*
+b.view.scale-l);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangeGridColor(a,b){this.ui=a;this.color=b}ChangeGridColor.prototype.execute=function(){var a=this.ui.editor.graph.view.gridColor;this.ui.setGridColor(this.color);this.color=a};(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);mxCodecRegistry.register(a)})();
+function ChangePageSetup(a,b,e,d,l){this.ui=a;this.previousColor=this.color=b;this.previousImage=this.image=e;this.previousFormat=this.format=d;this.previousPageScale=this.pageScale=l;this.ignoreImage=this.ignoreColor=!1}
ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var b=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=b}this.ignoreImage||(this.image=this.previousImage,b=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=b);null!=this.previousFormat&&(this.format=this.previousFormat,b=a.pageFormat,this.previousFormat.width!=b.width||this.previousFormat.height!=b.height)&&(this.ui.setPageFormat(this.previousFormat),
this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled);null!=this.previousPageScale&&(a=this.ui.editor.graph.pageScale,this.previousPageScale!=a&&(this.ui.setPageScale(this.previousPageScale),this.previousPageScale=a))};
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat","previousPageScale"]);a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;d.previousPageScale=d.pageScale;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);return d};mxCodecRegistry.register(a)})();EditorUi.prototype.setBackgroundColor=function(a){this.editor.graph.background=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};
EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageFormatChanged"))};
EditorUi.prototype.setPageScale=function(a){this.editor.graph.pageScale=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))};EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
-EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var n=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){n.apply(this,arguments);d()};var l=this.editor.graph.cellEditor.stopEditing;
-this.editor.graph.cellEditor.stopEditing=function(a,b){l.apply(this,arguments);d()};d()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,d=!1,n=!1,l=a.getSelectionCells();if(null!=l)for(var t=0;t<l.length;t++){var q=l[t];a.getModel().isEdge(q)&&(n=!0);a.getModel().isVertex(q)&&(e=!0,0<a.getModel().getChildCount(q)||a.isContainer(q))&&(d=!0);if(n&&e)break}l="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(t=
-0;t<l.length;t++)this.actions.get(l[t]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(n);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);n=e&&1==
-a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||n&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(d);this.actions.get("removeFromGroup").setEnabled(n&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));
+EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var l=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){l.apply(this,arguments);d()};var m=this.editor.graph.cellEditor.stopEditing;
+this.editor.graph.cellEditor.stopEditing=function(a,b){m.apply(this,arguments);d()};d()};
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,d=!1,l=!1,m=a.getSelectionCells();if(null!=m)for(var u=0;u<m.length;u++){var q=m[u];a.getModel().isEdge(q)&&(l=!0);a.getModel().isVertex(q)&&(e=!0,0<a.getModel().getChildCount(q)||a.isContainer(q))&&(d=!0);if(l&&e)break}m="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(u=
+0;u<m.length;u++)this.actions.get(m[u]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(l);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);l=e&&1==
+a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||l&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(d);this.actions.get("removeFromGroup").setEnabled(l&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));
this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));b=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(b);this.actions.get("collapse").setEnabled(b);this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==a.getSelectionCount()&&
null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);b=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(b);this.menus.get("insert").setEnabled(b);this.menus.get("direction").setEnabled(b&&e);this.menus.get("align").setEnabled(b&&e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(b&&e&&1<a.getSelectionCount());this.actions.get("selectVertices").setEnabled(b);
this.actions.get("selectEdges").setEnabled(b);this.actions.get("selectAll").setEnabled(b);this.actions.get("selectNone").setEnabled(b);this.updatePasteActionStates()};EditorUi.prototype.zeroOffset=new mxPoint(0,0);EditorUi.prototype.getDiagramContainerOffset=function(){return this.zeroOffset};
-EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var b=this.container.clientWidth,e=this.container.clientHeight;this.container==document.body&&(b=document.body.clientWidth||document.documentElement.clientWidth,e=document.documentElement.clientHeight);var d=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&(d=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var n=Math.max(0,Math.min(this.hsplitPosition,b-this.splitSize-
-20)),l=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",l+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",l+=this.toolbarHeight);0<l&&(l+=1);b=0;if(null!=this.sidebarFooterContainer){var t=this.footerHeight+d,b=Math.max(0,Math.min(e-l-t,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=n+"px";this.sidebarFooterContainer.style.height=b+"px";
-this.sidebarFooterContainer.style.bottom=t+"px"}e=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=l+"px";this.sidebarContainer.style.width=n+"px";this.formatContainer.style.top=l+"px";this.formatContainer.style.width=e+"px";this.formatContainer.style.display=null!=this.format?"":"none";var t=this.getDiagramContainerOffset(),q=null!=this.hsplit.parentNode?n+this.splitSize:0;this.diagramContainer.style.left=q+t.x+"px";this.diagramContainer.style.top=l+t.y+"px";this.footerContainer.style.height=
-this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+d+"px";this.hsplit.style.left=n+"px";this.footerContainer.style.display=0==this.footerHeight?"none":"";null!=this.tabContainer&&(this.tabContainer.style.left=q+"px");0<this.footerHeight&&(this.footerContainer.style.bottom=d+"px");this.diagramContainer.style.right=e+"px";n=0;null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+d+"px",this.tabContainer.style.right=
-this.diagramContainer.style.right,n=this.tabContainer.clientHeight);this.sidebarContainer.style.bottom=this.footerHeight+b+d+"px";this.formatContainer.style.bottom=this.footerHeight+d+"px";this.diagramContainer.style.bottom=this.footerHeight+d+n+"px";a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
+EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var b=this.container.clientWidth,e=this.container.clientHeight;this.container==document.body&&(b=document.body.clientWidth||document.documentElement.clientWidth,e=document.documentElement.clientHeight);var d=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&(d=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var l=Math.max(0,Math.min(this.hsplitPosition,b-this.splitSize-
+20)),m=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",m+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",m+=this.toolbarHeight);0<m&&(m+=1);b=0;if(null!=this.sidebarFooterContainer){var u=this.footerHeight+d,b=Math.max(0,Math.min(e-m-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=l+"px";this.sidebarFooterContainer.style.height=b+"px";
+this.sidebarFooterContainer.style.bottom=u+"px"}e=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=m+"px";this.sidebarContainer.style.width=l+"px";this.formatContainer.style.top=m+"px";this.formatContainer.style.width=e+"px";this.formatContainer.style.display=null!=this.format?"":"none";var u=this.getDiagramContainerOffset(),q=null!=this.hsplit.parentNode?l+this.splitSize:0;this.diagramContainer.style.left=q+u.x+"px";this.diagramContainer.style.top=m+u.y+"px";this.footerContainer.style.height=
+this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+d+"px";this.hsplit.style.left=l+"px";this.footerContainer.style.display=0==this.footerHeight?"none":"";null!=this.tabContainer&&(this.tabContainer.style.left=q+"px");0<this.footerHeight&&(this.footerContainer.style.bottom=d+"px");this.diagramContainer.style.right=e+"px";l=0;null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+d+"px",this.tabContainer.style.right=
+this.diagramContainer.style.right,l=this.tabContainer.clientHeight);this.sidebarContainer.style.bottom=this.footerHeight+b+d+"px";this.formatContainer.style.bottom=this.footerHeight+d+"px";this.diagramContainer.style.bottom=this.footerHeight+d+l+"px";a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand"));
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.formatContainer.style.right="0px";this.formatContainer.style.zIndex="1";this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px";this.footerContainer.style.left="0px";this.footerContainer.style.right="0px";this.footerContainer.style.bottom=
"0px";this.footerContainer.style.zIndex=mxPopupMenu.prototype.zIndex-2;this.hsplit.style.width=this.splitSize+"px";if(this.sidebarFooterContainer=this.createSidebarFooterContainer())this.sidebarFooterContainer.style.left="0px";this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()};EditorUi.prototype.createSidebarFooterContainer=function(){return null};
@@ -2247,15 +2248,15 @@ this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContaine
this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
!0,0,mxUtils.bind(this,function(a){this.hsplitPosition=a;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};
EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
-EditorUi.prototype.addSplitHandler=function(a,b,e,d){function n(a){if(null!=t){var k=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,q+(b?k.x-t.x:t.y-k.y)-e));mxEvent.consume(a);q!=g()&&(c=!0,f=null)}}function l(a){n(a);t=q=null}var t=null,q=null,c=!0,f=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var g=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){t=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));q=g();c=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!c&&this.hsplitClickEnabled){var b=null!=f?f-e:0;f=g();d(b);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,n,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,n,l)})};
-EditorUi.prototype.handleError=function(a,b,e,d,n){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=b){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok");b=null!=b?b:mxResources.get("error");null!=a&&null!=a.message&&(n=mxUtils.htmlEntities(a.message));this.showError(b,n,l,e,null,null,null,null,null,null,null,null,d?e:null)}else null!=e&&e()};
-EditorUi.prototype.showError=function(a,b,e,d,n,l,t,q,c,f,g,m,k){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),d,n,l,t,m,q,c);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,f||340,g||100+20*b,!0,!1,k);a.init()};EditorUi.prototype.showDialog=function(a,b,e,d,n,l,t,q,c,f){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,n,l,t,q,c,f);this.dialogs.push(this.dialog)};
+EditorUi.prototype.addSplitHandler=function(a,b,e,d){function l(a){if(null!=u){var p=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,q+(b?p.x-u.x:u.y-p.y)-e));mxEvent.consume(a);q!=g()&&(c=!0,f=null)}}function m(a){l(a);u=q=null}var u=null,q=null,c=!0,f=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var g=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){u=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));q=g();c=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!c&&this.hsplitClickEnabled){var b=null!=f?f-e:0;f=g();d(b);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,l,m);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,l,m)})};
+EditorUi.prototype.handleError=function(a,b,e,d,l){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=b){l=mxUtils.htmlEntities(mxResources.get("unknownError"));var m=mxResources.get("ok");b=null!=b?b:mxResources.get("error");null!=a&&null!=a.message&&(l=mxUtils.htmlEntities(a.message));this.showError(b,l,m,e,null,null,null,null,null,null,null,null,d?e:null)}else null!=e&&e()};
+EditorUi.prototype.showError=function(a,b,e,d,l,m,u,q,c,f,g,k,p){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),d,l,m,u,k,q,c);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,f||340,g||100+20*b,!0,!1,p);a.init()};EditorUi.prototype.showDialog=function(a,b,e,d,l,m,u,q,c,f){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,l,m,u,q,c,f);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a,b,e){null!=this.dialogs&&0<this.dialogs.length&&(null==e||e==this.dialog.container.firstChild)&&(e=this.dialogs.pop(),0==e.close(a,b)?this.dialogs.push(e):(this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new mxEventObject("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(mxUtils.bind(this,function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?
-this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var a=this.editor.graph;if(a.isEnabled())try{for(var b=a.getSelectionCells(),e=new mxDictionary,d=[],n=0;n<b.length;n++){var l=a.isTableCell(b[n])?a.model.getParent(b[n]):b[n];null==l||e.get(l)||(e.put(l,!0),d.push(l))}a.setSelectionCells(a.duplicateCells(d,!1))}catch(t){this.handleError(t)}};
-EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),n=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),l=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(l.container,230,n,!0,!1);l.init()};
+this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var a=this.editor.graph;if(a.isEnabled())try{for(var b=a.getSelectionCells(),e=new mxDictionary,d=[],l=0;l<b.length;l++){var m=a.isTableCell(b[l])?a.model.getParent(b[l]):b[l];null==m||e.get(m)||(e.put(m,!0),d.push(m))}a.setSelectionCells(a.duplicateCells(d,!1))}catch(u){this.handleError(u)}};
+EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),l=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),m=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(m.container,230,l,!0,!1);m.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
-EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var d=a.lastIndexOf("&lt;/mxGraphModel&gt;");d>e&&(b=a.substring(e,d+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(n){}return b};
+EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var d=a.lastIndexOf("&lt;/mxGraphModel&gt;");d>e&&(b=a.substring(e,d+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(l){}return b};
EditorUi.prototype.readGraphModelFromClipboard=function(a){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){null!=b?a(b):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){if(null!=b){var d=decodeURIComponent(b);this.isCompatibleString(d)&&(b=d)}a(b)}),"text")}),"html")};
EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,b){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0<e.length&&"html"==b&&0<=mxUtils.indexOf(e[0].types,"text/html"))e[0].getType("text/html").then(mxUtils.bind(this,function(b){b.text().then(mxUtils.bind(this,function(b){try{var d=this.parseHtmlData(b),e="text/plain"!=d.getAttribute("data-type")?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);try{var q=e.lastIndexOf("%3E");
0<=q&&q<e.length-3&&(e=e.substring(0,q+3))}catch(g){}try{var c=d.getElementsByTagName("span"),f=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(f)&&(e=f)}catch(g){}}catch(g){}a(this.isCompatibleString(e)?e:null)}))["catch"](function(b){a(null)})}))["catch"](function(b){a(null)});else if(null!=e&&0<e.length&&"text"==b&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(b){b.text().then(function(b){a(b)})["catch"](function(){a(null)})})["catch"](function(){a(null)});
@@ -2268,95 +2269,95 @@ EditorUi.prototype.extractGraphModelFromEvent=function(a){var b=null,e=null;null
(b=e);return b};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())};
EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var b=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,b);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(b.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(b))).simulate(document,
"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(b);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}};
-EditorUi.prototype.executeLayout=function(a,b,e){var d=this.editor.graph;if(d.isEnabled()){d.getModel().beginUpdate();try{a()}catch(n){throw n;}finally{this.allowAnimation&&b&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("Camino"))?(a=new mxMorphing(d),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){d.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(d.getModel().endUpdate(),null!=e&&e())}}};
-EditorUi.prototype.showImageDialog=function(a,b,e,d){d=this.editor.graph.cellEditor;var n=d.saveSelection(),l=mxUtils.prompt(a,b);d.restoreSelection(n);if(null!=l&&0<l.length){var t=new Image;t.onload=function(){e(l,t.width,t.height)};t.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};t.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
+EditorUi.prototype.executeLayout=function(a,b,e){var d=this.editor.graph;if(d.isEnabled()){d.getModel().beginUpdate();try{a()}catch(l){throw l;}finally{this.allowAnimation&&b&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("Camino"))?(a=new mxMorphing(d),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){d.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(d.getModel().endUpdate(),null!=e&&e())}}};
+EditorUi.prototype.showImageDialog=function(a,b,e,d){d=this.editor.graph.cellEditor;var l=d.saveSelection(),m=mxUtils.prompt(a,b);d.restoreSelection(l);if(null!=m&&0<m.length){var u=new Image;u.onload=function(){e(m,u.width,u.height)};u.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};u.src=m}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
EditorUi.prototype.showDataDialog=function(a){null!=a&&(a=new EditDataDialog(this,a),this.showDialog(a.container,480,420,!0,!1,null,!1),a.init())};
EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var e=mxUtils.prompt(mxResources.get("backgroundImage"),null!=b?b.src:"");null!=e&&0<e.length?(b=new Image,b.onload=function(){a(new mxImage(e,b.width,b.height),!1)},b.onerror=function(){a(null,!0);mxUtils.alert(mxResources.get("fileNotFound"))},b.src=e):a(null)};
EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,b,e){mxUtils.confirm(a)?null!=b&&b():null!=e&&e()};
EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.graph);b.border=20;mxEvent.addListener(window,"resize",function(){b.update()});this.addListener("pageFormatChanged",function(){b.update()});return b};EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize",66:"copyData",69:"pasteData"};
-EditorUi.prototype.createKeyHandler=function(a){function b(a,c,b){t.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(c=null!=c?c:1,b){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++)if(d.getModel().isVertex(f[g])&&d.isCellResizable(f[g])){var e=d.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),d.getModel().setGeometry(f[g],e))}}finally{d.getModel().endUpdate()}}else{var k=
-d.getSelectionCell(),e=d.model.getParent(k),f=null;1==d.getSelectionCount()&&d.model.isVertex(k)&&null!=d.layoutManager&&!d.isCellLocked(k)&&(f=d.layoutManager.getLayout(e));if(null!=f&&f.constructor==mxStackLayout)f=e.getIndex(k),37==a||38==a?d.model.add(e,k,Math.max(0,f-1)):39!=a&&40!=a||d.model.add(e,k,Math.min(d.model.getChildCount(e),f+1));else{f=d.getMovableCells(d.getSelectionCells());k=[];for(g=0;g<f.length;g++)e=d.getCurrentCellStyle(f[g]),"1"==mxUtils.getValue(e,"part","0")?(e=d.model.getParent(f[g]),
-d.model.isVertex(e)&&0>mxUtils.indexOf(f,e)&&k.push(e)):k.push(f[g]);0<k.length&&(f=e=0,37==a?e=-c:38==a?f=-c:39==a?e=c:40==a&&(f=c),d.moveCells(k,e,f))}}});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<t.length){d.getModel().beginUpdate();try{for(var a=0;a<t.length;a++)t[a]();t=[]}finally{d.getModel().endUpdate()}}},200)}var e=this,d=this.editor.graph,n=new mxKeyHandler(d),l=n.isEventIgnored;n.isEventIgnored=function(a){return!(mxEvent.isShiftDown(a)&&9==a.keyCode)&&(!this.isControlDown(a)||
-mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&l.apply(this,arguments)};n.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};n.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var t=[],q=
-null,c={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},f=n.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var g=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=g)return g.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return d.cellEditor.isContentEditing()?function(){document.execCommand("outdent",!1,null)}:mxEvent.isShiftDown(a)?function(){d.selectParentCell()}:
+EditorUi.prototype.createKeyHandler=function(a){function b(a,c,b){u.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(c=null!=c?c:1,b){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++)if(d.getModel().isVertex(f[g])&&d.isCellResizable(f[g])){var e=d.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),d.getModel().setGeometry(f[g],e))}}finally{d.getModel().endUpdate()}}else{var p=
+d.getSelectionCell(),e=d.model.getParent(p),f=null;1==d.getSelectionCount()&&d.model.isVertex(p)&&null!=d.layoutManager&&!d.isCellLocked(p)&&(f=d.layoutManager.getLayout(e));if(null!=f&&f.constructor==mxStackLayout)f=e.getIndex(p),37==a||38==a?d.model.add(e,p,Math.max(0,f-1)):39!=a&&40!=a||d.model.add(e,p,Math.min(d.model.getChildCount(e),f+1));else{f=d.getMovableCells(d.getSelectionCells());p=[];for(g=0;g<f.length;g++)e=d.getCurrentCellStyle(f[g]),"1"==mxUtils.getValue(e,"part","0")?(e=d.model.getParent(f[g]),
+d.model.isVertex(e)&&0>mxUtils.indexOf(f,e)&&p.push(e)):p.push(f[g]);0<p.length&&(f=e=0,37==a?e=-c:38==a?f=-c:39==a?e=c:40==a&&(f=c),d.moveCells(p,e,f))}}});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<u.length){d.getModel().beginUpdate();try{for(var a=0;a<u.length;a++)u[a]();u=[]}finally{d.getModel().endUpdate()}}},200)}var e=this,d=this.editor.graph,l=new mxKeyHandler(d),m=l.isEventIgnored;l.isEventIgnored=function(a){return!(mxEvent.isShiftDown(a)&&9==a.keyCode)&&(!this.isControlDown(a)||
+mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&m.apply(this,arguments)};l.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};l.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var u=[],q=
+null,c={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},f=l.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var g=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=g)return g.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return d.cellEditor.isContentEditing()?function(){document.execCommand("outdent",!1,null)}:mxEvent.isShiftDown(a)?function(){d.selectParentCell()}:
function(){d.selectChildCell()};if(null!=c[a.keyCode]&&!d.isSelectionEmpty())if(!this.isControlDown(a)&&mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var b=d.connectVertex(d.getSelectionCell(),c[a.keyCode],d.defaultEdgeLength,a,!0);null!=b&&0<b.length&&(1==b.length&&d.model.isEdge(b[0])?d.setSelectionCell(d.model.getTerminal(b[0],!1)):d.setSelectionCell(b[b.length-1]),d.scrollCellToVisible(d.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?
-function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return f.apply(this,arguments)};n.bindAction=mxUtils.bind(this,function(a,c,b,d){var f=this.actions.get(b);null!=f&&(b=function(){f.isEnabled()&&f.funct()},c?d?n.bindControlShiftKey(a,b):n.bindControlKey(a,b):d?n.bindShiftKey(a,b):n.bindKey(a,b))});var g=this,m=n.escape;n.escape=function(a){m.apply(this,arguments)};n.enter=function(){};n.bindControlShiftKey(36,function(){d.exitGroup()});
-n.bindControlShiftKey(35,function(){d.enterGroup()});n.bindShiftKey(36,function(){d.home()});n.bindKey(35,function(){d.refresh()});n.bindAction(107,!0,"zoomIn");n.bindAction(109,!0,"zoomOut");n.bindAction(80,!0,"print");n.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)n.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),n.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),n.bindControlKey(13,function(){g.ctrlEnter()}),n.bindAction(8,!1,"delete"),
-n.bindAction(8,!0,"deleteAll"),n.bindAction(8,!1,"deleteLabels",!0),n.bindAction(46,!1,"delete"),n.bindAction(46,!0,"deleteAll"),n.bindAction(46,!1,"deleteLabels",!0),n.bindAction(36,!1,"resetView"),n.bindAction(72,!0,"fitWindow",!0),n.bindAction(74,!0,"fitPage"),n.bindAction(74,!0,"fitTwoPages",!0),n.bindAction(48,!0,"customZoom"),n.bindAction(82,!0,"turn"),n.bindAction(82,!0,"clearDefaultStyle",!0),n.bindAction(83,!0,"save"),n.bindAction(83,!0,"saveAs",!0),n.bindAction(65,!0,"selectAll"),n.bindAction(65,
-!0,"selectNone",!0),n.bindAction(73,!0,"selectVertices",!0),n.bindAction(69,!0,"selectEdges",!0),n.bindAction(69,!0,"editStyle"),n.bindAction(66,!0,"bold"),n.bindAction(66,!0,"toBack",!0),n.bindAction(70,!0,"toFront",!0),n.bindAction(68,!0,"duplicate"),n.bindAction(68,!0,"setAsDefaultStyle",!0),n.bindAction(90,!0,"undo"),n.bindAction(89,!0,"autosize",!0),n.bindAction(88,!0,"cut"),n.bindAction(67,!0,"copy"),n.bindAction(86,!0,"paste"),n.bindAction(71,!0,"group"),n.bindAction(77,!0,"editData"),n.bindAction(71,
-!0,"grid",!0),n.bindAction(73,!0,"italic"),n.bindAction(76,!0,"lockUnlock"),n.bindAction(76,!0,"layers",!0),n.bindAction(80,!0,"formatPanel",!0),n.bindAction(85,!0,"underline"),n.bindAction(85,!0,"ungroup",!0),n.bindAction(190,!0,"superscript"),n.bindAction(188,!0,"subscript"),n.bindAction(9,!1,"indent",!0),n.bindKey(13,function(){d.isEnabled()&&d.startEditingAtCell()}),n.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?n.bindAction(89,!0,"redo"):n.bindAction(90,!0,"redo",
-!0);return n};
+function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return f.apply(this,arguments)};l.bindAction=mxUtils.bind(this,function(a,c,b,d){var f=this.actions.get(b);null!=f&&(b=function(){f.isEnabled()&&f.funct()},c?d?l.bindControlShiftKey(a,b):l.bindControlKey(a,b):d?l.bindShiftKey(a,b):l.bindKey(a,b))});var g=this,k=l.escape;l.escape=function(a){k.apply(this,arguments)};l.enter=function(){};l.bindControlShiftKey(36,function(){d.exitGroup()});
+l.bindControlShiftKey(35,function(){d.enterGroup()});l.bindShiftKey(36,function(){d.home()});l.bindKey(35,function(){d.refresh()});l.bindAction(107,!0,"zoomIn");l.bindAction(109,!0,"zoomOut");l.bindAction(80,!0,"print");l.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)l.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),l.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),l.bindControlKey(13,function(){g.ctrlEnter()}),l.bindAction(8,!1,"delete"),
+l.bindAction(8,!0,"deleteAll"),l.bindAction(8,!1,"deleteLabels",!0),l.bindAction(46,!1,"delete"),l.bindAction(46,!0,"deleteAll"),l.bindAction(46,!1,"deleteLabels",!0),l.bindAction(36,!1,"resetView"),l.bindAction(72,!0,"fitWindow",!0),l.bindAction(74,!0,"fitPage"),l.bindAction(74,!0,"fitTwoPages",!0),l.bindAction(48,!0,"customZoom"),l.bindAction(82,!0,"turn"),l.bindAction(82,!0,"clearDefaultStyle",!0),l.bindAction(83,!0,"save"),l.bindAction(83,!0,"saveAs",!0),l.bindAction(65,!0,"selectAll"),l.bindAction(65,
+!0,"selectNone",!0),l.bindAction(73,!0,"selectVertices",!0),l.bindAction(69,!0,"selectEdges",!0),l.bindAction(69,!0,"editStyle"),l.bindAction(66,!0,"bold"),l.bindAction(66,!0,"toBack",!0),l.bindAction(70,!0,"toFront",!0),l.bindAction(68,!0,"duplicate"),l.bindAction(68,!0,"setAsDefaultStyle",!0),l.bindAction(90,!0,"undo"),l.bindAction(89,!0,"autosize",!0),l.bindAction(88,!0,"cut"),l.bindAction(67,!0,"copy"),l.bindAction(86,!0,"paste"),l.bindAction(71,!0,"group"),l.bindAction(77,!0,"editData"),l.bindAction(71,
+!0,"grid",!0),l.bindAction(73,!0,"italic"),l.bindAction(76,!0,"lockUnlock"),l.bindAction(76,!0,"layers",!0),l.bindAction(80,!0,"formatPanel",!0),l.bindAction(85,!0,"underline"),l.bindAction(85,!0,"ungroup",!0),l.bindAction(190,!0,"superscript"),l.bindAction(188,!0,"subscript"),l.bindAction(9,!1,"indent",!0),l.bindKey(13,function(){d.isEnabled()&&d.startEditingAtCell()}),l.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?l.bindAction(89,!0,"redo"):l.bindAction(90,!0,"redo",
+!0);return l};
EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&(this.menubar.destroy(),this.menubar=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null);null!=this.sidebar&&(this.sidebar.destroy(),this.sidebar=null);null!=this.keyHandler&&(this.keyHandler.destroy(),this.keyHandler=null);null!=this.keydownHandler&&(mxEvent.removeListener(document,"keydown",this.keydownHandler),this.keydownHandler=null);null!=this.keyupHandler&&(mxEvent.removeListener(document,
"keyup",this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window,"scroll",this.scrollHandler),
this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);(function(){var a=[["nbsp","160"],["shy","173"]],b=mxUtils.parseXml;mxUtils.parseXml=function(e){for(var d=0;d<a.length;d++)e=e.replace(new RegExp("&"+a[d][0]+";","g"),"&#"+a[d][1]+";");return b(e)}})();
Date.prototype.toISOString||function(){function a(a){a=String(a);1===a.length&&(a="0"+a);return a}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1E3).toFixed(3)).slice(2,5)+"Z"}}();Date.now||(Date.now=function(){return(new Date).getTime()});
-Uint8Array.from||(Uint8Array.from=function(){var a=Object.prototype.toString,b=function(b){return"function"===typeof b||"[object Function]"===a.call(b)},e=Math.pow(2,53)-1;return function(a){var d=Object(a);if(null==a)throw new TypeError("Array.from requires an array-like object - not null or undefined");var l=1<arguments.length?arguments[1]:void 0,t;if("undefined"!==typeof l){if(!b(l))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(t=
-arguments[2])}var q;q=Number(d.length);q=isNaN(q)?0:0!==q&&isFinite(q)?(0<q?1:-1)*Math.floor(Math.abs(q)):q;q=Math.min(Math.max(q,0),e);for(var c=b(this)?Object(new this(q)):Array(q),f=0,g;f<q;)g=d[f],c[f]=l?"undefined"===typeof t?l(g,f):l.call(t,g,f):g,f+=1;c.length=q;return c}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
+Uint8Array.from||(Uint8Array.from=function(){var a=Object.prototype.toString,b=function(b){return"function"===typeof b||"[object Function]"===a.call(b)},e=Math.pow(2,53)-1;return function(a){var d=Object(a);if(null==a)throw new TypeError("Array.from requires an array-like object - not null or undefined");var m=1<arguments.length?arguments[1]:void 0,u;if("undefined"!==typeof m){if(!b(m))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(u=
+arguments[2])}var q;q=Number(d.length);q=isNaN(q)?0:0!==q&&isFinite(q)?(0<q?1:-1)*Math.floor(Math.abs(q)):q;q=Math.min(Math.max(q,0),e);for(var c=b(this)?Object(new this(q)):Array(q),f=0,g;f<q;)g=d[f],c[f]=m?"undefined"===typeof u?m(g,f):m.call(u,g,f):g,f+=1;c.length=q;return c}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.defaultGridColor="#d0d0d0";mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultGridColor;mxGraphView.prototype.unit=mxConstants.POINTS;
mxGraphView.prototype.setUnit=function(a){this.unit!=a&&(this.unit=a,this.fireEvent(new mxEventObject("unitChanged","unit",a)))};mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";mxShape.prototype.getConstraints=function(a,b,e){return null};
mxImageShape.prototype.getImageDataUri=function(){var a=this.image;if("data:image/svg+xml;base64,"==a.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=a)this.clippedSvg=Graph.clipSvgDataUri(a),this.clippedImage=a;a=this.clippedSvg}return a};
-Graph=function(a,b,e,d,n,l){mxGraph.call(this,a,b,e,d);this.themes=n||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=l?l:!1;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){a=this.getCurrentCellStyle(a);
-return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var t=null,q=null,c=null,f=null,g=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event"),e=d.getState();if(!mxEvent.isAltDown(d.getEvent())&&null!=e)if(this.model.isEdge(e.cell))if(t=new mxPoint(d.getGraphX(),d.getGraphY()),g=this.isCellSelected(e.cell),c=e,q=d,null!=e.text&&null!=e.text.boundingBox&&
-mxUtils.contains(e.text.boundingBox,d.getGraphX(),d.getGraphY()))f=mxEvent.LABEL_HANDLE;else{var x=this.selectionCellsHandler.getHandler(e.cell);null!=x&&null!=x.bends&&0<x.bends.length&&(f=x.getHandleForEvent(d))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&&(x=this.selectionCellsHandler.getHandler(e.cell),null==x||null==x.getHandleForEvent(d))){var k=new mxRectangle(d.getGraphX()-1,d.getGraphY()-1);k.grow(mxEvent.isTouchEvent(d.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(e.cell)&&!this.isCellSelected(e.cell)){var m=this.model.getParent(e.cell),x=this.model.getParent(m);if(!this.isCellSelected(x)&&(mxUtils.intersects(k,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(x,0)!=m||mxUtils.intersects(k,new mxRectangle(e.x,e.y+e.height-2,e.width,3))||mxUtils.intersects(k,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(m,0)!=e.cell||mxUtils.intersects(k,new mxRectangle(e.x+e.width-
-2,e.y,2,e.height)))&&(m=this.selectionCellsHandler.isHandled(x),this.selectCellForEvent(x,d.getEvent()),x=this.selectionCellsHandler.getHandler(x),null!=x)){var p=x.getHandleForEvent(d);null!=p&&(x.start(d.getGraphX(),d.getGraphY(),p),x.blockDelayedSelection=!m,d.consume())}}for(;!d.isConsumed()&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));)this.isSwimlane(e.cell)&&(x=this.getActualStartSize(e.cell),m=this.view.scale,(0<x.x||0<x.width)&&mxUtils.intersects(k,
-new mxRectangle(e.x+(x.x-x.width-1)*m+(0==x.x?e.width:0),e.y,1,e.height))||(0<x.y||0<x.height)&&mxUtils.intersects(k,new mxRectangle(e.x,e.y+(x.y-x.height-1)*m+(0==x.y?e.height:0),e.width,1)))&&(this.selectCellForEvent(e.cell,d.getEvent()),x=this.selectionCellsHandler.getHandler(e.cell),null!=x&&(p=mxEvent.CUSTOM_HANDLE-x.customHandles.length+1,x.start(d.getGraphX(),d.getGraphY(),p),d.consume())),e=this.view.getState(this.model.getParent(e.cell))}}}));this.addMouseListener({mouseDown:function(a,c){},
-mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,e;for(e in d)if(null!=d[e].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(b.getEvent()))if(e=this.tolerance,null!=t&&null!=c&&null!=q){if(d=c,Math.abs(t.x-b.getGraphX())>e||Math.abs(t.y-b.getGraphY())>e){var x=this.selectionCellsHandler.getHandler(d.cell);null==x&&this.model.isEdge(d.cell)&&(x=this.createHandler(d));if(null!=x&&null!=x.bends&&0<x.bends.length){e=x.getHandleForEvent(q);
-var k=this.view.getEdgeStyle(d),m=k==mxEdgeStyle.EntityRelation;g||f!=mxEvent.LABEL_HANDLE||(e=f);if(m&&0!=e&&e!=x.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!m||null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==x.bends.length-1||null!=d.visibleTargetState)m||e==mxEvent.LABEL_HANDLE||(m=d.absolutePoints,null!=m&&(null==k&&null==e||k==mxEdgeStyle.OrthConnector)&&(e=f,null==e&&(e=new mxRectangle(t.x,
-t.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,m[0].x,m[0].y)?e=0:mxUtils.contains(e,m[m.length-1].x,m[m.length-1].y)?e=x.bends.length-1:null!=k&&(2==m.length||3==m.length&&(0==Math.round(m[0].x-m[1].x)&&0==Math.round(m[1].x-m[2].x)||0==Math.round(m[0].y-m[1].y)&&0==Math.round(m[1].y-m[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,t.x,t.y),e=null==k?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),x.start(b.getGraphX(),b.getGraphX(),e),b.consume(),this.graphHandler.reset()}null!=
-x&&(this.selectionCellsHandler.isHandlerActive(x)?this.isCellSelected(d.cell)||(this.selectionCellsHandler.handlers.put(d.cell,x),this.selectCellForEvent(d.cell,b.getEvent())):this.isCellSelected(d.cell)||x.destroy());g=!1;t=q=c=f=null}}else if(d=b.getState(),null!=d){x=null;if(this.model.isEdge(d.cell)){if(e=new mxRectangle(b.getGraphX(),b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),m=d.absolutePoints,null!=m)if(null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,
-b.getGraphX(),b.getGraphY()))x="move";else if(mxUtils.contains(e,m[0].x,m[0].y)||mxUtils.contains(e,m[m.length-1].x,m[m.length-1].y))x="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)e=this.view.getEdgeStyle(d),x="crosshair",e!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(e=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),e<m.length-1&&0<=e&&(x=0==Math.round(m[e].x-m[e+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){e=new mxRectangle(b.getGraphX()-
-1,b.getGraphY()-1);e.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(d.cell)&&(m=this.model.getParent(d.cell),k=this.model.getParent(m),!this.isCellSelected(k)))if(mxUtils.intersects(e,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(m,0)!=d.cell||mxUtils.intersects(e,new mxRectangle(d.x+d.width-2,d.y,2,d.height)))x="col-resize";else if(mxUtils.intersects(e,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(k,0)!=m||mxUtils.intersects(e,new mxRectangle(d.x,
-d.y+d.height-2,d.width,3)))x="row-resize";for(m=d;null==x&&null!=m&&(this.isTableCell(m.cell)||this.isTableRow(m.cell)||this.isTable(m.cell));){if(this.isSwimlane(m.cell)){var k=this.getActualStartSize(m.cell),p=this.view.scale;(0<k.x||0<k.width)&&mxUtils.intersects(e,new mxRectangle(m.x+(k.x-k.width-1)*p+(0==k.x?m.width*p:0),m.y,1,m.height))?x="col-resize":(0<k.y||0<k.height)&&mxUtils.intersects(e,new mxRectangle(m.x,m.y+(k.y-k.height-1)*p+(0==k.y?m.height:0),m.width,1))&&(x="row-resize")}m=this.view.getState(this.model.getParent(m.cell))}}null!=
-x&&d.setCursor(x)}}),mouseUp:mxUtils.bind(this,function(a,b){f=t=q=c=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=
-this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var a=m.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,
-d=this.graph.pageScale,f=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)c.push(new mxRectangle(((g.x+k)*f+d.x)*e,(g.y*b+d.y)*e,f*e,b*e));for(k=1;k<g.height;k++)c.push(new mxRectangle((g.x*f+d.x)*e,((g.y+k)*b+d.y)*e,f*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=
-function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var k=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var c=k.apply(this,arguments),b=new mxDictionary,d=[],f=0;f<c.length;f++){var e=this.graph.isTableCell(a)&&this.graph.isTableCell(c[f])&&this.graph.isCellSelected(c[f])?this.graph.model.getParent(c[f]):this.graph.isTableRow(a)&&this.graph.isTableRow(c[f])&&
-this.graph.isCellSelected(c[f])?c[f]:this.graph.getCompositeParent(c[f]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}return d};var p=this.graphHandler.start;this.graphHandler.start=function(a,c,b,d){var f=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?f=!0:a=this.graph.model.getParent(a));f||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));p.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,c){c=this.graph.getCompositeParent(c);
-return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var A=(new Date).getTime(),F=0,z=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;z.apply(this,arguments);a!=this.currentState?(A=(new Date).getTime(),F=0):F=(new Date).getTime()-A};var y=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=
-this.currentState&&a.getState()==this.currentState&&2E3<F||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&y.apply(this,arguments)};var M=this.isToggleEvent;this.isToggleEvent=function(a){return M.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var L=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(a){return L.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&
-mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var I=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(I=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=I)}));this.popupMenuHandler.autoExpand=
-!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var G=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return G.apply(this,arguments);var b=c?a.sourceState.cell:a.getCell();null!=b&&(b=this.getClickableLinkForCell(b),null!=b&&(this.isCustomLink(b)?this.customLinkClicked(b):this.openLink(b)));this.isEnabled()&&c&&this.clearSelection()};this.tooltipHandler.getStateForEvent=
-function(a){return a.sourceState};var K=this.tooltipHandler.show;this.tooltipHandler.show=function(){K.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),c=0;c<a.length;c++)null!=a[c].getAttribute("href")&&null==a[c].getAttribute("target")&&a[c].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);
-return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var E=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return E.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getCells(a.x,a.y,a.width,a.height,null,null,null,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);this.selectCellsForEvent(b,c);return b};var J=
-this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,b){return this.graph.isCellSelected(a)?!1:J.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),"locked","0"))return!0;a=this.model.getParent(a)}return!1};var H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var b=c.getProperty("event").getState();H=null==
-b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var b=c.getProperty("event"),d=c.getProperty("cell");null==d?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),u.start(b.x,b.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);H=null;c.consume()}}));this.connectionHandler.selectCells=
+Graph=function(a,b,e,d,l,m){mxGraph.call(this,a,b,e,d);this.themes=l||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=m?m:!1;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){a=this.getCurrentCellStyle(a);
+return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var u=null,q=null,c=null,f=null,g=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event"),e=d.getState();if(!mxEvent.isAltDown(d.getEvent())&&null!=e)if(this.model.isEdge(e.cell))if(u=new mxPoint(d.getGraphX(),d.getGraphY()),g=this.isCellSelected(e.cell),c=e,q=d,null!=e.text&&null!=e.text.boundingBox&&
+mxUtils.contains(e.text.boundingBox,d.getGraphX(),d.getGraphY()))f=mxEvent.LABEL_HANDLE;else{var n=this.selectionCellsHandler.getHandler(e.cell);null!=n&&null!=n.bends&&0<n.bends.length&&(f=n.getHandleForEvent(d))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&&(n=this.selectionCellsHandler.getHandler(e.cell),null==n||null==n.getHandleForEvent(d))){var p=new mxRectangle(d.getGraphX()-1,d.getGraphY()-1);p.grow(mxEvent.isTouchEvent(d.getEvent())?mxShape.prototype.svgStrokeTolerance-
+1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(e.cell)&&!this.isCellSelected(e.cell)){var k=this.model.getParent(e.cell),n=this.model.getParent(k);if(!this.isCellSelected(n)&&(mxUtils.intersects(p,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(n,0)!=k||mxUtils.intersects(p,new mxRectangle(e.x,e.y+e.height-2,e.width,3))||mxUtils.intersects(p,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(k,0)!=e.cell||mxUtils.intersects(p,new mxRectangle(e.x+e.width-
+2,e.y,2,e.height)))&&(k=this.selectionCellsHandler.isHandled(n),this.selectCellForEvent(n,d.getEvent()),n=this.selectionCellsHandler.getHandler(n),null!=n)){var t=n.getHandleForEvent(d);null!=t&&(n.start(d.getGraphX(),d.getGraphY(),t),n.blockDelayedSelection=!k,d.consume())}}for(;!d.isConsumed()&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));)this.isSwimlane(e.cell)&&(n=this.getActualStartSize(e.cell),k=this.view.scale,(0<n.x||0<n.width)&&mxUtils.intersects(p,
+new mxRectangle(e.x+(n.x-n.width-1)*k+(0==n.x?e.width:0),e.y,1,e.height))||(0<n.y||0<n.height)&&mxUtils.intersects(p,new mxRectangle(e.x,e.y+(n.y-n.height-1)*k+(0==n.y?e.height:0),e.width,1)))&&(this.selectCellForEvent(e.cell,d.getEvent()),n=this.selectionCellsHandler.getHandler(e.cell),null!=n&&(t=mxEvent.CUSTOM_HANDLE-n.customHandles.length+1,n.start(d.getGraphX(),d.getGraphY(),t),d.consume())),e=this.view.getState(this.model.getParent(e.cell))}}}));this.addMouseListener({mouseDown:function(a,c){},
+mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,e;for(e in d)if(null!=d[e].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(b.getEvent()))if(e=this.tolerance,null!=u&&null!=c&&null!=q){if(d=c,Math.abs(u.x-b.getGraphX())>e||Math.abs(u.y-b.getGraphY())>e){var n=this.selectionCellsHandler.getHandler(d.cell);null==n&&this.model.isEdge(d.cell)&&(n=this.createHandler(d));if(null!=n&&null!=n.bends&&0<n.bends.length){e=n.getHandleForEvent(q);
+var p=this.view.getEdgeStyle(d),k=p==mxEdgeStyle.EntityRelation;g||f!=mxEvent.LABEL_HANDLE||(e=f);if(k&&0!=e&&e!=n.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!k||null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==n.bends.length-1||null!=d.visibleTargetState)k||e==mxEvent.LABEL_HANDLE||(k=d.absolutePoints,null!=k&&(null==p&&null==e||p==mxEdgeStyle.OrthConnector)&&(e=f,null==e&&(e=new mxRectangle(u.x,
+u.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,k[0].x,k[0].y)?e=0:mxUtils.contains(e,k[k.length-1].x,k[k.length-1].y)?e=n.bends.length-1:null!=p&&(2==k.length||3==k.length&&(0==Math.round(k[0].x-k[1].x)&&0==Math.round(k[1].x-k[2].x)||0==Math.round(k[0].y-k[1].y)&&0==Math.round(k[1].y-k[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,u.x,u.y),e=null==p?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),n.start(b.getGraphX(),b.getGraphX(),e),b.consume(),this.graphHandler.reset()}null!=
+n&&(this.selectionCellsHandler.isHandlerActive(n)?this.isCellSelected(d.cell)||(this.selectionCellsHandler.handlers.put(d.cell,n),this.selectCellForEvent(d.cell,b.getEvent())):this.isCellSelected(d.cell)||n.destroy());g=!1;u=q=c=f=null}}else if(d=b.getState(),null!=d){n=null;if(this.model.isEdge(d.cell)){if(e=new mxRectangle(b.getGraphX(),b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),k=d.absolutePoints,null!=k)if(null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,
+b.getGraphX(),b.getGraphY()))n="move";else if(mxUtils.contains(e,k[0].x,k[0].y)||mxUtils.contains(e,k[k.length-1].x,k[k.length-1].y))n="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)e=this.view.getEdgeStyle(d),n="crosshair",e!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(e=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),e<k.length-1&&0<=e&&(n=0==Math.round(k[e].x-k[e+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){e=new mxRectangle(b.getGraphX()-
+1,b.getGraphY()-1);e.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(d.cell)&&(k=this.model.getParent(d.cell),p=this.model.getParent(k),!this.isCellSelected(p)))if(mxUtils.intersects(e,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(k,0)!=d.cell||mxUtils.intersects(e,new mxRectangle(d.x+d.width-2,d.y,2,d.height)))n="col-resize";else if(mxUtils.intersects(e,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(p,0)!=k||mxUtils.intersects(e,new mxRectangle(d.x,
+d.y+d.height-2,d.width,3)))n="row-resize";for(k=d;null==n&&null!=k&&(this.isTableCell(k.cell)||this.isTableRow(k.cell)||this.isTable(k.cell));){if(this.isSwimlane(k.cell)){var p=this.getActualStartSize(k.cell),t=this.view.scale;(0<p.x||0<p.width)&&mxUtils.intersects(e,new mxRectangle(k.x+(p.x-p.width-1)*t+(0==p.x?k.width*t:0),k.y,1,k.height))?n="col-resize":(0<p.y||0<p.height)&&mxUtils.intersects(e,new mxRectangle(k.x,k.y+(p.y-p.height-1)*t+(0==p.y?k.height:0),k.width,1))&&(n="row-resize")}k=this.view.getState(this.model.getParent(k.cell))}}null!=
+n&&d.setCursor(n)}}),mouseUp:mxUtils.bind(this,function(a,b){f=u=q=c=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=
+this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var k=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var a=k.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,
+d=this.graph.pageScale,f=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,g=this.graph.getPageLayout(),p=0;p<g.width;p++)c.push(new mxRectangle(((g.x+p)*f+d.x)*e,(g.y*b+d.y)*e,f*e,b*e));for(p=1;p<g.height;p++)c.push(new mxRectangle((g.x*f+d.x)*e,((g.y+p)*b+d.y)*e,f*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=
+function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var p=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var c=p.apply(this,arguments),b=new mxDictionary,d=[],f=0;f<c.length;f++){var e=this.graph.isTableCell(a)&&this.graph.isTableCell(c[f])&&this.graph.isCellSelected(c[f])?this.graph.model.getParent(c[f]):this.graph.isTableRow(a)&&this.graph.isTableRow(c[f])&&
+this.graph.isCellSelected(c[f])?c[f]:this.graph.getCompositeParent(c[f]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}return d};var t=this.graphHandler.start;this.graphHandler.start=function(a,c,b,d){var f=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?f=!0:a=this.graph.model.getParent(a));f||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));t.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,c){c=this.graph.getCompositeParent(c);
+return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);this.getRubberband=function(){return v};var A=(new Date).getTime(),F=0,y=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;y.apply(this,arguments);a!=this.currentState?(A=(new Date).getTime(),F=0):F=(new Date).getTime()-A};var z=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=
+this.currentState&&a.getState()==this.currentState&&2E3<F||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&z.apply(this,arguments)};var L=this.isToggleEvent;this.isToggleEvent=function(a){return L.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var M=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(a){return M.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&
+mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var G=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(G=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=G)}));this.popupMenuHandler.autoExpand=
+!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var J=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return J.apply(this,arguments);var b=c?a.sourceState.cell:a.getCell();null!=b&&(b=this.getClickableLinkForCell(b),null!=b&&(this.isCustomLink(b)?this.customLinkClicked(b):this.openLink(b)));this.isEnabled()&&c&&this.clearSelection()};this.tooltipHandler.getStateForEvent=
+function(a){return a.sourceState};var H=this.tooltipHandler.show;this.tooltipHandler.show=function(){H.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),c=0;c<a.length;c++)null!=a[c].getAttribute("href")&&null==a[c].getAttribute("target")&&a[c].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);
+return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var D=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return D.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getCells(a.x,a.y,a.width,a.height,null,null,null,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);this.selectCellsForEvent(b,c);return b};var K=
+this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,b){return this.graph.isCellSelected(a)?!1:K.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),"locked","0"))return!0;a=this.model.getParent(a)}return!1};var I=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var b=c.getProperty("event").getState();I=null==
+b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var b=c.getProperty("event"),d=c.getProperty("cell");null==d?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),v.start(b.x,b.y)):null!=I?this.addSelectionCells(I):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);I=null;c.consume()}}));this.connectionHandler.selectCells=
function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){var b=a.view.graph;return c&&(b.isCellSelected(a.cell)||b.isTableRow(a.cell)&&b.selectionCellsHandler.isHandled(b.model.getParent(a.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));
-Graph.touchStyle&&this.initTouch();var X=this.updateMouseEvent;this.updateMouseEvent=function(a){a=X.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
+Graph.touchStyle&&this.initTouch();var R=this.updateMouseEvent;this.updateMouseEvent=function(a){a=R.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";
Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
-Graph.createSvgImage=function(a,b,e,d,n){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" '+(null!=d&&null!=n?'viewBox="0 0 '+d+" "+n+'" ':"")+'version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)};
-Graph.zapGremlins=function(a){for(var b=0,e=[],d=0;d<a.length;d++){var n=a.charCodeAt(d);(32<=n||9==n||10==n||13==n)&&65535!=n&&65534!=n||(e.push(a.substring(b,d)),b=d+1)}0<b&&b<a.length&&e.push(a.substring(b));return 0==e.length?a:e.join("")};Graph.stringToBytes=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=a.charCodeAt(e);return b};Graph.bytesToString=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=String.fromCharCode(a[e]);return b.join("")};
+Graph.createSvgImage=function(a,b,e,d,l){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" '+(null!=d&&null!=l?'viewBox="0 0 '+d+" "+l+'" ':"")+'version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)};
+Graph.zapGremlins=function(a){for(var b=0,e=[],d=0;d<a.length;d++){var l=a.charCodeAt(d);(32<=l||9==l||10==l||13==l)&&65535!=l&&65534!=l||(e.push(a.substring(b,d)),b=d+1)}0<b&&b<a.length&&e.push(a.substring(b));return 0==e.length?a:e.join("")};Graph.stringToBytes=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=a.charCodeAt(e);return b};Graph.bytesToString=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=String.fromCharCode(a[e]);return b.join("")};
Graph.base64EncodeUnicode=function(a){return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,function(a,e){return String.fromCharCode(parseInt(e,16))}))};Graph.base64DecodeUnicode=function(a){return decodeURIComponent(Array.prototype.map.call(atob(a),function(a){return"%"+("00"+a.charCodeAt(0).toString(16)).slice(-2)}).join(""))};Graph.compressNode=function(a,b){var e=mxUtils.getXml(a);return Graph.compress(b?e:Graph.zapGremlins(e))};
Graph.arrayBufferToString=function(a){var b="";a=new Uint8Array(a);for(var e=a.byteLength,d=0;d<e;d++)b+=String.fromCharCode(a[d]);return b};Graph.stringToArrayBuffer=function(a){return Uint8Array.from(a,function(a){return a.charCodeAt(0)})};
-Graph.arrayBufferIndexOfString=function(a,b,e){var d=b.charCodeAt(0),n=1,l=-1;for(e=e||0;e<a.byteLength;e++)if(a[e]==d){l=e;break}for(e=l+1;-1<l&&e<a.byteLength&&e<l+b.length-1;e++){if(a[e]!=b.charCodeAt(n))return Graph.arrayBufferIndexOfString(a,b,l+1);n++}return n==b.length-1?l:-1};Graph.compress=function(a,b){if(null==a||0==a.length||"undefined"===typeof pako)return a;var e=b?pako.deflate(encodeURIComponent(a)):pako.deflateRaw(encodeURIComponent(a));return btoa(Graph.arrayBufferToString(new Uint8Array(e)))};
+Graph.arrayBufferIndexOfString=function(a,b,e){var d=b.charCodeAt(0),l=1,m=-1;for(e=e||0;e<a.byteLength;e++)if(a[e]==d){m=e;break}for(e=m+1;-1<m&&e<a.byteLength&&e<m+b.length-1;e++){if(a[e]!=b.charCodeAt(l))return Graph.arrayBufferIndexOfString(a,b,m+1);l++}return l==b.length-1?m:-1};Graph.compress=function(a,b){if(null==a||0==a.length||"undefined"===typeof pako)return a;var e=b?pako.deflate(encodeURIComponent(a)):pako.deflateRaw(encodeURIComponent(a));return btoa(Graph.arrayBufferToString(new Uint8Array(e)))};
Graph.decompress=function(a,b,e){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=Graph.stringToArrayBuffer(atob(a));b=decodeURIComponent(b?pako.inflate(a,{to:"string"}):pako.inflateRaw(a,{to:"string"}));return e?b:Graph.zapGremlins(b)};Graph.removePasteFormatting=function(a){for(;null!=a;)null!=a.firstChild&&Graph.removePasteFormatting(a.firstChild),a.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=a.style&&(a.style.whiteSpace="","#000000"==a.style.color&&(a.style.color="")),a=a.nextSibling};
-Graph.sanitizeHtml=function(a,b){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};Graph.sanitizeSvg=function(a){for(var b=a.getElementsByTagName("*"),e=0;e<b.length;e++)for(var d=0;d<b[e].attributes.length;d++){var n=b[e].attributes[d];2<n.name.length&&"on"==n.name.toLowerCase().substring(0,2)&&b[e].removeAttribute(n.name)}for(a=a.getElementsByTagName("script");0<a.length;)a[0].parentNode.removeChild(a[0])};
-Graph.clipSvgDataUri=function(a){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=a&&"data:image/svg+xml;base64,"==a.substring(0,26))try{var b=document.createElement("div");b.style.position="absolute";b.style.visibility="hidden";var e=decodeURIComponent(escape(atob(a.substring(26)))),d=e.indexOf("<svg");if(0<=d){b.innerHTML=e.substring(d);Graph.sanitizeSvg(b);var n=b.getElementsByTagName("svg");if(0<n.length){document.body.appendChild(b);try{var l=n[0].getBBox();0<l.width&&0<l.height&&(b.getElementsByTagName("svg")[0].setAttribute("viewBox",
-l.x+" "+l.y+" "+l.width+" "+l.height),b.getElementsByTagName("svg")[0].setAttribute("width",l.width),b.getElementsByTagName("svg")[0].setAttribute("height",l.height))}catch(t){}finally{document.body.removeChild(b)}a=Editor.createSvgDataUri(mxUtils.getXml(n[0]))}}}catch(t){}return a};
+Graph.sanitizeHtml=function(a,b){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};Graph.sanitizeSvg=function(a){for(var b=a.getElementsByTagName("*"),e=0;e<b.length;e++)for(var d=0;d<b[e].attributes.length;d++){var l=b[e].attributes[d];2<l.name.length&&"on"==l.name.toLowerCase().substring(0,2)&&b[e].removeAttribute(l.name)}for(a=a.getElementsByTagName("script");0<a.length;)a[0].parentNode.removeChild(a[0])};
+Graph.clipSvgDataUri=function(a){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=a&&"data:image/svg+xml;base64,"==a.substring(0,26))try{var b=document.createElement("div");b.style.position="absolute";b.style.visibility="hidden";var e=decodeURIComponent(escape(atob(a.substring(26)))),d=e.indexOf("<svg");if(0<=d){b.innerHTML=e.substring(d);Graph.sanitizeSvg(b);var l=b.getElementsByTagName("svg");if(0<l.length){document.body.appendChild(b);try{var m=l[0].getBBox();0<m.width&&0<m.height&&(b.getElementsByTagName("svg")[0].setAttribute("viewBox",
+m.x+" "+m.y+" "+m.width+" "+m.height),b.getElementsByTagName("svg")[0].setAttribute("width",m.width),b.getElementsByTagName("svg")[0].setAttribute("height",m.height))}catch(u){}finally{document.body.removeChild(b)}a=Editor.createSvgDataUri(mxUtils.getXml(l[0]))}}}catch(u){}return a};
Graph.stripQuotes=function(a){null!=a&&("'"==a.charAt(0)&&(a=a.substring(1)),"'"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),'"'==a.charAt(0)&&(a=a.substring(1)),'"'==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)));return a};Graph.isLink=function(a){return null!=a&&Graph.linkPattern.test(a)};Graph.linkPattern=/^(https?:\/\/)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?(\#[-a-z\d_]*)?$/i;mxUtils.extend(Graph,mxGraph);
Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkPolicy="frame"==urlParams.target?"blank":urlParams.target||"auto";Graph.prototype.linkTarget="frame"==urlParams.target?"_self":"_blank";Graph.prototype.linkRelation="nofollow noopener noreferrer";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.defaultGridEnabled=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultPageBackgroundColor="#ffffff";
Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.selectParentAfterDelete=!1;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}]+)%","g");Graph.prototype.absoluteUrlPattern=/^(?:[a-z]+:)?\/\//i;Graph.prototype.defaultThemeName="default";
Graph.prototype.defaultThemes={};Graph.prototype.baseUrl=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"];Graph.prototype.standalone=!1;Graph.prototype.enableFlowAnimation=!1;
-Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,b){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var d=a.view.graph.tolerance,e=!0,t=null,q=mxUtils.bind(this,function(a){e=!0;t=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),c=mxUtils.bind(this,function(a){e=e&&null!=t&&Math.abs(t.x-mxEvent.getClientX(a))<d&&Math.abs(t.y-mxEvent.getClientY(a))<d}),f=mxUtils.bind(this,function(c){if(e)for(var d=mxEvent.getSource(c);null!=
+Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,b){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var d=a.view.graph.tolerance,e=!0,u=null,q=mxUtils.bind(this,function(a){e=!0;u=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),c=mxUtils.bind(this,function(a){e=e&&null!=u&&Math.abs(u.x-mxEvent.getClientX(a))<d&&Math.abs(u.y-mxEvent.getClientY(a))<d}),f=mxUtils.bind(this,function(c){if(e)for(var d=mxEvent.getSource(c);null!=
d&&d!=b.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(b.node,q,c,f);mxEvent.addListener(b.node,"click",function(a){mxEvent.consume(a)})};if(null!=this.tooltipHandler){var b=this.tooltipHandler.init;this.tooltipHandler.init=function(){b.apply(this,arguments);null!=this.div&&mxEvent.addListener(this.div,"click",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);"A"==b.nodeName&&(b=b.getAttribute("href"),null!=
b&&this.graph.isCustomLink(b)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&this.graph.customLinkClicked(b)&&mxEvent.consume(a))}))}}this.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){if(null!=this.container&&this.flowAnimationStyle){var d=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(d)}}));this.initLayoutManager()};
(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.getVerticesAndEdges=function(a,b){a=null!=a?a:!0;b=null!=b?b:!0;var d=this.model;return d.filterDescendants(function(c){return a&&d.isVertex(c)||b&&d.isEdge(c)},d.getRoot())};Graph.prototype.getCommonStyle=function(a){for(var b={},d=0;d<a.length;d++){var c=this.view.getState(a[d]);this.mergeStyle(c.style,b,0==d)}return b};Graph.prototype.mergeStyle=function(a,
b,d){if(null!=a){var c={},f;for(f in a){var e=a[f];null!=e&&(c[f]=!0,null==b[f]&&d?b[f]=e:b[f]!=e&&delete b[f])}for(f in b)c[f]||delete b[f]}};Graph.prototype.getStartEditingCell=function(a,b){var d=this.getCellStyle(a),d=parseInt(mxUtils.getValue(d,mxConstants.STYLE_STARTSIZE,0));this.isTable(a)&&(!this.isSwimlane(a)||0==d)&&""==this.getLabel(a)&&0<this.model.getChildCount(a)&&(a=this.model.getChildAt(a,0),d=this.getCellStyle(a),d=parseInt(mxUtils.getValue(d,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(a)&&
(!this.isSwimlane(a)||0==d)&&""==this.getLabel(a)&&0<this.model.getChildCount(a))for(d=0;d<this.model.getChildCount(a);d++){var c=this.model.getChildAt(a,d);if(this.isCellEditable(c)){a=c;break}}return a};Graph.prototype.copyStyle=function(a){var b=null;if(null!=a){b=mxUtils.clone(this.getCurrentCellStyle(a));a=this.model.getStyle(a);a=null!=a?a.split(";"):[];for(var d=0;d<a.length;d++){var c=a[d],f=c.indexOf("=");if(0<=f){var e=c.substring(0,f),c=c.substring(f+1);null==b[e]&&c==mxConstants.NONE&&
-(b[e]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,d){d=null!=d?d:Graph.pasteStyles;this.model.beginUpdate();try{for(var c=0;c<b.length;c++)for(var f=this.getCurrentCellStyle(b[c]),e=0;e<d.length;e++){var m=f[d[e]],k=a[d[e]];m==k||null==m&&k==mxConstants.NONE||this.setCellStyles(d[e],k,[b[c]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&this.isCssTransformsSupported()};
+(b[e]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,d){d=null!=d?d:Graph.pasteStyles;this.model.beginUpdate();try{for(var c=0;c<b.length;c++)for(var f=this.getCurrentCellStyle(b[c]),e=0;e<d.length;e++){var k=f[d[e]],p=a[d[e]];k==p||null==k&&p==mxConstants.NONE||this.setCellStyles(d[e],p,[b[c]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&this.isCssTransformsSupported()};
Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(a,b,d,c,f,e){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,d,c,f,e){c=null!=c?c:!0;f=null!=f?f:!0;null==d&&(d=this.getCurrentRoot(),null==d&&(d=this.getModel().getRoot()));
-if(null!=d)for(var g=this.model.getChildCount(d)-1;0<=g;g--){var k=this.model.getChildAt(d,g),p=this.getScaledCellAt(a,b,k,c,f,e);if(null!=p)return p;if(this.isCellVisible(k)&&(f&&this.model.isEdge(k)||c&&this.model.isVertex(k))&&(p=this.view.getState(k),null!=p&&(null==e||!e(p,a,b))&&this.intersects(p,a,b)))return k}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,
+if(null!=d)for(var g=this.model.getChildCount(d)-1;0<=g;g--){var p=this.model.getChildAt(d,g),t=this.getScaledCellAt(a,b,p,c,f,e);if(null!=t)return t;if(this.isCellVisible(p)&&(f&&this.model.isEdge(p)||c&&this.model.isVertex(p))&&(t=this.view.getState(p),null!=t&&(null==e||!e(t,a,b))&&this.intersects(t,a,b)))return p}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,
"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};Graph.prototype.isPart=function(a){return"1"==mxUtils.getValue(this.getCurrentCellStyle(a),"part","0")||this.isTableCell(a)||this.isTableRow(a)};Graph.prototype.getCompositeParent=function(a){for(;this.isPart(a);){var b=this.model.getParent(a);if(!this.model.isVertex(b))break;a=b}return a};Graph.prototype.filterSelectionCells=function(a){var b=this.getSelectionCells();if(null!=a){for(var d=[],c=0;c<b.length;c++)a(b[c])||d.push(b[c]);
b=d}return b};mxCellHighlight.prototype.getStrokeWidth=function(a){a=this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,d=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*d,(a.y+b.y)*d,a.width*d,a.height*d);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();
this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=
this.graph.currentTranslate.y)};var b=mxGraph.prototype.getCellsForGroup;Graph.prototype.getCellsForGroup=function(a){a=b.apply(this,arguments);for(var d=[],e=0;e<a.length;e++)this.isTableRow(a[e])||this.isTableCell(a[e])||d.push(a[e]);return d};var e=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=function(a){a=e.apply(this,arguments);for(var b=[],d=0;d<a.length;d++)this.isTable(a[d])||this.isTableRow(a[d])||this.isTableCell(a[d])||b.push(a[d]);return b};Graph.prototype.updateCssTransform=
function(){var a=this.view.getDrawPane();if(null!=a)if(a=a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");var d=Math.round(100*this.currentScale)/100;a.setAttribute("transform","scale("+d+","+d+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/100+")");if(b!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var c=a.style.display;a.style.display="none";a.getBBox();a.style.display=c}}catch(f){}}else a.removeAttribute("transformOrigin"),
-a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,b=this.scale,e=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=b,this.translate=e)};var n=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,d){var c=this.useCssTransforms,f=this.view.scale,e=this.view.translate;
-c&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);n.apply(this,arguments);c&&(this.view.scale=f,this.view.translate=e,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
+a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,b=this.scale,e=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=b,this.translate=e)};var l=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,d){var c=this.useCssTransforms,f=this.view.scale,e=this.view.translate;
+c&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);l.apply(this,arguments);c&&(this.view.scale=f,this.view.translate=e,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&(mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e))){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}};
-Graph.prototype.openLink=function(a,b,e){var d=window;try{if("_self"==b&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top){var n=a.split("#")[1];window.location.hash=="#"+n&&(window.location.hash="");window.location.hash=n}else d=window.open(a,null!=b?b:"_blank"),null==d||e||(d.opener=null)}catch(l){}return d};
+Graph.prototype.openLink=function(a,b,e){var d=window;try{if("_self"==b&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top){var l=a.split("#")[1];window.location.hash=="#"+l&&(window.location.hash="");window.location.hash=l}else d=window.open(a,null!=b?b:"_blank"),null==d||e||(d.opener=null)}catch(m){}return d};
Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
Graph.prototype.isRelativeUrl=function(a){return null!=a&&!this.absoluteUrlPattern.test(a)&&"data:"!==a.substring(0,5)&&!this.isExternalProtocol(a)};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};
Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.hasLayout=function(a,b){return null!=this.graph.getCellStyle(a).childLayout};this.layoutManager.getLayout=function(a,b){var e=this.graph.model.getParent(a);if(b!=mxEvent.BEGIN_UPDATE||this.hasLayout(e,b)){e=this.graph.getCellStyle(a);if("stackLayout"==e.childLayout){var d=new mxStackLayout(this.graph,!0);d.resizeParentMax="1"==mxUtils.getValue(e,"resizeParentMax","1");d.horizontal="1"==mxUtils.getValue(e,
@@ -2371,38 +2372,38 @@ Graph.prototype.isSplitTarget=function(a,b,e){return!this.model.isEdge(b[0])&&!m
Graph.prototype.isLabelMovable=function(a){var b=this.getCurrentCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(b,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))};Graph.prototype.setDefaultParent=function(a){this.defaultParent=a;this.fireEvent(new mxEventObject("defaultParentChanged"))};
Graph.prototype.getClickableLinkForCell=function(a){do{var b=this.getLinkForCell(a);if(null!=b)return b;a=this.model.getParent(a)}while(null!=a);return null};Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b};
Graph.prototype.formatDate=function(a,b,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
-shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var d=this.dateFormatCache,n=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,t=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",c=a[q+"Date"](),f=a[q+"Day"](),g=a[q+"Month"](),m=a[q+"FullYear"](),k=a[q+"Hours"](),p=a[q+"Minutes"](),u=a[q+"Seconds"](),q=a[q+"Milliseconds"](),A=e?0:a.getTimezoneOffset(),F={d:c,dd:t(c),ddd:d.i18n.dayNames[f],dddd:d.i18n.dayNames[f+7],m:g+1,mm:t(g+1),mmm:d.i18n.monthNames[g],mmmm:d.i18n.monthNames[g+
-12],yy:String(m).slice(2),yyyy:m,h:k%12||12,hh:t(k%12||12),H:k,HH:t(k),M:p,MM:t(p),s:u,ss:t(u),l:t(q,3),L:t(99<q?Math.round(q/10):q),t:12>k?"a":"p",tt:12>k?"am":"pm",T:12>k?"A":"P",TT:12>k?"AM":"PM",Z:e?"UTC":(String(a).match(n)||[""]).pop().replace(l,""),o:(0<A?"-":"+")+t(100*Math.floor(Math.abs(A)/60)+Math.abs(A)%60,4),S:["th","st","nd","rd"][3<c%10?0:(10!=c%100-c%10)*c%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in F?F[a]:a.slice(1,
+shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var d=this.dateFormatCache,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,m=/[^-+\dA-Z]/g,u=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
+/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",c=a[q+"Date"](),f=a[q+"Day"](),g=a[q+"Month"](),k=a[q+"FullYear"](),p=a[q+"Hours"](),t=a[q+"Minutes"](),v=a[q+"Seconds"](),q=a[q+"Milliseconds"](),A=e?0:a.getTimezoneOffset(),F={d:c,dd:u(c),ddd:d.i18n.dayNames[f],dddd:d.i18n.dayNames[f+7],m:g+1,mm:u(g+1),mmm:d.i18n.monthNames[g],mmmm:d.i18n.monthNames[g+
+12],yy:String(k).slice(2),yyyy:k,h:p%12||12,hh:u(p%12||12),H:p,HH:u(p),M:t,MM:u(t),s:v,ss:u(v),l:u(q,3),L:u(99<q?Math.round(q/10):q),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(a).match(l)||[""]).pop().replace(m,""),o:(0<A?"-":"+")+u(100*Math.floor(Math.abs(A)/60)+Math.abs(A)%60,4),S:["th","st","nd","rd"][3<c%10?0:(10!=c%100-c%10)*c%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in F?F[a]:a.slice(1,
a.length-1)})};
-Graph.prototype.createLayersDialog=function(a){var b=document.createElement("div");b.style.position="absolute";for(var e=this.getModel(),d=e.getChildCount(e.root),n=0;n<d;n++)mxUtils.bind(this,function(d){var n=document.createElement("div");n.style.overflow="hidden";n.style.textOverflow="ellipsis";n.style.padding="2px";n.style.whiteSpace="nowrap";var l=document.createElement("input");l.style.display="inline-block";l.setAttribute("type","checkbox");e.isVisible(d)&&(l.setAttribute("checked","checked"),
-l.defaultChecked=!0);n.appendChild(l);var c=this.convertValueToString(d)||mxResources.get("background")||"Background";n.setAttribute("title",c);mxUtils.write(n,c);b.appendChild(n);mxEvent.addListener(l,"click",function(){null!=l.getAttribute("checked")?l.removeAttribute("checked"):l.setAttribute("checked","checked");e.setVisible(d,l.checked);null!=a&&a(d)})})(e.getChildAt(e.root,n));return b};
-Graph.prototype.replacePlaceholders=function(a,b,e,d){d=[];if(null!=b){for(var n=0;match=this.placeholderPattern.exec(b);){var l=match[0];if(2<l.length&&"%label%"!=l&&"%tooltip%"!=l){var t=null;if(match.index>n&&"%"==b.charAt(match.index-1))t=l.substring(1);else{var q=l.substring(1,l.length-1);if("id"==q)t=a.id;else if(0>q.indexOf("{"))for(var c=a;null==t&&null!=c;)null!=c.value&&"object"==typeof c.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(t=c.getAttribute(q+"_"+Graph.diagramLanguage)),
-null==t&&(t=c.hasAttribute(q)?null!=c.getAttribute(q)?c.getAttribute(q):"":null)),c=this.model.getParent(c);null==t&&(t=this.getGlobalVariable(q));null==t&&null!=e&&(t=e[q])}d.push(b.substring(n,match.index)+(null!=t?t:l));n=match.index+l.length}}d.push(b.substring(n))}return d.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var b=[],e=0;e<a.length;e++){var d=this.model.getCell(a[e].id);null!=d&&b.push(d)}this.setSelectionCells(b)}else this.clearSelection()};
+Graph.prototype.createLayersDialog=function(a){var b=document.createElement("div");b.style.position="absolute";for(var e=this.getModel(),d=e.getChildCount(e.root),l=0;l<d;l++)mxUtils.bind(this,function(d){var l=document.createElement("div");l.style.overflow="hidden";l.style.textOverflow="ellipsis";l.style.padding="2px";l.style.whiteSpace="nowrap";var m=document.createElement("input");m.style.display="inline-block";m.setAttribute("type","checkbox");e.isVisible(d)&&(m.setAttribute("checked","checked"),
+m.defaultChecked=!0);l.appendChild(m);var c=this.convertValueToString(d)||mxResources.get("background")||"Background";l.setAttribute("title",c);mxUtils.write(l,c);b.appendChild(l);mxEvent.addListener(m,"click",function(){null!=m.getAttribute("checked")?m.removeAttribute("checked"):m.setAttribute("checked","checked");e.setVisible(d,m.checked);null!=a&&a(d)})})(e.getChildAt(e.root,l));return b};
+Graph.prototype.replacePlaceholders=function(a,b,e,d){d=[];if(null!=b){for(var l=0;match=this.placeholderPattern.exec(b);){var m=match[0];if(2<m.length&&"%label%"!=m&&"%tooltip%"!=m){var u=null;if(match.index>l&&"%"==b.charAt(match.index-1))u=m.substring(1);else{var q=m.substring(1,m.length-1);if("id"==q)u=a.id;else if(0>q.indexOf("{"))for(var c=a;null==u&&null!=c;)null!=c.value&&"object"==typeof c.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(u=c.getAttribute(q+"_"+Graph.diagramLanguage)),
+null==u&&(u=c.hasAttribute(q)?null!=c.getAttribute(q)?c.getAttribute(q):"":null)),c=this.model.getParent(c);null==u&&(u=this.getGlobalVariable(q));null==u&&null!=e&&(u=e[q])}d.push(b.substring(l,match.index)+(null!=u?u:m));l=match.index+m.length}}d.push(b.substring(l))}return d.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var b=[],e=0;e<a.length;e++){var d=this.model.getCell(a[e].id);null!=d&&b.push(d)}this.setSelectionCells(b)}else this.clearSelection()};
Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset())):this.setSelectionCells(a)};Graph.prototype.isCloneConnectSource=function(a){var b=null;null!=this.layoutManager&&(b=this.layoutManager.getLayout(this.model.getParent(a)));return this.isTableRow(a)||this.isTableCell(a)||null!=b&&b.constructor==mxStackLayout};
-Graph.prototype.connectVertex=function(a,b,e,d,n,l,t,q){l=l?l:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var c=this.isCloneConnectSource(a),f=c?a:this.getCompositeParent(a),g=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(f.geometry.x,f.geometry.y);b==mxConstants.DIRECTION_NORTH?(g.x+=f.geometry.width/2,g.y-=e):b==
-mxConstants.DIRECTION_SOUTH?(g.x+=f.geometry.width/2,g.y+=f.geometry.height+e):(g.x=b==mxConstants.DIRECTION_WEST?g.x-e:g.x+(f.geometry.width+e),g.y+=f.geometry.height/2);var m=this.view.getState(this.model.getParent(a));e=this.view.scale;var k=this.view.translate,f=k.x*e,k=k.y*e;null!=m&&this.model.isVertex(m.cell)&&(f=m.x,k=m.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(g.x+=a.parent.geometry.x,g.y+=a.parent.geometry.y);l=l?null:(new mxRectangle(f+g.x*e,k+g.y*e)).grow(40);l=null!=l?this.getCells(0,
-0,0,0,null,null,l):null;var p=null!=l&&0<l.length?l.reverse()[0]:null,u=!1;null!=p&&this.model.isAncestor(p,a)&&(u=!0,p=null);null==p&&(l=this.getSwimlaneAt(f+g.x*e,k+g.y*e),null!=l&&(u=!1,p=l));for(l=p;null!=l;){if(this.isCellLocked(l)){p=null;break}l=this.model.getParent(l)}null!=p&&(l=this.view.getState(a),m=this.view.getState(p),null!=l&&null!=m&&mxUtils.intersects(l,m)&&(p=null));var A=!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||n;A&&("1"!=urlParams.sketch||n)&&(b==mxConstants.DIRECTION_NORTH?
-g.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?g.y+=a.geometry.height/2:g.x=b==mxConstants.DIRECTION_WEST?g.x-a.geometry.width/2:g.x+a.geometry.width/2);null==p||this.isCellConnectable(p)||this.isSwimlane(p)||(n=this.getModel().getParent(p),this.getModel().isVertex(n)&&this.isCellConnectable(n)&&(p=n));if(p==a||this.model.isEdge(p)||!this.isCellConnectable(p)&&!this.isSwimlane(p))p=null;var F=[],z=null!=p&&this.isSwimlane(p),y=z?null:p;n=mxUtils.bind(this,function(f){if(null==t||null!=f||
-null==p&&c){this.model.beginUpdate();try{if(null==y&&A){for(var e=null!=f?f:a,k=this.getCellGeometry(e);null!=k&&k.relative;)e=this.getModel().getParent(e),k=this.getCellGeometry(e);e=c?a:this.getCompositeParent(e);y=null!=f?f:this.duplicateCells([e],!1)[0];null!=f&&this.addCells([y],this.model.getParent(a),null,null,null,!0);k=this.getCellGeometry(y);null!=k&&(null!=f&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?g.y-=k.height/2:b==mxConstants.DIRECTION_SOUTH?g.y+=k.height/2:g.x=b==mxConstants.DIRECTION_WEST?
-g.x-k.width/2:g.x+k.width/2),k.x=g.x-k.width/2,k.y=g.y-k.height/2);z?(this.addCells([y],p,null,null,null,!0),p=null):!A||null!=p||u||c||this.addCells([y],this.getDefaultParent(),null,null,null,!0)}var m=mxEvent.isControlDown(d)&&mxEvent.isShiftDown(d)&&A||null==p&&c?null:this.insertEdge(this.model.getParent(a),null,"",a,y,this.createCurrentEdgeStyle());if(null!=m&&this.connectionHandler.insertBeforeSource){var n=null;for(f=a;null!=f.parent&&null!=f.geometry&&f.geometry.relative&&f.parent!=m.parent;)f=
-this.model.getParent(f);null!=f&&null!=f.parent&&f.parent==m.parent&&(n=f.parent.getIndex(f),this.model.add(f.parent,m,n))}null==p&&null!=y&&null!=a.parent&&c&&b==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,y,n));null!=m&&F.push(m);null==p&&null!=y&&F.push(y);null==y&&null!=m&&m.geometry.setTerminalPoint(g,!1);null!=m&&this.fireEvent(new mxEventObject("cellsInserted","cells",[m]))}finally{this.model.endUpdate()}}if(null!=q)q(F);else return F});if(null==t||null!=y||
-!A||null==p&&c)return n(y);t(f+g.x*e,k+g.y*e,n)};Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")};
+Graph.prototype.connectVertex=function(a,b,e,d,l,m,u,q){m=m?m:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var c=this.isCloneConnectSource(a),f=c?a:this.getCompositeParent(a),g=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(f.geometry.x,f.geometry.y);b==mxConstants.DIRECTION_NORTH?(g.x+=f.geometry.width/2,g.y-=e):b==
+mxConstants.DIRECTION_SOUTH?(g.x+=f.geometry.width/2,g.y+=f.geometry.height+e):(g.x=b==mxConstants.DIRECTION_WEST?g.x-e:g.x+(f.geometry.width+e),g.y+=f.geometry.height/2);var k=this.view.getState(this.model.getParent(a));e=this.view.scale;var p=this.view.translate,f=p.x*e,p=p.y*e;null!=k&&this.model.isVertex(k.cell)&&(f=k.x,p=k.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(g.x+=a.parent.geometry.x,g.y+=a.parent.geometry.y);m=m?null:(new mxRectangle(f+g.x*e,p+g.y*e)).grow(40);m=null!=m?this.getCells(0,
+0,0,0,null,null,m):null;var t=null!=m&&0<m.length?m.reverse()[0]:null,v=!1;null!=t&&this.model.isAncestor(t,a)&&(v=!0,t=null);null==t&&(m=this.getSwimlaneAt(f+g.x*e,p+g.y*e),null!=m&&(v=!1,t=m));for(m=t;null!=m;){if(this.isCellLocked(m)){t=null;break}m=this.model.getParent(m)}null!=t&&(m=this.view.getState(a),k=this.view.getState(t),null!=m&&null!=k&&mxUtils.intersects(m,k)&&(t=null));var A=!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||l;A&&("1"!=urlParams.sketch||l)&&(b==mxConstants.DIRECTION_NORTH?
+g.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?g.y+=a.geometry.height/2:g.x=b==mxConstants.DIRECTION_WEST?g.x-a.geometry.width/2:g.x+a.geometry.width/2);null==t||this.isCellConnectable(t)||this.isSwimlane(t)||(l=this.getModel().getParent(t),this.getModel().isVertex(l)&&this.isCellConnectable(l)&&(t=l));if(t==a||this.model.isEdge(t)||!this.isCellConnectable(t)&&!this.isSwimlane(t))t=null;var F=[],y=null!=t&&this.isSwimlane(t),z=y?null:t;l=mxUtils.bind(this,function(f){if(null==u||null!=f||
+null==t&&c){this.model.beginUpdate();try{if(null==z&&A){for(var e=null!=f?f:a,k=this.getCellGeometry(e);null!=k&&k.relative;)e=this.getModel().getParent(e),k=this.getCellGeometry(e);e=c?a:this.getCompositeParent(e);z=null!=f?f:this.duplicateCells([e],!1)[0];null!=f&&this.addCells([z],this.model.getParent(a),null,null,null,!0);k=this.getCellGeometry(z);null!=k&&(null!=f&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?g.y-=k.height/2:b==mxConstants.DIRECTION_SOUTH?g.y+=k.height/2:g.x=b==mxConstants.DIRECTION_WEST?
+g.x-k.width/2:g.x+k.width/2),k.x=g.x-k.width/2,k.y=g.y-k.height/2);y?(this.addCells([z],t,null,null,null,!0),t=null):!A||null!=t||v||c||this.addCells([z],this.getDefaultParent(),null,null,null,!0)}var p=mxEvent.isControlDown(d)&&mxEvent.isShiftDown(d)&&A||null==t&&c?null:this.insertEdge(this.model.getParent(a),null,"",a,z,this.createCurrentEdgeStyle());if(null!=p&&this.connectionHandler.insertBeforeSource){var l=null;for(f=a;null!=f.parent&&null!=f.geometry&&f.geometry.relative&&f.parent!=p.parent;)f=
+this.model.getParent(f);null!=f&&null!=f.parent&&f.parent==p.parent&&(l=f.parent.getIndex(f),this.model.add(f.parent,p,l))}null==t&&null!=z&&null!=a.parent&&c&&b==mxConstants.DIRECTION_WEST&&(l=a.parent.getIndex(a),this.model.add(a.parent,z,l));null!=p&&F.push(p);null==t&&null!=z&&F.push(z);null==z&&null!=p&&p.geometry.setTerminalPoint(g,!1);null!=p&&this.fireEvent(new mxEventObject("cellsInserted","cells",[p]))}finally{this.model.endUpdate()}}if(null!=q)q(F);else return F});if(null==u||null!=z||
+!A||null==t&&c)return l(z);u(f+g.x*e,p+g.y*e,l)};Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){var b=this.model.getValue(a);if(null!=b&&"object"==typeof b){var e=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),d=a;null==e&&null!=d;)null!=d.value&&"object"==typeof d.value&&(e=d.hasAttribute(b)?null!=d.getAttribute(b)?d.getAttribute(b):"":null),d=this.model.getParent(d);else e=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=b.getAttribute("label_"+Graph.diagramLanguage)),
null==e&&(e=b.getAttribute("label")||"");return e||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getLinkTargetForCell=function(a){return null!=a.value&&"object"==typeof a.value?a.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b};
Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a,b){return mxEvent.isShiftDown(a)||"1"==mxUtils.getValue(b.style,"moveCells","0")};
-Graph.prototype.foldCells=function(a,b,e,d,n){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var t=this.view.getState(e[l]),q=this.getCellGeometry(e[l]);if(null!=t&&null!=q){var c=Math.round(q.width-t.width/this.view.scale),f=Math.round(q.height-t.height/this.view.scale);if(0!=f||0!=c){var g=this.model.getParent(e[l]),m=this.layoutManager.getLayout(g);
-null==m?null!=n&&this.isMoveCellsEvent(n,t)&&this.moveSiblings(t,g,c,f):null!=n&&mxEvent.isAltDown(n)||m.constructor!=mxStackLayout||m.resizeLast||this.resizeParentStacks(g,m,c,f)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
-Graph.prototype.moveSiblings=function(a,b,e,d){this.model.beginUpdate();try{var n=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<n.length;b++)if(n[b]!=a.cell){var l=this.view.getState(n[b]),t=this.getCellGeometry(n[b]);null!=l&&null!=t&&(t=t.clone(),t.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(l.y-a.y)/a.height)))),this.model.setGeometry(n[b],t))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var n=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==n&&!b.resizeLast;){var l=this.getCellGeometry(a),t=this.view.getState(a);null!=t&&null!=l&&(l=l.clone(),b.horizontal?l.width+=e+Math.min(0,t.width/this.view.scale-l.width):l.height+=d+Math.min(0,t.height/this.view.scale-l.height),this.model.setGeometry(a,
-l));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.getCurrentCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.getCurrentCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
+Graph.prototype.foldCells=function(a,b,e,d,l){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var m=0;m<e.length;m++){var u=this.view.getState(e[m]),q=this.getCellGeometry(e[m]);if(null!=u&&null!=q){var c=Math.round(q.width-u.width/this.view.scale),f=Math.round(q.height-u.height/this.view.scale);if(0!=f||0!=c){var g=this.model.getParent(e[m]),k=this.layoutManager.getLayout(g);
+null==k?null!=l&&this.isMoveCellsEvent(l,u)&&this.moveSiblings(u,g,c,f):null!=l&&mxEvent.isAltDown(l)||k.constructor!=mxStackLayout||k.resizeLast||this.resizeParentStacks(g,k,c,f)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.moveSiblings=function(a,b,e,d){this.model.beginUpdate();try{var l=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<l.length;b++)if(l[b]!=a.cell){var m=this.view.getState(l[b]),u=this.getCellGeometry(l[b]);null!=m&&null!=u&&(u=u.clone(),u.translate(Math.round(e*Math.max(0,Math.min(1,(m.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(m.y-a.y)/a.height)))),this.model.setGeometry(l[b],u))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var l=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==l&&!b.resizeLast;){var m=this.getCellGeometry(a),u=this.view.getState(a);null!=u&&null!=m&&(m=m.clone(),b.horizontal?m.width+=e+Math.min(0,u.width/this.view.scale-m.width):m.height+=d+Math.min(0,u.height/this.view.scale-m.height),this.model.setGeometry(a,
+m));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.getCurrentCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.getCurrentCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
Graph.prototype.isLabelMovable=function(a){var b=this.getCurrentCellStyle(a);return null!=b.movableLabel?"0"!=b.movableLabel:mxGraph.prototype.isLabelMovable.apply(this,arguments)};Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,b,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};
Graph.prototype.getSwimlaneAt=function(a,b,e){var d=mxGraph.prototype.getSwimlaneAt.apply(this,arguments);this.isCellLocked(d)&&(d=null);return d};Graph.prototype.isCellFoldable=function(a){var b=this.getCurrentCellStyle(a);return this.foldingEnabled&&("1"==b.treeFolding||!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=b.collapsible||!this.isContainer(a)&&"1"==b.collapsible))};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)};
-Graph.prototype.fitWindow=function(a,b){b=null!=b?b:10;var e=this.container.clientWidth-b,d=this.container.clientHeight-b,n=Math.floor(20*Math.min(e/a.width,d/a.height))/20;this.zoomTo(n);if(mxUtils.hasScrollbars(this.container)){var l=this.view.translate;this.container.scrollTop=(a.y+l.y)*n-Math.max((d-a.height*n)/2+b/2,0);this.container.scrollLeft=(a.x+l.x)*n-Math.max((e-a.width*n)/2+b/2,0)}};
-Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var e=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=a.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==e&&(e=a.value.getAttribute("tooltip"));if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),b=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&(e.push("linkTarget"),e.push("link"));for(var n=0;n<a.length;n++)0>
-mxUtils.indexOf(e,a[n].nodeName)&&0<a[n].nodeValue.length&&d.push({name:a[n].nodeName,value:a[n].nodeValue});d.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});for(n=0;n<d.length;n++)"link"==d[n].name&&this.isCustomLink(d[n].value)||(b+=("link"!=d[n].name?"<b>"+d[n].name+":</b> ":"")+mxUtils.htmlEntities(d[n].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;text-overflow:ellipsis;overflow:hidden;">'+b+"</div>"))}}return b};
+Graph.prototype.fitWindow=function(a,b){b=null!=b?b:10;var e=this.container.clientWidth-b,d=this.container.clientHeight-b,l=Math.floor(20*Math.min(e/a.width,d/a.height))/20;this.zoomTo(l);if(mxUtils.hasScrollbars(this.container)){var m=this.view.translate;this.container.scrollTop=(a.y+m.y)*l-Math.max((d-a.height*l)/2+b/2,0);this.container.scrollLeft=(a.x+m.x)*l-Math.max((e-a.width*l)/2+b/2,0)}};
+Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var e=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=a.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==e&&(e=a.value.getAttribute("tooltip"));if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),b=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&(e.push("linkTarget"),e.push("link"));for(var l=0;l<a.length;l++)0>
+mxUtils.indexOf(e,a[l].nodeName)&&0<a[l].nodeValue.length&&d.push({name:a[l].nodeName,value:a[l].nodeValue});d.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});for(l=0;l<d.length;l++)"link"==d[l].name&&this.isCustomLink(d[l].value)||(b+=("link"!=d[l].name?"<b>"+d[l].name+":</b> ":"")+mxUtils.htmlEntities(d[l].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;text-overflow:ellipsis;overflow:hidden;">'+b+"</div>"))}}return b};
Graph.prototype.getFlowAnimationStyle=function(){var a=document.getElementsByTagName("head")[0];if(null!=a&&null==this.flowAnimationStyle){this.flowAnimationStyle=document.createElement("style");this.flowAnimationStyle.setAttribute("id","geEditorFlowAnimation-"+Editor.guid());this.flowAnimationStyle.type="text/css";var b=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(b);a.appendChild(this.flowAnimationStyle)}return this.flowAnimationStyle};
Graph.prototype.getFlowAnimationStyleCss=function(a){return"."+a+" {\nanimation: "+a+" 0.5s linear;\nanimation-iteration-count: infinite;\n}\n@keyframes "+a+" {\nto {\nstroke-dashoffset: "+-16*this.view.scale+";\n}\n}"};Graph.prototype.stringToBytes=function(a){return Graph.stringToBytes(a)};Graph.prototype.bytesToString=function(a){return Graph.bytesToString(a)};Graph.prototype.compressNode=function(a){return Graph.compressNode(a)};Graph.prototype.compress=function(a,b){return Graph.compress(a,b)};
Graph.prototype.decompress=function(a,b){return Graph.decompress(a,b)};Graph.prototype.zapGremlins=function(a){return Graph.zapGremlins(a)};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;
@@ -2414,8 +2415,8 @@ IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUC
HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.resetHandler=mxUtils.bind(this,function(){this.reset()});this.repaintHandler=
mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);
this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE,this.resetHandler);mxEvent.addListener(this.graph.container,"scroll",this.resetHandler);this.graph.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,
-mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,d){b=!1;var e=d.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var l=this.getState(d.getState());
-null==l&&mxEvent.isTouchEvent(e)||this.update(l)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,d){var e=d.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||this.update(this.getState(d.getState()),d.getGraphX(),d.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,d){var e=d.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));
+mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,d){b=!1;var e=d.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var m=this.getState(d.getState());
+null==m&&mxEvent.isTouchEvent(e)||this.update(m)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,d){var e=d.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||this.update(this.getState(d.getState()),d.getGraphX(),d.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,d){var e=d.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));
this.isResetEvent(e)?this.reset():this.isActive()&&!b&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),d):this.isActive()?1==this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())?this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(d.getGraphX(),d.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,d.getGraphX(),d.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||
this.reset();b=!1;this.resetActiveArrow()})})};HoverIcons.prototype.isResetEvent=function(a,b){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isPopupTrigger(a)&&!this.graph.isCloneEvent(a)};
HoverIcons.prototype.createArrow=function(a,b){var e=null,e=mxUtils.createImage(a.src);e.style.width=a.width+"px";e.style.height=a.height+"px";e.style.padding=this.tolerance+"px";null!=b&&e.setAttribute("title",b);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,
@@ -2424,96 +2425,96 @@ this.resetActiveArrow()}));return e};HoverIcons.prototype.resetActiveArrow=funct
HoverIcons.prototype.visitNodes=function(a){for(var b=0;b<this.elts.length;b++)null!=this.elts[b]&&a(this.elts[b])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(b){b.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState};
HoverIcons.prototype.drag=function(a,b,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,b,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=b&&b.setHandlesVisible(!1),b=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=b&&"orthogonalEdgeStyle"===
mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),b.cell.style=mxUtils.setStyle(b.cell.style,"sourcePortConstraint",a),b.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,b,e){return this.graph.view.getState(this.graph.getCellAt(b,e))};
-HoverIcons.prototype.click=function(a,b,e){var d=e.getEvent(),n=e.getGraphX(),l=e.getGraphY(),n=this.getStateAt(a,n,l);null==n||!this.graph.model.isEdge(n.cell)||this.graph.isCloneEvent(d)||n.getVisibleTerminalState(!0)!=a&&n.getVisibleTerminalState(!1)!=a?null!=a&&this.execute(a,b,e):(this.graph.setSelectionCell(n.cell),this.reset());e.consume()};
+HoverIcons.prototype.click=function(a,b,e){var d=e.getEvent(),l=e.getGraphX(),m=e.getGraphY(),l=this.getStateAt(a,l,m);null==l||!this.graph.model.isEdge(l.cell)||this.graph.isCloneEvent(d)||l.getVisibleTerminalState(!0)!=a&&l.getVisibleTerminalState(!1)!=a?null!=a&&this.execute(a,b,e):(this.graph.setSelectionCell(l.cell),this.reset());e.consume()};
HoverIcons.prototype.execute=function(a,b,e){e=e.getEvent();this.graph.selectCellsForConnectVertex(this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,e,this.graph.isCloneEvent(e),this.graph.isCloneEvent(e)),e,this)};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null};
HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentState){this.currentState=this.getState(this.currentState);if(null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){var a=mxRectangle.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(a=mxRectangle.fromRectangle(this.currentState.shape.boundingBox));a.grow(this.graph.tolerance);a.grow(this.arrowSpacing);
var b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);this.graph.isTableRow(this.currentState.cell)&&(b=this.graph.selectionCellsHandler.getHandler(this.graph.model.getParent(this.currentState.cell)));var e=null;null!=b&&(a.x-=b.horizontalOffset/2,a.y-=b.verticalOffset/2,a.width+=b.horizontalOffset,a.height+=b.verticalOffset,null!=b.rotationShape&&null!=b.rotationShape.node&&"hidden"!=b.rotationShape.node.style.visibility&&"none"!=b.rotationShape.node.style.display&&null!=b.rotationShape.boundingBox&&
(e=b.rotationShape.boundingBox));b=mxUtils.bind(this,function(a,c,b){if(null!=e){var d=new mxRectangle(c,b,a.clientWidth,a.clientHeight);mxUtils.intersects(d,e)&&(a==this.arrowUp?b-=d.y+d.height-e.y:a==this.arrowRight?c+=e.x+e.width-d.x:a==this.arrowDown?b+=e.y+e.height-d.y:a==this.arrowLeft&&(c-=d.x+d.width-e.x))}a.style.left=c+"px";a.style.top=b+"px";mxUtils.setOpacity(a,this.inactiveOpacity)});b(this.arrowUp,Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance),Math.round(a.y-
this.triangleUp.height-this.tolerance));b(this.arrowRight,Math.round(a.x+a.width-this.tolerance),Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance));b(this.arrowDown,parseInt(this.arrowUp.style.left),Math.round(a.y+a.height-this.tolerance));b(this.arrowLeft,Math.round(a.x-this.triangleLeft.width-this.tolerance),parseInt(this.arrowRight.style.top));if(this.checkCollisions){var b=this.graph.getCellAt(a.x+a.width+this.triangleRight.width/2,this.currentState.getCenterY()),
-d=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),n=this.graph.getCellAt(this.currentState.getCenterX(),a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==d&&d==n&&n==a&&(a=n=d=b=null);var l=this.graph.getCellGeometry(this.currentState.cell),t=mxUtils.bind(this,function(a,c){var b=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null==a||this.graph.model.isAncestor(a,
-this.currentState.cell)||this.graph.isSwimlane(a)||!(null==b||null==l||b.height<3*l.height&&b.width<3*l.width)?c.style.visibility="visible":c.style.visibility="hidden"});t(b,this.arrowRight);t(d,this.arrowLeft);t(n,this.arrowUp);t(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),
+d=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),l=this.graph.getCellAt(this.currentState.getCenterX(),a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==d&&d==l&&l==a&&(a=l=d=b=null);var m=this.graph.getCellGeometry(this.currentState.cell),u=mxUtils.bind(this,function(a,c){var b=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null==a||this.graph.model.isAncestor(a,
+this.currentState.cell)||this.graph.isSwimlane(a)||!(null==b||null==m||b.height<3*m.height&&b.width<3*m.width)?c.style.visibility="visible":c.style.visibility="hidden"});u(b,this.arrowRight);u(d,this.arrowLeft);u(l,this.arrowUp);u(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),
this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title",mxResources.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}};
HoverIcons.prototype.computeBoundingBox=function(){var a=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(b){null!=b.parentNode&&(b=new mxRectangle(b.offsetLeft,b.offsetTop,b.offsetWidth,b.offsetHeight),null==a?a=b:a.add(b))});return a};
HoverIcons.prototype.getState=function(a){if(null!=a)if(a=a.cell,this.graph.getModel().contains(a)){if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var b=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(b)&&this.graph.isCellConnectable(b)&&(a=b)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a);null!=a&&null==a.style&&(a=null)}else a=null;return a};
HoverIcons.prototype.update=function(a,b,e){if(!this.graph.connectionArrowsEnabled||null!=a&&"0"==mxUtils.getValue(a.style,"allowArrows","1"))this.reset();else{null!=a&&null!=a.cell.geometry&&a.cell.geometry.relative&&this.graph.model.isEdge(a.cell.parent)&&(a=null);var d=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,d=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||
this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,b,e))}),this.updateDelay+10))):null!=this.startTime&&(d=(new Date).getTime()-this.startTime);this.setDisplay("");null!=this.currentState&&this.currentState!=a&&d<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,b,e)?this.reset(!1):(null!=this.currentState||d>this.activationDelay)&&this.currentState!=a&&(d>this.updateDelay&&null!=a||null==this.bbox||null==b||null==e||!mxUtils.contains(this.bbox,
b,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()):this.reset())}};
-HoverIcons.prototype.setCurrentState=function(a){"eastwest"!=a.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=a};Graph.prototype.createParent=function(a,b,e,d,n){a=this.cloneCell(a);for(var l=0;l<e;l++){var t=this.cloneCell(b),q=this.getCellGeometry(t);null!=q&&(q.x+=l*d,q.y+=l*n);a.insert(t)}return a};
-Graph.prototype.createTable=function(a,b,e,d,n,l,t,q,c){e=null!=e?e:60;d=null!=d?d:40;l=null!=l?l:30;q=null!=q?q:"shape=partialRectangle;html=1;whiteSpace=wrap;collapsible=0;dropTarget=0;pointerEvents=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";c=null!=c?c:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;";return this.createParent(this.createVertex(null,null,null!=n?n:"",
-0,0,b*e,a*d+(null!=n?l:0),null!=t?t:"shape=table;html=1;whiteSpace=wrap;startSize="+(null!=n?l:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,b*e,d,q),this.createVertex(null,null,"",0,0,e,d,c),b,e,0),a,0,d)};
-Graph.prototype.setTableValues=function(a,b,e){for(var d=this.model.getChildCells(a,!0),n=0;n<d.length;n++)if(null!=e&&(d[n].value=e[n]),null!=b)for(var l=this.model.getChildCells(d[n],!0),t=0;t<l.length;t++)null!=b[n][t]&&(l[t].value=b[n][t]);return a};
-Graph.prototype.createCrossFunctionalSwimlane=function(a,b,e,d,n,l,t,q,c){e=null!=e?e:120;d=null!=d?d:120;n=null!=n?n:40;t=null!=t?t:"swimlane;horizontal=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize="+n+";html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";q=null!=q?q:"swimlane;connectable=0;startSize=40;html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";c=null!=c?c:"swimlane;connectable=0;startSize=0;html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";
-n=this.createVertex(null,null,"",0,0,b*e,a*d,null!=l?l:"shape=table;childLayout=tableLayout;rowLines=0;columnLines=0;startSize="+n+";html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");l=mxUtils.getValue(this.getCellStyle(n),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n.geometry.width+=l;n.geometry.height+=l;t=this.createVertex(null,null,"",0,l,b*e+l,d,t);n.insert(this.createParent(t,this.createVertex(null,null,"",l,0,e,d,q),b,e,0));return 1<a?(t.geometry.y=
-d+l,this.createParent(n,this.createParent(t,this.createVertex(null,null,"",l,0,e,d,c),b,e,0),a-1,0,d)):n};Graph.prototype.isTableCell=function(a){return this.model.isVertex(a)&&this.isTableRow(this.model.getParent(a))};Graph.prototype.isTableRow=function(a){return this.model.isVertex(a)&&this.isTable(this.model.getParent(a))};Graph.prototype.isTable=function(a){a=this.getCellStyle(a);return null!=a&&"tableLayout"==a.childLayout};
-Graph.prototype.setTableRowHeight=function(a,b,e){e=null!=e?e:!0;var d=this.getModel();d.beginUpdate();try{var n=this.getCellGeometry(a);if(null!=n){n=n.clone();n.height+=b;d.setGeometry(a,n);var l=d.getParent(a),t=d.getChildCells(l,!0);if(!e){var q=mxUtils.indexOf(t,a);if(q<t.length-1){var c=t[q+1],f=this.getCellGeometry(c);null!=f&&(f=f.clone(),f.y+=b,f.height-=b,d.setGeometry(c,f))}}var g=this.getCellGeometry(l);null!=g&&(e||(e=a==t[t.length-1]),e&&(g=g.clone(),g.height+=b,d.setGeometry(l,g)));
-null!=this.layoutManager&&this.layoutManager.executeLayout(l,!0)}}finally{d.endUpdate()}};
-Graph.prototype.setTableColumnWidth=function(a,b,e){e=null!=e?e:!1;var d=this.getModel(),n=d.getParent(a),l=d.getParent(n),t=d.getChildCells(n,!0);a=mxUtils.indexOf(t,a);var q=a==t.length-1;d.beginUpdate();try{for(var c=d.getChildCells(l,!0),f=0;f<c.length;f++){var n=c[f],t=d.getChildCells(n,!0),g=t[a],m=this.getCellGeometry(g);null!=m&&(m=m.clone(),m.width+=b,d.setGeometry(g,m));a<t.length-1&&(g=t[a+1],m=this.getCellGeometry(g),null!=m&&(m=m.clone(),m.x+=b,e||(m.width-=b),d.setGeometry(g,m)))}if(q||
-e){var k=this.getCellGeometry(l);null!=k&&(k=k.clone(),k.width+=b,d.setGeometry(l,k))}null!=this.layoutManager&&this.layoutManager.executeLayout(l,!0)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
-TableLayout.prototype.getSize=function(a,b){for(var e=0,d=0;d<a.length;d++)if(!this.isVertexIgnored(a[d])){var n=this.graph.getCellGeometry(a[d]);null!=n&&(e+=b?n.width:n.height)}return e};TableLayout.prototype.getRowLayout=function(a,b){for(var e=this.graph.model.getChildCells(a,!0),d=this.graph.getActualStartSize(a,!0),n=this.getSize(e,!0),l=b-d.x-d.width,t=[],d=d.x,q=0;q<e.length;q++){var c=this.graph.getCellGeometry(e[q]);null!=c&&(d+=c.width*l/n,t.push(Math.round(d)))}return t};
-TableLayout.prototype.layoutRow=function(a,b,e,d){var n=this.graph.getModel(),l=n.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var t=a.x,q=0;null!=b&&(b=b.slice(),b.splice(0,0,a.x));for(var c=0;c<l.length;c++){var f=this.graph.getCellGeometry(l[c]);null!=f&&(f=f.clone(),f.y=a.y,f.height=e-a.y-a.height,null!=b?(f.x=b[c],f.width=b[c+1]-f.x,c==l.length-1&&c<b.length-2&&(f.width=d-f.x-a.x-a.width)):(f.x=t,t+=f.width,c==l.length-1?f.width=d-a.x-a.width-q:q+=f.width),n.setGeometry(l[c],f))}return q};
-TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),e=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),n="1"==mxUtils.getValue(d,"resizeLastRow","0"),l="1"==mxUtils.getValue(d,"resizeLast","0"),d="1"==mxUtils.getValue(d,"fixedRows","0"),t=this.graph.getModel(),q=0;t.beginUpdate();try{var c=e.height-b.y-b.height,f=e.width-b.x-b.width,g=t.getChildCells(a,!0),m=this.getSize(g,!1);if(0<c&&0<f&&0<g.length&&0<m){if(n){var k=this.graph.getCellGeometry(g[g.length-
-1]);null!=k&&(k=k.clone(),k.height=c-m+k.height,t.setGeometry(g[g.length-1],k))}for(var p=l?null:this.getRowLayout(g[0],f),u=b.y,A=0;A<g.length;A++)k=this.graph.getCellGeometry(g[A]),null!=k&&(k=k.clone(),k.x=b.x,k.width=f,k.y=Math.round(u),u=n||d?u+k.height:u+k.height/m*c,k.height=Math.round(u)-k.y,t.setGeometry(g[A],k)),q=Math.max(q,this.layoutRow(g[A],p,k.height,f));d&&c<m&&(e=e.clone(),e.height=u+b.height,t.setGeometry(a,e));l&&f<q+Graph.minTableColumnWidth&&(e=e.clone(),e.width=q+b.width+b.x+
-Graph.minTableColumnWidth,t.setGeometry(a,e))}}finally{t.endUpdate()}}};
+HoverIcons.prototype.setCurrentState=function(a){"eastwest"!=a.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=a};Graph.prototype.createParent=function(a,b,e,d,l){a=this.cloneCell(a);for(var m=0;m<e;m++){var u=this.cloneCell(b),q=this.getCellGeometry(u);null!=q&&(q.x+=m*d,q.y+=m*l);a.insert(u)}return a};
+Graph.prototype.createTable=function(a,b,e,d,l,m,u,q,c){e=null!=e?e:60;d=null!=d?d:40;m=null!=m?m:30;q=null!=q?q:"shape=partialRectangle;html=1;whiteSpace=wrap;collapsible=0;dropTarget=0;pointerEvents=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";c=null!=c?c:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;";return this.createParent(this.createVertex(null,null,null!=l?l:"",
+0,0,b*e,a*d+(null!=l?m:0),null!=u?u:"shape=table;html=1;whiteSpace=wrap;startSize="+(null!=l?m:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,b*e,d,q),this.createVertex(null,null,"",0,0,e,d,c),b,e,0),a,0,d)};
+Graph.prototype.setTableValues=function(a,b,e){for(var d=this.model.getChildCells(a,!0),l=0;l<d.length;l++)if(null!=e&&(d[l].value=e[l]),null!=b)for(var m=this.model.getChildCells(d[l],!0),u=0;u<m.length;u++)null!=b[l][u]&&(m[u].value=b[l][u]);return a};
+Graph.prototype.createCrossFunctionalSwimlane=function(a,b,e,d,l,m,u,q,c){e=null!=e?e:120;d=null!=d?d:120;l=null!=l?l:40;u=null!=u?u:"swimlane;horizontal=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize="+l+";html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";q=null!=q?q:"swimlane;connectable=0;startSize=40;html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";c=null!=c?c:"swimlane;connectable=0;startSize=0;html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";
+l=this.createVertex(null,null,"",0,0,b*e,a*d,null!=m?m:"shape=table;childLayout=tableLayout;rowLines=0;columnLines=0;startSize="+l+";html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");m=mxUtils.getValue(this.getCellStyle(l),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);l.geometry.width+=m;l.geometry.height+=m;u=this.createVertex(null,null,"",0,m,b*e+m,d,u);l.insert(this.createParent(u,this.createVertex(null,null,"",m,0,e,d,q),b,e,0));return 1<a?(u.geometry.y=
+d+m,this.createParent(l,this.createParent(u,this.createVertex(null,null,"",m,0,e,d,c),b,e,0),a-1,0,d)):l};Graph.prototype.isTableCell=function(a){return this.model.isVertex(a)&&this.isTableRow(this.model.getParent(a))};Graph.prototype.isTableRow=function(a){return this.model.isVertex(a)&&this.isTable(this.model.getParent(a))};Graph.prototype.isTable=function(a){a=this.getCellStyle(a);return null!=a&&"tableLayout"==a.childLayout};
+Graph.prototype.setTableRowHeight=function(a,b,e){e=null!=e?e:!0;var d=this.getModel();d.beginUpdate();try{var l=this.getCellGeometry(a);if(null!=l){l=l.clone();l.height+=b;d.setGeometry(a,l);var m=d.getParent(a),u=d.getChildCells(m,!0);if(!e){var q=mxUtils.indexOf(u,a);if(q<u.length-1){var c=u[q+1],f=this.getCellGeometry(c);null!=f&&(f=f.clone(),f.y+=b,f.height-=b,d.setGeometry(c,f))}}var g=this.getCellGeometry(m);null!=g&&(e||(e=a==u[u.length-1]),e&&(g=g.clone(),g.height+=b,d.setGeometry(m,g)));
+null!=this.layoutManager&&this.layoutManager.executeLayout(m,!0)}}finally{d.endUpdate()}};
+Graph.prototype.setTableColumnWidth=function(a,b,e){e=null!=e?e:!1;var d=this.getModel(),l=d.getParent(a),m=d.getParent(l),u=d.getChildCells(l,!0);a=mxUtils.indexOf(u,a);var q=a==u.length-1;d.beginUpdate();try{for(var c=d.getChildCells(m,!0),f=0;f<c.length;f++){var l=c[f],u=d.getChildCells(l,!0),g=u[a],k=this.getCellGeometry(g);null!=k&&(k=k.clone(),k.width+=b,d.setGeometry(g,k));a<u.length-1&&(g=u[a+1],k=this.getCellGeometry(g),null!=k&&(k=k.clone(),k.x+=b,e||(k.width-=b),d.setGeometry(g,k)))}if(q||
+e){var p=this.getCellGeometry(m);null!=p&&(p=p.clone(),p.width+=b,d.setGeometry(m,p))}null!=this.layoutManager&&this.layoutManager.executeLayout(m,!0)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+TableLayout.prototype.getSize=function(a,b){for(var e=0,d=0;d<a.length;d++)if(!this.isVertexIgnored(a[d])){var l=this.graph.getCellGeometry(a[d]);null!=l&&(e+=b?l.width:l.height)}return e};TableLayout.prototype.getRowLayout=function(a,b){for(var e=this.graph.model.getChildCells(a,!0),d=this.graph.getActualStartSize(a,!0),l=this.getSize(e,!0),m=b-d.x-d.width,u=[],d=d.x,q=0;q<e.length;q++){var c=this.graph.getCellGeometry(e[q]);null!=c&&(d+=c.width*m/l,u.push(Math.round(d)))}return u};
+TableLayout.prototype.layoutRow=function(a,b,e,d){var l=this.graph.getModel(),m=l.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var u=a.x,q=0;null!=b&&(b=b.slice(),b.splice(0,0,a.x));for(var c=0;c<m.length;c++){var f=this.graph.getCellGeometry(m[c]);null!=f&&(f=f.clone(),f.y=a.y,f.height=e-a.y-a.height,null!=b?(f.x=b[c],f.width=b[c+1]-f.x,c==m.length-1&&c<b.length-2&&(f.width=d-f.x-a.x-a.width)):(f.x=u,u+=f.width,c==m.length-1?f.width=d-a.x-a.width-q:q+=f.width),l.setGeometry(m[c],f))}return q};
+TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),e=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),l="1"==mxUtils.getValue(d,"resizeLastRow","0"),m="1"==mxUtils.getValue(d,"resizeLast","0"),d="1"==mxUtils.getValue(d,"fixedRows","0"),u=this.graph.getModel(),q=0;u.beginUpdate();try{var c=e.height-b.y-b.height,f=e.width-b.x-b.width,g=u.getChildCells(a,!0),k=this.getSize(g,!1);if(0<c&&0<f&&0<g.length&&0<k){if(l){var p=this.graph.getCellGeometry(g[g.length-
+1]);null!=p&&(p=p.clone(),p.height=c-k+p.height,u.setGeometry(g[g.length-1],p))}for(var t=m?null:this.getRowLayout(g[0],f),v=b.y,A=0;A<g.length;A++)p=this.graph.getCellGeometry(g[A]),null!=p&&(p=p.clone(),p.x=b.x,p.width=f,p.y=Math.round(v),v=l||d?v+p.height:v+p.height/k*c,p.height=Math.round(v)-p.y,u.setGeometry(g[A],p)),q=Math.max(q,this.layoutRow(g[A],t,p.height,f));d&&c<k&&(e=e.clone(),e.height=v+b.height,u.setGeometry(a,e));m&&f<q+Graph.minTableColumnWidth&&(e=e.clone(),e.width=q+b.width+b.x+
+Graph.minTableColumnWidth,u.setGeometry(a,e))}}finally{u.endUpdate()}}};
(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){c=null!=c?c:!0;var d=this.getState(a);null!=d&&c&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=b.apply(this,
arguments);null!=d&&c&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var e=mxShape.prototype.paint;mxShape.prototype.paint=function(){e.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var a=this.node.getElementsByTagName("path");if(1<a.length){"1"!=mxUtils.getValue(this.state.style,
-mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var c=this.state.view.graph.getFlowAnimationStyle();null!=c&&a[1].setAttribute("class",c.getAttribute("id"))}}};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return d.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var n=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
-function(a){n.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var f=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=
-c||e.x!=b||e.y!=f},e=.5*this.scale,b=!1,d=[],g=0;g<c.length-1;g++){for(var n=c[g+1],l=c[g],q=[],t=c[g+2];g<c.length-2&&mxUtils.ptSegDistSq(l.x,l.y,t.x,t.y,n.x,n.y)<1*this.scale*this.scale;)n=t,g++,t=c[g+2];for(var b=f(0,l.x,l.y)||b,I=0;I<this.validEdges.length;I++){var G=this.validEdges[I],K=G.absolutePoints;if(null!=K&&mxUtils.intersects(a,G)&&"1"!=G.style.noJump)for(G=0;G<K.length-1;G++){for(var E=K[G+1],J=K[G],t=K[G+2];G<K.length-2&&mxUtils.ptSegDistSq(J.x,J.y,t.x,t.y,E.x,E.y)<1*this.scale*this.scale;)E=
-t,G++,t=K[G+2];t=mxUtils.intersection(l.x,l.y,n.x,n.y,J.x,J.y,E.x,E.y);if(null!=t&&(Math.abs(t.x-l.x)>e||Math.abs(t.y-l.y)>e)&&(Math.abs(t.x-n.x)>e||Math.abs(t.y-n.y)>e)&&(Math.abs(t.x-J.x)>e||Math.abs(t.y-J.y)>e)&&(Math.abs(t.x-E.x)>e||Math.abs(t.y-E.y)>e)){E=t.x-l.x;J=t.y-l.y;t={distSq:E*E+J*J,x:t.x,y:t.y};for(E=0;E<q.length;E++)if(q[E].distSq>t.distSq){q.splice(E,0,t);t=null;break}null==t||0!=q.length&&q[q.length-1].x===t.x&&q[q.length-1].y===t.y||q.push(t)}}}for(G=0;G<q.length;G++)b=f(1,q[G].x,
-q[G].y)||b}t=c[c.length-1];b=f(0,t.x,t.y)||b}a.routedPoints=d;return b}return!1};var l=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)l.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),g=!0,k=null,m=null,n=[],q=null;a.begin();for(var t=0;t<this.state.routedPoints.length;t++){var G=this.state.routedPoints[t],K=new mxPoint(G.x/this.scale,G.y/this.scale);0==t?K=c[0]:t==this.state.routedPoints.length-1&&(K=c[c.length-1]);var E=!1;if(null!=k&&1==G.type){var J=this.state.routedPoints[t+1],G=J.x/this.scale-K.x,J=J.y/this.scale-K.y,G=G*G+J*J;null==q&&(q=new mxPoint(K.x-k.x,K.y-k.y),
-m=Math.sqrt(q.x*q.x+q.y*q.y),0<m?(q.x=q.x*f/m,q.y=q.y*f/m):q=null);G>f*f&&0<m&&(G=k.x-K.x,J=k.y-K.y,G=G*G+J*J,G>f*f&&(E=new mxPoint(K.x-q.x,K.y-q.y),G=new mxPoint(K.x+q.x,K.y+q.y),n.push(E),this.addPoints(a,n,b,d,!1,null,g),n=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,g=!1,"sharp"==e?(a.lineTo(E.x-q.y*n,E.y+q.x*n),a.lineTo(G.x-q.y*n,G.y+q.x*n),a.lineTo(G.x,G.y)):"arc"==e?(n*=1.3,a.curveTo(E.x-q.y*n,E.y+q.x*n,G.x-q.y*n,G.y+q.x*n,G.x,G.y)):(a.moveTo(G.x,G.y),g=!0),n=[G],E=!0))}else q=
-null;E||(n.push(K),k=K)}this.addPoints(a,n,b,d,!1,null,g);a.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,b,d){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):t.apply(this,arguments)};var q=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,b,d){if(null==c||null==a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)q.apply(this,
-arguments);else{c=this.getTerminalPort(a,c,d);var f=this.getNextPoint(a,b,d),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var m=Math.cos(-g),p=Math.sin(-g),f=mxUtils.getRotatedPoint(f,m,p,k);m=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);m+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(c,
-f,0==g&&e,m);0!=g&&(m=Math.cos(g),p=Math.sin(g),f=mxUtils.getRotatedPoint(f,m,p,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,b,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,f){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var e=0;e<a.length;e++){var g=this.graph.getConnectionPoint(c,a[e]);if(null!=g){var k=(g.x-f.x)*(g.x-f.x)+(g.y-f.y)*(g.y-f.y);if(null==d||k<d)b=g,d=k}}null!=b&&(f=b)}return f};var c=mxStencil.prototype.evaluateTextAttribute;
+mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var c=this.state.view.graph.getFlowAnimationStyle();null!=c&&a[1].setAttribute("class",c.getAttribute("id"))}}};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return d.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var l=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
+function(a){l.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var f=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=
+c||e.x!=b||e.y!=f},e=.5*this.scale,b=!1,d=[],g=0;g<c.length-1;g++){for(var l=c[g+1],m=c[g],q=[],u=c[g+2];g<c.length-2&&mxUtils.ptSegDistSq(m.x,m.y,u.x,u.y,l.x,l.y)<1*this.scale*this.scale;)l=u,g++,u=c[g+2];for(var b=f(0,m.x,m.y)||b,G=0;G<this.validEdges.length;G++){var J=this.validEdges[G],H=J.absolutePoints;if(null!=H&&mxUtils.intersects(a,J)&&"1"!=J.style.noJump)for(J=0;J<H.length-1;J++){for(var D=H[J+1],K=H[J],u=H[J+2];J<H.length-2&&mxUtils.ptSegDistSq(K.x,K.y,u.x,u.y,D.x,D.y)<1*this.scale*this.scale;)D=
+u,J++,u=H[J+2];u=mxUtils.intersection(m.x,m.y,l.x,l.y,K.x,K.y,D.x,D.y);if(null!=u&&(Math.abs(u.x-m.x)>e||Math.abs(u.y-m.y)>e)&&(Math.abs(u.x-l.x)>e||Math.abs(u.y-l.y)>e)&&(Math.abs(u.x-K.x)>e||Math.abs(u.y-K.y)>e)&&(Math.abs(u.x-D.x)>e||Math.abs(u.y-D.y)>e)){D=u.x-m.x;K=u.y-m.y;u={distSq:D*D+K*K,x:u.x,y:u.y};for(D=0;D<q.length;D++)if(q[D].distSq>u.distSq){q.splice(D,0,u);u=null;break}null==u||0!=q.length&&q[q.length-1].x===u.x&&q[q.length-1].y===u.y||q.push(u)}}}for(J=0;J<q.length;J++)b=f(1,q[J].x,
+q[J].y)||b}u=c[c.length-1];b=f(0,u.x,u.y)||b}a.routedPoints=d;return b}return!1};var m=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)m.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),g=!0,k=null,p=null,l=[],q=null;a.begin();for(var u=0;u<this.state.routedPoints.length;u++){var J=this.state.routedPoints[u],H=new mxPoint(J.x/this.scale,J.y/this.scale);0==u?H=c[0]:u==this.state.routedPoints.length-1&&(H=c[c.length-1]);var D=!1;if(null!=k&&1==J.type){var K=this.state.routedPoints[u+1],J=K.x/this.scale-H.x,K=K.y/this.scale-H.y,J=J*J+K*K;null==q&&(q=new mxPoint(H.x-k.x,H.y-k.y),
+p=Math.sqrt(q.x*q.x+q.y*q.y),0<p?(q.x=q.x*f/p,q.y=q.y*f/p):q=null);J>f*f&&0<p&&(J=k.x-H.x,K=k.y-H.y,J=J*J+K*K,J>f*f&&(D=new mxPoint(H.x-q.x,H.y-q.y),J=new mxPoint(H.x+q.x,H.y+q.y),l.push(D),this.addPoints(a,l,b,d,!1,null,g),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,g=!1,"sharp"==e?(a.lineTo(D.x-q.y*l,D.y+q.x*l),a.lineTo(J.x-q.y*l,J.y+q.x*l),a.lineTo(J.x,J.y)):"arc"==e?(l*=1.3,a.curveTo(D.x-q.y*l,D.y+q.x*l,J.x-q.y*l,J.y+q.x*l,J.x,J.y)):(a.moveTo(J.x,J.y),g=!0),l=[J],D=!0))}else q=
+null;D||(l.push(H),k=H)}this.addPoints(a,l,b,d,!1,null,g);a.stroke()}};var u=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,b,d){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):u.apply(this,arguments)};var q=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,b,d){if(null==c||null==a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)q.apply(this,
+arguments);else{c=this.getTerminalPort(a,c,d);var f=this.getNextPoint(a,b,d),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var p=Math.cos(-g),t=Math.sin(-g),f=mxUtils.getRotatedPoint(f,p,t,k);p=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);p+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(c,
+f,0==g&&e,p);0!=g&&(p=Math.cos(g),t=Math.sin(g),f=mxUtils.getRotatedPoint(f,p,t,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,b,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,f){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var e=0;e<a.length;e++){var g=this.graph.getConnectionPoint(c,a[e]);if(null!=g){var k=(g.x-f.x)*(g.x-f.x)+(g.y-f.y)*(g.y-f.y);if(null==d||k<d)b=g,d=k}}null!=b&&(f=b)}return f};var c=mxStencil.prototype.evaluateTextAttribute;
mxStencil.prototype.evaluateTextAttribute=function(a,b,d){var f=c.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=d.state&&(f=d.state.view.graph.replacePlaceholders(d.state.cell,f));return f};var f=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"string"===typeof c&&"stencil("==c.substring(0,8))try{var b=c.substring(8,c.length-
-1),d=mxUtils.parseXml(Graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(u){null!=window.console&&console.log("Error in shape: "+u)}}return f.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];mxStencilRegistry.filesLoaded={};
-mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var d=0;d<b.length;d++){var n=b[d];if(!mxStencilRegistry.filesLoaded[n])if(mxStencilRegistry.filesLoaded[n]=!0,".xml"==n.toLowerCase().substring(n.length-4,n.length))mxStencilRegistry.loadStencilSet(n,
-null);else if(".js"==n.toLowerCase().substring(n.length-3,n.length))try{if(mxStencilRegistry.allowEval){var l=mxUtils.load(n);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(t){null!=window.console&&console.log("error in getStencil:",a,e,b,n,t)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
+1),d=mxUtils.parseXml(Graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(v){null!=window.console&&console.log("Error in shape: "+v)}}return f.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];mxStencilRegistry.filesLoaded={};
+mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var d=0;d<b.length;d++){var l=b[d];if(!mxStencilRegistry.filesLoaded[l])if(mxStencilRegistry.filesLoaded[l]=!0,".xml"==l.toLowerCase().substring(l.length-4,l.length))mxStencilRegistry.loadStencilSet(l,
+null);else if(".js"==l.toLowerCase().substring(l.length-3,l.length))try{if(mxStencilRegistry.allowEval){var m=mxUtils.load(l);null!=m&&200<=m.getStatus()&&299>=m.getStatus()&&eval.call(window,m.getText())}}catch(u){null!=window.console&&console.log("error in getStencil:",a,e,b,l,u)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
mxStencilRegistry.getBasenameForStencil=function(a){var b=null;if(null!=a&&"string"===typeof a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var b=a[1],e=2;e<a.length-1;e++)b+="/"+a[e];return b};
-mxStencilRegistry.loadStencilSet=function(a,b,e,d){var n=mxStencilRegistry.packages[a];if(null!=e&&e||null==n){var l=!1;if(null==n)try{if(d){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(d){null!=d&&null!=d.documentElement&&(mxStencilRegistry.packages[a]=d,l=!0,mxStencilRegistry.parseStencilSet(d.documentElement,b,l))}));return}n=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=n;l=!0}catch(t){null!=window.console&&console.log("error in loadStencilSet:",a,t)}null!=n&&null!=
-n.documentElement&&mxStencilRegistry.parseStencilSet(n.documentElement,b,l)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var d=a.firstChild;null!=d;)"shapes"==d.nodeName&&mxStencilRegistry.parseStencilSet(d,b,e),d=d.nextSibling;else{e=null!=e?e:!0;var d=a.firstChild,n="";a=a.getAttribute("name");for(null!=a&&(n=a+".");null!=d;){if(d.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=d.getAttribute("name"),null!=a)){var n=n.toLowerCase(),l=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(n+l.toLowerCase(),new mxStencil(d));if(null!=b){var t=d.getAttribute("w"),
-q=d.getAttribute("h"),t=null==t?80:parseInt(t,10),q=null==q?80:parseInt(q,10);b(n,l,a,t,q)}}d=d.nextSibling}}};
+mxStencilRegistry.loadStencilSet=function(a,b,e,d){var l=mxStencilRegistry.packages[a];if(null!=e&&e||null==l){var m=!1;if(null==l)try{if(d){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(d){null!=d&&null!=d.documentElement&&(mxStencilRegistry.packages[a]=d,m=!0,mxStencilRegistry.parseStencilSet(d.documentElement,b,m))}));return}l=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=l;m=!0}catch(u){null!=window.console&&console.log("error in loadStencilSet:",a,u)}null!=l&&null!=
+l.documentElement&&mxStencilRegistry.parseStencilSet(l.documentElement,b,m)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)};
+mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var d=a.firstChild;null!=d;)"shapes"==d.nodeName&&mxStencilRegistry.parseStencilSet(d,b,e),d=d.nextSibling;else{e=null!=e?e:!0;var d=a.firstChild,l="";a=a.getAttribute("name");for(null!=a&&(l=a+".");null!=d;){if(d.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=d.getAttribute("name"),null!=a)){var l=l.toLowerCase(),m=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(l+m.toLowerCase(),new mxStencil(d));if(null!=b){var u=d.getAttribute("w"),
+q=d.getAttribute("h"),u=null==u?80:parseInt(u,10),q=null==q?80:parseInt(q,10);b(l,m,a,u,q)}}d=d.nextSibling}}};
"undefined"!=typeof mxVertexHandler&&function(){function a(){var a=document.createElement("div");a.className="geHint";a.style.whiteSpace="nowrap";a.style.position="absolute";return a}function b(a,c){switch(c){case mxConstants.POINTS:return a;case mxConstants.MILLIMETERS:return(a/mxConstants.PIXELS_PER_MM).toFixed(1);case mxConstants.INCHES:return(a/mxConstants.PIXELS_PER_INCH).toFixed(2)}}mxConstants.HANDLE_FILLCOLOR="#29b6f2";mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR=
"#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR="#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=
-!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var e=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(a){return e.apply(this,arguments)||this.graph.isTableRow(a)||this.graph.isTableCell(a)};var d=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(a){return d.apply(this,arguments)||this.graph.isEdgeIgnored(a)};var n=mxConnectionHandler.prototype.isCreateTarget;
-mxConnectionHandler.prototype.isCreateTarget=function(a){return this.graph.isCloneEvent(a)||n.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,
-null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var l=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=l.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var t=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=
-function(){var a=t.apply(this,arguments),c=a.getCell;a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){for(var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",c="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),
+!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var e=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(a){return e.apply(this,arguments)||this.graph.isTableRow(a)||this.graph.isTableCell(a)};var d=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(a){return d.apply(this,arguments)||this.graph.isEdgeIgnored(a)};var l=mxConnectionHandler.prototype.isCreateTarget;
+mxConnectionHandler.prototype.isCreateTarget=function(a){return this.graph.isCloneEvent(a)||l.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,
+null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var m=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=m.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var u=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=
+function(){var a=u.apply(this,arguments),c=a.getCell;a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){for(var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",c="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),
b=0;b<c.length;b++)null!=this.currentEdgeStyle[c[b]]&&(a+=c[b]+"="+this.currentEdgeStyle[c[b]]+";");null!=this.currentEdgeStyle.orthogonalLoop?a+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&(a+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?a+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(a+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+
";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.updateCellStyles=function(a,c,b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)if(this.model.isVertex(b[d])||this.model.isEdge(b[d])){this.setCellStyles(a,null,[b[d]]);var f=this.getCellStyle(b[d])[a];c!=(null==f?mxConstants.NONE:f)&&this.setCellStyles(a,
c,[b[d]])}}finally{this.model.endUpdate()}};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,c){c=null!=c?c:{};for(var b=0;b<a.length;b++){var d=a[b];c[mxObjectIdentity.get(d)]=
d.getId();for(var f=this.model.getChildCount(d),e=0;e<f;e++)this.createCellLookup([this.model.getChildAt(d,e)],c)}return c};Graph.prototype.createCellMapping=function(a,c,b){b=null!=b?b:{};for(var d in a){var f=c[d];null==b[f]&&(b[f]=a[d].getId()||"")}return b};Graph.prototype.importGraphModel=function(a,c,b,d){c=null!=c?c:0;b=null!=b?b:0;var f=new mxCodec(a.ownerDocument),e=new mxGraphModel;f.decode(a,e);a=[];var f={},g={},k=e.getChildren(this.cloneCell(e.root,this.isCloneInvalidEdges(),f));if(null!=
-k){var m=this.createCellLookup([e.root]),k=k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(e=0;e<k.length;e++)x=this.model.getChildren(this.moveCells([k[e]],c,b,!1,this.model.getRoot())[0]),null!=x&&(a=a.concat(x));else{var x=e.getChildren(k[0]);null!=x&&(a=this.moveCells(x,c,b,!1,this.getDefaultParent()),g[e.getChildAt(e.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(f,m,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&
-(c=this.snap(c),b=this.snap(b));var p=this.getBoundingBoxFromGeometry(a,!0);null!=p&&this.moveCells(a,c-p.x,b-p.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c={},b=this.cloneCells(a,null,c),d=new mxDictionary,f=0;f<a.length;f++)d.put(a[f],!0);for(var e=new mxCodec,g=new mxGraphModel,k=g.getChildAt(g.getRoot(),0),f=0;f<b.length;f++){g.add(k,b[f]);var m=this.view.getState(a[f]);if(null!=m){var x=this.getCellGeometry(b[f]);null!=x&&x.relative&&!this.model.isEdge(a[f])&&
-null==d.get(this.model.getParent(a[f]))&&(x.offset=null,x.relative=!1,x.x=m.x/m.view.scale-m.view.translate.x,x.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(c,this.createCellLookup(a)),b);return e.encode(g)};Graph.prototype.isSwimlane=function(a,c){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var b=this.getCurrentCellStyle(a,c)[mxConstants.STYLE_SHAPE];return b==mxConstants.SHAPE_SWIMLANE||"table"==b}return!1};var q=Graph.prototype.isExtendParent;
-Graph.prototype.isExtendParent=function(a){var c=this.model.getParent(a);if(null!=c){var b=this.getCurrentCellStyle(c);if(null!=b.expand)return"0"!=b.expand}return q.apply(this,arguments)&&(null==c||!this.isTable(c))};var c=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,b,d,f,e,g,k,m){null==m&&(m=this.model.getParent(a),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(g,k,null,!0,!1));d=null;this.model.beginUpdate();try{d=c.apply(this,[a,b,d,f,e,g,k,m]);this.model.setValue(d,
-"");var x=this.getChildCells(d,!0);for(b=0;b<x.length;b++){var p=this.getCellGeometry(x[b]);null!=p&&p.relative&&0<p.x&&this.model.remove(x[b])}var u=this.getChildCells(a,!0);for(b=0;b<u.length;b++)p=this.getCellGeometry(u[b]),null!=p&&p.relative&&0>=p.x&&this.model.remove(u[b]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[d]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[d]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
-mxConstants.NONE,[a]);var R=this.model.getTerminal(d,!1);if(null!=R){var n=this.getCurrentCellStyle(R);null!=n&&"1"==n.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[d]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[d]))}}finally{this.model.endUpdate()}return d};var f=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,c,b){if(c||b)f.apply(this,arguments);
-else{var d=this.getSelectionCell(),e=null,g=[],k=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(g.push(c),c==d)e=g.length-1;else if(a&&null==d&&0<g.length||null!=e&&a&&g.length>e||!a&&0<e)return;for(var b=0;b<this.model.getChildCount(c);b++)k(this.model.getChildAt(c,b))});k(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(a?1:-1),g.length):0,this.setSelectionCell(g[e]))}};var g=Graph.prototype.moveCells;Graph.prototype.moveCells=
-function(a,c,b,d,f,e,k){k=null!=k?k:{};if(this.isTable(f)){for(var m=[],x=0;x<a.length;x++)this.isTable(a[x])?m=m.concat(this.model.getChildCells(a[x],!0).reverse()):m.push(a[x]);a=m}this.model.beginUpdate();try{m=[];for(x=0;x<a.length;x++)if(null!=f&&this.isTableRow(a[x])){var p=this.model.getParent(a[x]),u=this.getCellGeometry(a[x]);this.isTable(p)&&m.push(p);if(null!=p&&null!=u&&this.isTable(p)&&this.isTable(f)&&(d||p!=f)){if(!d){var R=this.getCellGeometry(p);null!=R&&(R=R.clone(),R.height-=u.height,
-this.model.setGeometry(p,R))}R=this.getCellGeometry(f);null!=R&&(R=R.clone(),R.height+=u.height,this.model.setGeometry(f,R));var n=this.model.getChildCells(f,!0);if(0<n.length){a[x]=d?this.cloneCell(a[x]):a[x];var l=this.model.getChildCells(a[x],!0),q=this.model.getChildCells(n[0],!0),B=q.length-l.length;if(0<B)for(var C=0;C<B;C++){var z=this.cloneCell(l[l.length-1]);null!=z&&(z.value="",this.model.add(a[x],z))}else if(0>B)for(C=0;C>B;C--)this.model.remove(l[l.length+C-1]);l=this.model.getChildCells(a[x],
-!0);for(C=0;C<q.length;C++){var y=this.getCellGeometry(q[C]),N=this.getCellGeometry(l[C]);null!=y&&null!=N&&(N=N.clone(),N.width=y.width,this.model.setGeometry(l[C],N))}}}}for(var D=g.apply(this,arguments),x=0;x<m.length;x++)!d&&this.model.contains(m[x])&&0==this.model.getChildCount(m[x])&&this.model.remove(m[x]);d&&this.updateCustomLinks(this.createCellMapping(k,this.createCellLookup(a)),D)}finally{this.model.endUpdate()}return D};var m=Graph.prototype.removeCells;Graph.prototype.removeCells=function(a,
-c){var b=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var f=this.model.getParent(a[d]),e=this.model.getParent(f);1==this.model.getChildCount(f)&&1==this.model.getChildCount(e)?0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e)&&b.push(e):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(e=this.model.getParent(a[d]),0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e))){for(var g=this.model.getChildCells(e,!0),k=0,x=0;x<g.length;x++)0<=mxUtils.indexOf(a,g[x])&&
-k++;k==g.length&&b.push(e)}b.push(a[d])}b=m.apply(this,[b,c])}finally{this.model.endUpdate()}return b};Graph.prototype.updateCustomLinks=function(a,c){for(var b=0;b<c.length;b++)null!=c[b]&&this.updateCustomLinksForCell(a,c[b])};Graph.prototype.updateCustomLinksForCell=function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0],
+k){var p=this.createCellLookup([e.root]),k=k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(e=0;e<k.length;e++)n=this.model.getChildren(this.moveCells([k[e]],c,b,!1,this.model.getRoot())[0]),null!=n&&(a=a.concat(n));else{var n=e.getChildren(k[0]);null!=n&&(a=this.moveCells(n,c,b,!1,this.getDefaultParent()),g[e.getChildAt(e.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(f,p,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&
+(c=this.snap(c),b=this.snap(b));var t=this.getBoundingBoxFromGeometry(a,!0);null!=t&&this.moveCells(a,c-t.x,b-t.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c={},b=this.cloneCells(a,null,c),d=new mxDictionary,f=0;f<a.length;f++)d.put(a[f],!0);for(var e=new mxCodec,g=new mxGraphModel,k=g.getChildAt(g.getRoot(),0),f=0;f<b.length;f++){g.add(k,b[f]);var p=this.view.getState(a[f]);if(null!=p){var n=this.getCellGeometry(b[f]);null!=n&&n.relative&&!this.model.isEdge(a[f])&&
+null==d.get(this.model.getParent(a[f]))&&(n.offset=null,n.relative=!1,n.x=p.x/p.view.scale-p.view.translate.x,n.y=p.y/p.view.scale-p.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(c,this.createCellLookup(a)),b);return e.encode(g)};Graph.prototype.isSwimlane=function(a,c){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var b=this.getCurrentCellStyle(a,c)[mxConstants.STYLE_SHAPE];return b==mxConstants.SHAPE_SWIMLANE||"table"==b}return!1};var q=Graph.prototype.isExtendParent;
+Graph.prototype.isExtendParent=function(a){var c=this.model.getParent(a);if(null!=c){var b=this.getCurrentCellStyle(c);if(null!=b.expand)return"0"!=b.expand}return q.apply(this,arguments)&&(null==c||!this.isTable(c))};var c=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,b,d,f,e,g,k,p){null==p&&(p=this.model.getParent(a),this.isTable(p)||this.isTableRow(p))&&(p=this.getCellAt(g,k,null,!0,!1));d=null;this.model.beginUpdate();try{d=c.apply(this,[a,b,d,f,e,g,k,p]);this.model.setValue(d,
+"");var n=this.getChildCells(d,!0);for(b=0;b<n.length;b++){var t=this.getCellGeometry(n[b]);null!=t&&t.relative&&0<t.x&&this.model.remove(n[b])}var v=this.getChildCells(a,!0);for(b=0;b<v.length;b++)t=this.getCellGeometry(v[b]),null!=t&&t.relative&&0>=t.x&&this.model.remove(v[b]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[d]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[d]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
+mxConstants.NONE,[a]);var S=this.model.getTerminal(d,!1);if(null!=S){var l=this.getCurrentCellStyle(S);null!=l&&"1"==l.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[d]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[d]))}}finally{this.model.endUpdate()}return d};var f=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,c,b){if(c||b)f.apply(this,arguments);
+else{var d=this.getSelectionCell(),e=null,g=[],p=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(g.push(c),c==d)e=g.length-1;else if(a&&null==d&&0<g.length||null!=e&&a&&g.length>e||!a&&0<e)return;for(var b=0;b<this.model.getChildCount(c);b++)p(this.model.getChildAt(c,b))});p(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(a?1:-1),g.length):0,this.setSelectionCell(g[e]))}};var g=Graph.prototype.moveCells;Graph.prototype.moveCells=
+function(a,c,b,d,f,e,p){p=null!=p?p:{};if(this.isTable(f)){for(var k=[],n=0;n<a.length;n++)this.isTable(a[n])?k=k.concat(this.model.getChildCells(a[n],!0).reverse()):k.push(a[n]);a=k}this.model.beginUpdate();try{k=[];for(n=0;n<a.length;n++)if(null!=f&&this.isTableRow(a[n])){var t=this.model.getParent(a[n]),v=this.getCellGeometry(a[n]);this.isTable(t)&&k.push(t);if(null!=t&&null!=v&&this.isTable(t)&&this.isTable(f)&&(d||t!=f)){if(!d){var S=this.getCellGeometry(t);null!=S&&(S=S.clone(),S.height-=v.height,
+this.model.setGeometry(t,S))}S=this.getCellGeometry(f);null!=S&&(S=S.clone(),S.height+=v.height,this.model.setGeometry(f,S));var l=this.model.getChildCells(f,!0);if(0<l.length){a[n]=d?this.cloneCell(a[n]):a[n];var m=this.model.getChildCells(a[n],!0),q=this.model.getChildCells(l[0],!0),B=q.length-m.length;if(0<B)for(var C=0;C<B;C++){var y=this.cloneCell(m[m.length-1]);null!=y&&(y.value="",this.model.add(a[n],y))}else if(0>B)for(C=0;C>B;C--)this.model.remove(m[m.length+C-1]);m=this.model.getChildCells(a[n],
+!0);for(C=0;C<q.length;C++){var P=this.getCellGeometry(q[C]),z=this.getCellGeometry(m[C]);null!=P&&null!=z&&(z=z.clone(),z.width=P.width,this.model.setGeometry(m[C],z))}}}}for(var E=g.apply(this,arguments),n=0;n<k.length;n++)!d&&this.model.contains(k[n])&&0==this.model.getChildCount(k[n])&&this.model.remove(k[n]);d&&this.updateCustomLinks(this.createCellMapping(p,this.createCellLookup(a)),E)}finally{this.model.endUpdate()}return E};var k=Graph.prototype.removeCells;Graph.prototype.removeCells=function(a,
+c){var b=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var f=this.model.getParent(a[d]),e=this.model.getParent(f);1==this.model.getChildCount(f)&&1==this.model.getChildCount(e)?0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e)&&b.push(e):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(e=this.model.getParent(a[d]),0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e))){for(var g=this.model.getChildCells(e,!0),p=0,n=0;n<g.length;n++)0<=mxUtils.indexOf(a,g[n])&&
+p++;p==g.length&&b.push(e)}b.push(a[d])}b=k.apply(this,[b,c])}finally{this.model.endUpdate()}return b};Graph.prototype.updateCustomLinks=function(a,c){for(var b=0;b<c.length;b++)null!=c[b]&&this.updateCustomLinksForCell(a,c[b])};Graph.prototype.updateCustomLinksForCell=function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0],
e[1]),2<e.length?"0"!=e[2]:!0,null,3<e.length?e[3]:0,4<e.length?e[4]:0))}}catch(ta){}return d}if(null!=a.shape&&null!=a.shape.bounds){e=a.shape.direction;f=a.shape.bounds;b=a.shape.scale;d=f.width/b;f=f.height/b;if(e==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH)e=d,d=f,f=e;b=a.shape.getConstraints(a.style,d,f);if(null!=b)return b;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;if(null!=a.shape.constraints)return a.shape.constraints}}return null};
Graph.prototype.flipEdge=function(a){if(null!=a){var c=this.getCurrentCellStyle(a),c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a])}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),b=0,d=0;d<c;d++){var f=this.model.getChildAt(a,d);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||b++)}return 0<
b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,c,b){for(var d=this.getCurrentCellStyle(a),f=!0,e=!0,g=0;g<c.length&&e;g++)f=f&&this.isTable(c[g]),e=e&&this.isTableRow(c[g]);return("1"!=mxUtils.getValue(d,"part","0")||this.isContainer(a))&&"0"!=mxUtils.getValue(d,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(a))&&!this.isTableRow(a)&&(!this.isTable(a)||e||f)};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,
arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&
-(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a,c){var b=this.getModel(),d=[];b.beginUpdate();try{for(var f=0;f<a.length;f++){var e=a[f];if(b.isEdge(e)){var g=b.getTerminal(e,!0),k=b.getTerminal(e,!1);b.setTerminal(e,k,!0);b.setTerminal(e,g,!1);var m=b.getGeometry(e);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var x=m.getTerminalPoint(!0),p=m.getTerminalPoint(!1);m.setTerminalPoint(x,!1);m.setTerminalPoint(p,!0);b.setGeometry(e,
-m);var u=this.view.getState(e),n=this.view.getState(g),R=this.view.getState(k);if(null!=u){var l=null!=n?this.getConnectionConstraint(u,n,!0):null,q=null!=R?this.getConnectionConstraint(u,R,!1):null;this.setConnectionConstraint(e,g,!0,q);this.setConnectionConstraint(e,k,!1,l);var B=mxUtils.getValue(u.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(u.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[e]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
-B,[e])}d.push(e)}}else if(b.isVertex(e)&&(m=this.getCellGeometry(e),null!=m)){if(!(this.isTable(e)||this.isTableRow(e)||this.isTableCell(e)||this.isSwimlane(e))){m=m.clone();m.x+=m.width/2-m.height/2;m.y+=m.height/2-m.width/2;var C=m.width;m.width=m.height;m.height=C;b.setGeometry(e,m)}var z=this.view.getState(e);if(null!=z){var y=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],D=mxUtils.getValue(z.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);
-this.setCellStyles(mxConstants.STYLE_DIRECTION,y[mxUtils.mod(mxUtils.indexOf(y,D)+(c?-1:1),y.length)],[e])}d.push(e)}}}finally{b.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var k=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&
-(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&(c=this.model.getParent(c));var b=this.view.getState(c);null!=b&&null!=b.shape&&(this.view.invalidate(c),b.shape.bounds=null)}k.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
+(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a,c){var b=this.getModel(),d=[];b.beginUpdate();try{for(var f=0;f<a.length;f++){var e=a[f];if(b.isEdge(e)){var g=b.getTerminal(e,!0),p=b.getTerminal(e,!1);b.setTerminal(e,p,!0);b.setTerminal(e,g,!1);var k=b.getGeometry(e);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();var n=k.getTerminalPoint(!0),t=k.getTerminalPoint(!1);k.setTerminalPoint(n,!1);k.setTerminalPoint(t,!0);b.setGeometry(e,
+k);var v=this.view.getState(e),l=this.view.getState(g),S=this.view.getState(p);if(null!=v){var m=null!=l?this.getConnectionConstraint(v,l,!0):null,q=null!=S?this.getConnectionConstraint(v,S,!1):null;this.setConnectionConstraint(e,g,!0,q);this.setConnectionConstraint(e,p,!1,m);var B=mxUtils.getValue(v.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(v.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[e]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
+B,[e])}d.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){if(!(this.isTable(e)||this.isTableRow(e)||this.isTableCell(e)||this.isSwimlane(e))){k=k.clone();k.x+=k.width/2-k.height/2;k.y+=k.height/2-k.width/2;var C=k.width;k.width=k.height;k.height=C;b.setGeometry(e,k)}var y=this.view.getState(e);if(null!=y){var z=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],E=mxUtils.getValue(y.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);
+this.setCellStyles(mxConstants.STYLE_DIRECTION,z[mxUtils.mod(mxUtils.indexOf(z,E)+(c?-1:1),z.length)],[e])}d.push(e)}}}finally{b.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&
+(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&(c=this.model.getParent(c));var b=this.view.getState(c);null!=b&&null!=b.shape&&(this.view.invalidate(c),b.shape.bounds=null)}p.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
function(a){a=this.model.getDescendants(a);if(0<a.length)for(var c=0;c<a.length;c++){var b=this.view.getState(a[c]);null!=b&&null!=b.shape&&null!=b.shape.stencil&&this.stencilHasPlaceholders(b.shape.stencil)?this.removeStateForCell(a[c]):this.isReplacePlaceholders(a[c])&&this.view.invalidate(a[c],!1,!1)}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=c?c:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);
-b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.processElements=function(a,c){if(null!=a)for(var b=a.getElementsByTagName("*"),d=0;d<b.length;d++)c(b[d])};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),m=0;m<g.length;m++)c(g[m]);
+b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.processElements=function(a,c){if(null!=a)for(var b=a.getElementsByTagName("*"),d=0;d<b.length;d++)c(b[d])};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),k=0;k<g.length;k++)c(g[k]);
d.innerHTML!=e&&this.cellLabelChanged(a[f],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=Graph.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&f.hasAttribute(d)){this.setAttributeForCell(f,d,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);
Graph.translateDiagram&&null!=Graph.diagramLanguage&&e.hasAttribute("label_"+Graph.diagramLanguage)?e.setAttribute("label_"+Graph.diagramLanguage,c):e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,b=0;b<a.length;b++)c.put(a[b],!0);for(var d=[],b=0;b<a.length;b++){var f=this.model.getParent(a[b]);null==f||c.get(f)||(c.put(f,!0),d.push(f))}for(b=0;b<
d.length;b++)if(f=this.view.getState(d[b]),null!=f&&(this.model.isEdge(f.cell)||this.model.isVertex(f.cell))&&this.isCellDeletable(f.cell)&&this.isTransparentState(f)){for(var e=!0,g=0;g<this.model.getChildCount(f.cell)&&e;g++)c.get(this.model.getChildAt(f.cell,g))||(e=!1);e&&a.push(f.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(a){for(var c=[],b=0;b<a.length;b++)this.isCellDeletable(a[b])&&this.isTransparentState(this.view.getState(a[b]))&&
c.push(a[b]);a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell=function(a,c){var b="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(a.value)&&a.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(b="tooltip_"+Graph.diagramLanguage);this.setAttributeForCell(a,b,c)};Graph.prototype.getAttributeForCell=function(a,c,b){a=null!=a.value&&
-"object"===typeof a.value?a.value.getAttribute(c):null;return null!=a?a:b};Graph.prototype.setAttributeForCell=function(a,c,b){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=b?d.setAttribute(c,b):d.removeAttribute(c);this.model.setValue(a,d)};var p=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(a,c,b,d){this.getModel();if(mxEvent.isAltDown(c))return null;
-for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null;for(var e=p.apply(this,arguments),g=!0,f=0;f<a.length&&g;f++)g=g&&this.isTableRow(a[f]);g&&(this.isTableCell(e)&&(e=this.model.getParent(e)),this.isTableRow(e)&&(e=this.model.getParent(e)),this.isTable(e)||(e=null));return e};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){this.isEnabled()&&
+"object"===typeof a.value?a.value.getAttribute(c):null;return null!=a?a:b};Graph.prototype.setAttributeForCell=function(a,c,b){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=b?d.setAttribute(c,b):d.removeAttribute(c);this.model.setValue(a,d)};var t=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(a,c,b,d){this.getModel();if(mxEvent.isAltDown(c))return null;
+for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null;for(var e=t.apply(this,arguments),g=!0,f=0;f<a.length&&g;f++)g=g&&this.isTableRow(a[f]);g&&(this.isTableCell(e)&&(e=this.model.getParent(e)),this.isTableRow(e)&&(e=this.model.getParent(e)),this.isTable(e)||(e=null));return e};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){this.isEnabled()&&
(c=this.insertTextForEvent(a,c),mxGraph.prototype.dblClick.call(this,a,c))};Graph.prototype.insertTextForEvent=function(a,c){var b=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var d=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!=f||null!=d&&null!=d.text&&null!=d.text.node&&null!=d.text.boundingBox&&(mxUtils.contains(d.text.boundingBox,b.x,b.y)||mxUtils.isAncestorNode(d.text.node,
mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(null==d&&(d=this.view.getState(this.getCellAt(b.x,b.y))),c=this.addText(b.x,b.y,d))}return c};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/this.view.scale-this.view.translate.x,b=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=
this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,d.x*f.width),b=Math.max(b,d.y*f.height);return new mxPoint(this.snap(c+a),this.snap(b+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),b=this.getInsertPoint(),d=this.snap(Math.round(Math.max(b.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(b.y,(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.getCenterInsertPoint=
@@ -2521,35 +2522,35 @@ function(a){a=null!=a?a:new mxRectangle;return mxUtils.hasScrollbars(this.contai
2/this.view.scale-this.view.translate.y-a.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,b){var d=new mxCell;d.value="Text";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=b&&this.model.isEdge(b.cell)){d.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";d.geometry.relative=!0;d.connectable=!1;var f=this.view.getRelativePoint(b,a,c);d.geometry.x=Math.round(1E4*f.x)/1E4;d.geometry.y=Math.round(f.y);d.geometry.offset=
new mxPoint(0,0);var f=this.view.getPoint(b,d.geometry),e=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else f=this.view.translate,d.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-f.x-(null!=b?b.origin.x:0),d.geometry.y=Math.round(c/this.view.scale)-f.y-(null!=b?b.origin.y:0),d.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([d],
null!=b?b.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.addClickHandler=function(a,c,b){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var b=0;b<a.length;b++){var d=this.getAbsoluteUrl(a[b].getAttribute("href"));null!=d&&(a[b].setAttribute("rel",this.linkRelation),a[b].setAttribute("href",d),null!=c&&mxEvent.addGestureListeners(a[b],null,null,
-c))}});this.model.addListener(mxEvent.CHANGE,d);d();var f=this.container.style.cursor,e=this.getTolerance(),g=this,m={currentState:null,currentLink:null,currentTarget:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=
+c))}});this.model.addListener(mxEvent.CHANGE,d);d();var f=this.container.style.cursor,e=this.getTolerance(),g=this,k={currentState:null,currentLink:null,currentTarget:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=
g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var b=
Math.abs(this.startX-c.getGraphX()),d=Math.abs(this.startY-c.getGraphY());(b>e||d>e)&&this.clear()}}else{for(b=c.getSource();null!=b&&"a"!=b.nodeName.toLowerCase();)b=b.parentNode;null!=b?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState||!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,
-d){for(var f=d.getSource(),m=d.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(m)||mxEvent.isMiddleMouseButton(m))&&!mxEvent.isPopupTrigger(m)||mxEvent.isTouchEvent(m))&&(null!=this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(m,
-this.currentLink),mxEvent.isConsumed(m)||(m=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(m)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,m),d.consume())):null!=b&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-d.getGraphX())<e&&Math.abs(this.startY-d.getGraphY())<e&&b(d.getEvent()));this.clear()},activate:function(a){this.currentLink=g.getAbsoluteUrl(g.getLinkForCell(a.cell));
-null!=this.currentLink&&(this.currentTarget=g.getLinkTargetForCell(a.cell),g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(m);mxEvent.addListener(document,"mouseleave",function(a){m.clear()})};Graph.prototype.duplicateCells=
-function(a,c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;for(var b=0;b<a.length;b++)this.isTableCell(a[b])&&(a[b]=this.model.getParent(a[b]));a=this.model.getTopmostCells(a);var d=this.getModel(),f=this.gridSize,e=[];d.beginUpdate();try{for(var g=this.cloneCells(a,!1,null,!0),b=0;b<a.length;b++){var m=d.getParent(a[b]),k=this.moveCells([g[b]],f,f,!1)[0];e.push(k);if(c)d.add(m,g[b]);else{var x=m.getIndex(a[b]);d.add(m,g[b],x+1)}if(this.isTable(m)){var p=this.getCellGeometry(g[b]),u=this.getCellGeometry(m);
-null!=p&&null!=u&&(u=u.clone(),u.height+=p.height,d.setGeometry(m,u))}}}finally{d.endUpdate()}return e};Graph.prototype.insertImage=function(a,c,b){if(null!=a&&null!=this.cellEditor.textarea){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<d.length;e++)f.push(d[e]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",
+d){for(var f=d.getSource(),k=d.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!=this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(k,
+this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,k),d.consume())):null!=b&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-d.getGraphX())<e&&Math.abs(this.startY-d.getGraphY())<e&&b(d.getEvent()));this.clear()},activate:function(a){this.currentLink=g.getAbsoluteUrl(g.getLinkForCell(a.cell));
+null!=this.currentLink&&(this.currentTarget=g.getLinkTargetForCell(a.cell),g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=
+function(a,c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;for(var b=0;b<a.length;b++)this.isTableCell(a[b])&&(a[b]=this.model.getParent(a[b]));a=this.model.getTopmostCells(a);var d=this.getModel(),f=this.gridSize,e=[];d.beginUpdate();try{for(var g=this.cloneCells(a,!1,null,!0),b=0;b<a.length;b++){var k=d.getParent(a[b]),p=this.moveCells([g[b]],f,f,!1)[0];e.push(p);if(c)d.add(k,g[b]);else{var n=k.getIndex(a[b]);d.add(k,g[b],n+1)}if(this.isTable(k)){var t=this.getCellGeometry(g[b]),v=this.getCellGeometry(k);
+null!=t&&null!=v&&(v=v.clone(),v.height+=t.height,d.setGeometry(k,v))}}}finally{d.endUpdate()}return e};Graph.prototype.insertImage=function(a,c,b){if(null!=a&&null!=this.cellEditor.textarea){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<d.length;e++)f.push(d[e]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",
b);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.textarea)if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),b=[],d=0;d<c.length;d++)b.push(c[d]);document.execCommand("createlink",!1,mxUtils.trim(a));c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==b.length+1)for(d=c.length-1;0<=d;d--)if(c[d]!=b[d-1]){for(c=c[d].getElementsByTagName("a");0<c.length;){for(b=c[0].parentNode;null!=
c[0].firstChild;)b.insertBefore(c[0].firstChild,c[0]);b.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),b=this.getCurrentCellStyle(a);return!this.isTableCell(a)&&!this.isTableRow(a)&&(c||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());
-if(null!=c&&1<c.length){for(var b=[],d=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var m=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,m):m,f=null!=f?Math.min(f,m):m;b.push(g)}}if(2<b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y});g=this.view.translate;m=this.view.scale;f=f/m-(a?g.x:g.y);d=d/m-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var k=(d-f)/(b.length-1),d=f,e=1;e<b.length-1;e++){var x=this.view.getState(this.model.getParent(b[e].cell)),
-p=this.getCellGeometry(b[e].cell),d=d+k;null!=p&&null!=x&&(p=p.clone(),a?p.x=Math.round(d-p.width/2)-x.origin.x:p.y=Math.round(d-p.height/2)-x.origin.y,this.getModel().setGeometry(b[e].cell,p))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});
-return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,m,k,x,p,u,n,l){var q=null;if(null!=l)for(q=new mxDictionary,p=0;p<l.length;p++)q.put(l[p],!0);if(l=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var B="page"==n?this.view.getBackgroundPageBounds():e&&null==q||d||"diagram"==n?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==B)throw Error(mxResources.get("drawingEmpty"));
-var C=this.view.scale,z=mxUtils.createXmlDocument(),y=null!=z.createElementNS?z.createElementNS(mxConstants.NS_SVG,"svg"):z.createElement("svg");null!=a&&(null!=y.style?y.style.backgroundColor=a:y.setAttribute("style","background-color:"+a));null==z.createElementNS?(y.setAttribute("xmlns",mxConstants.NS_SVG),y.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):y.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/C;var D=Math.max(1,Math.ceil(B.width*a)+2*b)+(x?5:
-0),A=Math.max(1,Math.ceil(B.height*a)+2*b)+(x?5:0);y.setAttribute("version","1.1");y.setAttribute("width",D+"px");y.setAttribute("height",A+"px");y.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+D+" "+A);z.appendChild(y);var R=null!=z.createElementNS?z.createElementNS(mxConstants.NS_SVG,"g"):z.createElement("g");y.appendChild(R);var t=this.createSvgCanvas(R);t.foOffset=f?-.5:0;t.textOffset=f?-.5:0;t.imageOffset=f?-.5:0;t.translate(Math.floor((b/c-B.x)/C),Math.floor((b/c-B.y)/C));var ga=document.createElement("div"),
-F=t.getAlternateText;t.getAlternateText=function(a,c,b,d,f,e,g,m,k,x,p,u,n){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(ga.innerHTML=e,e=mxUtils.extractTextWithWhitespace(ga.childNodes));for(var v=Math.ceil(2*d/this.state.fontSize),S=[],Ca=0,wa=0;(0==v||Ca<v)&&wa<e.length;){var Sa=e.charCodeAt(wa);if(10==Sa||13==Sa){if(0<Ca)break}else S.push(e.charAt(wa)),255>Sa&&Ca++;wa++}S.length<e.length&&1<e.length-S.length&&(e=mxUtils.trim(S.join(""))+"...");return e}catch(fb){return F.apply(this,
-arguments)}else return F.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){c=C/c;var H=this.view.translate,E=new mxRectangle(H.x*c,H.y*c,N.width*c,N.height*c);mxUtils.intersects(B,E)&&t.image(H.x,H.y,N.width,N.height,N.src,!0)}t.scale(a);t.textEnabled=g;m=null!=m?m:this.createSvgImageExport();var U=m.drawCellState,I=m.getLinkForCellState;m.getLinkForCellState=function(a,c){var b=I.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};m.getLinkTargetForCellState=function(a,
-c){return a.view.graph.getLinkTargetForCell(a.cell)};m.drawCellState=function(a,c){for(var b=a.view.graph,d=null!=q?q.get(a.cell):b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!(e&&null==q||d)&&null!=f;)d=null!=q?q.get(f):b.isCellSelected(f),f=b.model.getParent(f);(e&&null==q||d)&&U.apply(this,arguments)};m.drawState(this.getView().getState(this.model.root),t);this.updateSvgLinks(y,k,!0);this.addForeignObjectWarning(t,y);return y}finally{l&&(this.useCssTransforms=!0,this.view.revalidate(),
+if(null!=c&&1<c.length){for(var b=[],d=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,f=null!=f?Math.min(f,k):k;b.push(g)}}if(2<b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y});g=this.view.translate;k=this.view.scale;f=f/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var p=(d-f)/(b.length-1),d=f,e=1;e<b.length-1;e++){var n=this.view.getState(this.model.getParent(b[e].cell)),
+t=this.getCellGeometry(b[e].cell),d=d+p;null!=t&&null!=n&&(t=t.clone(),a?t.x=Math.round(d-t.width/2)-n.origin.x:t.y=Math.round(d-t.height/2)-n.origin.y,this.getModel().setGeometry(b[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});
+return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,k,p,n,t,v,l,m){var q=null;if(null!=m)for(q=new mxDictionary,t=0;t<m.length;t++)q.put(m[t],!0);if(m=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var B="page"==l?this.view.getBackgroundPageBounds():e&&null==q||d||"diagram"==l?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==B)throw Error(mxResources.get("drawingEmpty"));
+var C=this.view.scale,y=mxUtils.createXmlDocument(),z=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=z.style?z.style.backgroundColor=a:z.setAttribute("style","background-color:"+a));null==y.createElementNS?(z.setAttribute("xmlns",mxConstants.NS_SVG),z.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):z.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/C;var E=Math.max(1,Math.ceil(B.width*a)+2*b)+(n?5:
+0),A=Math.max(1,Math.ceil(B.height*a)+2*b)+(n?5:0);z.setAttribute("version","1.1");z.setAttribute("width",E+"px");z.setAttribute("height",A+"px");z.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+E+" "+A);y.appendChild(z);var S=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"g"):y.createElement("g");z.appendChild(S);var u=this.createSvgCanvas(S);u.foOffset=f?-.5:0;u.textOffset=f?-.5:0;u.imageOffset=f?-.5:0;u.translate(Math.floor((b/c-B.x)/C),Math.floor((b/c-B.y)/C));var ka=document.createElement("div"),
+I=u.getAlternateText;u.getAlternateText=function(a,c,b,d,f,e,g,k,p,n,t,v,l){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(ka.innerHTML=e,e=mxUtils.extractTextWithWhitespace(ka.childNodes));for(var x=Math.ceil(2*d/this.state.fontSize),la=[],Ca=0,va=0;(0==x||Ca<x)&&va<e.length;){var Sa=e.charCodeAt(va);if(10==Sa||13==Sa){if(0<Ca)break}else la.push(e.charAt(va)),255>Sa&&Ca++;va++}la.length<e.length&&1<e.length-la.length&&(e=mxUtils.trim(la.join(""))+"...");return e}catch(fb){return I.apply(this,
+arguments)}else return I.apply(this,arguments)};var F=this.backgroundImage;if(null!=F){c=C/c;var P=this.view.translate,D=new mxRectangle(P.x*c,P.y*c,F.width*c,F.height*c);mxUtils.intersects(B,D)&&u.image(P.x,P.y,F.width,F.height,F.src,!0)}u.scale(a);u.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var U=k.drawCellState,G=k.getLinkForCellState;k.getLinkForCellState=function(a,c){var b=G.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};k.getLinkTargetForCellState=function(a,
+c){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,c){for(var b=a.view.graph,d=null!=q?q.get(a.cell):b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!(e&&null==q||d)&&null!=f;)d=null!=q?q.get(f):b.isCellSelected(f),f=b.model.getParent(f);(e&&null==q||d)&&U.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),u);this.updateSvgLinks(z,p,!0);this.addForeignObjectWarning(u,z);return z}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),
this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,c){if("0"!=urlParams["svg-warning"]&&0<c.getElementsByTagName("foreignObject").length){var b=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var f=a.createElement("a");f.setAttribute("transform","translate(0,-5)");null==f.setAttributeNS||c.ownerDocument!=document&&null==document.documentMode?(f.setAttribute("xlink:href",Graph.foreignObjectWarningLink),
f.setAttribute("target","_blank")):(f.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),f.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var e=a.createElement("text");e.setAttribute("text-anchor","middle");e.setAttribute("font-size","10px");e.setAttribute("x","50%");e.setAttribute("y","100%");mxUtils.write(e,Graph.foreignObjectWarningText);b.appendChild(d);f.appendChild(e);b.appendChild(f);c.appendChild(b)}};Graph.prototype.updateSvgLinks=function(a,c,b){a=
a.getElementsByTagName("a");for(var d=0;d<a.length;d++)if(null==a[d].getAttribute("target")){var f=a[d].getAttribute("href");null==f&&(f=a[d].getAttribute("xlink:href"));null!=f&&(null!=c&&/^https?:\/\//.test(f)?a[d].setAttribute("target",c):b&&this.isCustomLink(f)&&a[d].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=
window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getSelectedEditingElement=function(){for(var a=this.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;null!=a&&a==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=this.cellEditor.textarea.firstChild);
return a};Graph.prototype.getParentByName=function(a,c,b){for(;null!=a&&a.nodeName!=c;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.getParentByNames=function(a,c,b){for(;null!=a&&!(0<=mxUtils.indexOf(c,a.nodeName));){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var b=document.createRange();b.selectNode(a);c.removeAllRanges();c.addRange(b)}}else(c=document.selection)&&
-"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.deleteCells=function(a,c){var b=null;if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var d=0;d<a.length;d++){var f=this.model.getParent(a[d]);if(this.isTable(f)){var e=this.getCellGeometry(a[d]),g=this.getCellGeometry(f);null!=e&&null!=g&&(g=g.clone(),g.height-=e.height,this.model.setGeometry(f,g))}}var m=this.selectParentAfterDelete?this.model.getParents(a):
-null;this.removeCells(a,c)}finally{this.model.endUpdate()}if(null!=m)for(b=[],d=0;d<m.length;d++)this.model.contains(m[d])&&(this.model.isVertex(m[d])||this.model.isEdge(m[d]))&&b.push(m[d])}return b};Graph.prototype.insertTableColumn=function(a,c){var b=this.getModel();b.beginUpdate();try{var d=a,f=0;if(this.isTableCell(a))var e=b.getParent(a),d=b.getParent(e),f=mxUtils.indexOf(b.getChildCells(e,!0),a);else this.isTableRow(a)?d=b.getParent(a):a=b.getChildCells(d,!0)[0],c||(f=b.getChildCells(a,!0).length-
-1);for(var g=b.getChildCells(d,!0),m=Graph.minTableColumnWidth,e=0;e<g.length;e++){var k=b.getChildCells(g[e],!0)[f],x=b.cloneCell(k,!1),p=this.getCellGeometry(x);x.value=null;if(null!=p){var m=p.width,u=this.getCellGeometry(g[e]);null!=u&&(p.height=u.height)}b.add(g[e],x,f+(c?0:1))}var n=this.getCellGeometry(d);null!=n&&(n=n.clone(),n.width+=m,b.setGeometry(d,n))}finally{b.endUpdate()}};Graph.prototype.insertTableRow=function(a,c){var b=this.getModel();b.beginUpdate();try{var d=a,f=a;if(this.isTableCell(a))f=
-b.getParent(a),d=b.getParent(f);else if(this.isTableRow(a))d=b.getParent(a);else var e=b.getChildCells(d,!0),f=e[c?0:e.length-1];var g=b.getChildCells(f,!0),m=d.getIndex(f),f=b.cloneCell(f,!1);f.value=null;var k=this.getCellGeometry(f);if(null!=k){for(e=0;e<g.length;e++){a=b.cloneCell(g[e],!1);f.insert(a);a.value=null;var x=this.getCellGeometry(a);null!=x&&(x.height=k.height)}b.add(d,f,m+(c?0:1));var p=this.getCellGeometry(d);null!=p&&(p=p.clone(),p.height+=k.height,b.setGeometry(d,p))}}finally{b.endUpdate()}};
-Graph.prototype.deleteTableColumn=function(a){var c=this.getModel();c.beginUpdate();try{var b=a,d=a;this.isTableCell(a)&&(d=c.getParent(a));this.isTableRow(d)&&(b=c.getParent(d));var f=c.getChildCells(b,!0);if(0==f.length)c.remove(b);else{this.isTableRow(d)||(d=f[0]);var e=c.getChildCells(d,!0);if(1>=e.length)c.remove(b);else{var g=e.length-1;this.isTableCell(a)&&(g=mxUtils.indexOf(e,a));for(d=a=0;d<f.length;d++){var m=c.getChildCells(f[d],!0)[g];c.remove(m);var k=this.getCellGeometry(m);null!=k&&
-(a=Math.max(a,k.width))}var x=this.getCellGeometry(b);null!=x&&(x=x.clone(),x.width-=a,c.setGeometry(b,x))}}}finally{c.endUpdate()}};Graph.prototype.deleteTableRow=function(a){var c=this.getModel();c.beginUpdate();try{var b=a,d=a;this.isTableCell(a)&&(a=d=c.getParent(a));this.isTableRow(a)&&(b=c.getParent(d));var f=c.getChildCells(b,!0);if(1>=f.length)c.remove(b);else{this.isTableRow(d)||(d=f[f.length-1]);c.remove(d);a=0;var e=this.getCellGeometry(d);null!=e&&(a=e.height);var g=this.getCellGeometry(b);
+"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.deleteCells=function(a,c){var b=null;if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var d=0;d<a.length;d++){var f=this.model.getParent(a[d]);if(this.isTable(f)){var e=this.getCellGeometry(a[d]),g=this.getCellGeometry(f);null!=e&&null!=g&&(g=g.clone(),g.height-=e.height,this.model.setGeometry(f,g))}}var k=this.selectParentAfterDelete?this.model.getParents(a):
+null;this.removeCells(a,c)}finally{this.model.endUpdate()}if(null!=k)for(b=[],d=0;d<k.length;d++)this.model.contains(k[d])&&(this.model.isVertex(k[d])||this.model.isEdge(k[d]))&&b.push(k[d])}return b};Graph.prototype.insertTableColumn=function(a,c){var b=this.getModel();b.beginUpdate();try{var d=a,f=0;if(this.isTableCell(a))var e=b.getParent(a),d=b.getParent(e),f=mxUtils.indexOf(b.getChildCells(e,!0),a);else this.isTableRow(a)?d=b.getParent(a):a=b.getChildCells(d,!0)[0],c||(f=b.getChildCells(a,!0).length-
+1);for(var g=b.getChildCells(d,!0),k=Graph.minTableColumnWidth,e=0;e<g.length;e++){var p=b.getChildCells(g[e],!0)[f],n=b.cloneCell(p,!1),t=this.getCellGeometry(n);n.value=null;if(null!=t){var k=t.width,v=this.getCellGeometry(g[e]);null!=v&&(t.height=v.height)}b.add(g[e],n,f+(c?0:1))}var l=this.getCellGeometry(d);null!=l&&(l=l.clone(),l.width+=k,b.setGeometry(d,l))}finally{b.endUpdate()}};Graph.prototype.insertTableRow=function(a,c){var b=this.getModel();b.beginUpdate();try{var d=a,f=a;if(this.isTableCell(a))f=
+b.getParent(a),d=b.getParent(f);else if(this.isTableRow(a))d=b.getParent(a);else var e=b.getChildCells(d,!0),f=e[c?0:e.length-1];var g=b.getChildCells(f,!0),k=d.getIndex(f),f=b.cloneCell(f,!1);f.value=null;var p=this.getCellGeometry(f);if(null!=p){for(e=0;e<g.length;e++){a=b.cloneCell(g[e],!1);f.insert(a);a.value=null;var n=this.getCellGeometry(a);null!=n&&(n.height=p.height)}b.add(d,f,k+(c?0:1));var t=this.getCellGeometry(d);null!=t&&(t=t.clone(),t.height+=p.height,b.setGeometry(d,t))}}finally{b.endUpdate()}};
+Graph.prototype.deleteTableColumn=function(a){var c=this.getModel();c.beginUpdate();try{var b=a,d=a;this.isTableCell(a)&&(d=c.getParent(a));this.isTableRow(d)&&(b=c.getParent(d));var f=c.getChildCells(b,!0);if(0==f.length)c.remove(b);else{this.isTableRow(d)||(d=f[0]);var e=c.getChildCells(d,!0);if(1>=e.length)c.remove(b);else{var g=e.length-1;this.isTableCell(a)&&(g=mxUtils.indexOf(e,a));for(d=a=0;d<f.length;d++){var k=c.getChildCells(f[d],!0)[g];c.remove(k);var p=this.getCellGeometry(k);null!=p&&
+(a=Math.max(a,p.width))}var n=this.getCellGeometry(b);null!=n&&(n=n.clone(),n.width-=a,c.setGeometry(b,n))}}}finally{c.endUpdate()}};Graph.prototype.deleteTableRow=function(a){var c=this.getModel();c.beginUpdate();try{var b=a,d=a;this.isTableCell(a)&&(a=d=c.getParent(a));this.isTableRow(a)&&(b=c.getParent(d));var f=c.getChildCells(b,!0);if(1>=f.length)c.remove(b);else{this.isTableRow(d)||(d=f[f.length-1]);c.remove(d);a=0;var e=this.getCellGeometry(d);null!=e&&(a=e.height);var g=this.getCellGeometry(b);
null!=g&&(g=g.clone(),g.height-=a,c.setGeometry(b,g))}}finally{c.endUpdate()}};Graph.prototype.insertRow=function(a,c){for(var b=a.tBodies[0],d=b.rows[0].cells,f=0,e=0;e<d.length;e++)var g=d[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);b=b.insertRow(c);for(e=0;e<f;e++)mxUtils.br(b.insertCell(-1));return b.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var b=a.tHead;if(null!=b)for(var d=0;d<b.rows.length;d++){var f=
document.createElement("th");b.rows[d].appendChild(f);mxUtils.br(f)}b=a.tBodies[0];for(d=0;d<b.rows.length;d++)f=b.rows[d].insertCell(c),mxUtils.br(f);return b.rows[0].cells[0<=c?c:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var b=a.tBodies[0].rows,d=0;d<b.length;d++)b[d].cells.length>c&&b[d].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();
var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();for(var d;d=b.firstChild;)lastNode=a.appendChild(d);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function b(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=
@@ -2558,39 +2559,39 @@ this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,funct
c.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return c};var c=!1,b=!1,d=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),b=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&
(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(f.getEvent())&&(b&&null==f.getCell()&&this.isSelectionEmpty()||c&&this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",
this.textarea)};mxCellEditor.prototype.alignText=function(a,c){var b=null!=c&&mxEvent.isShiftDown(c);if(b||null!=window.getSelection&&null!=window.getSelection().containsNode){var d=!0;this.graph.processElements(this.textarea,function(a){b||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),a.style.textAlign=null):d=!1});d&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=
-window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],b=0,d=a.rangeCount;b<d;++b)c.push(a.getRangeAt(b));return c}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(ba){}};var u=mxCellRenderer.prototype.initializeLabel;
-mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));u.apply(this,arguments)};var A=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?A.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=
+window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],b=0,d=a.rangeCount;b<d;++b)c.push(a.getRangeAt(b));return c}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(aa){}};var v=mxCellRenderer.prototype.initializeLabel;
+mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));v.apply(this,arguments)};var A=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?A.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=
!1;var F=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,c){a=this.graph.getStartEditingCell(a,c);F.apply(this,arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);if(this.graph.getModel().isEdge(b)&&null!=
-d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var z=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var d=b.firstChild;null!=a&&null!=d;)c(a,d),a=a.nextSibling,d=d.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!=a)d(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=
+d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var y=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var d=b.firstChild;null!=a&&null!=d;)c(a,d),a=a.nextSibling,d=d.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!=a)d(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=
a.nextSibling;null==c?d(a):(b(a,c),c=c.nextSibling);a=f}}function d(a){for(var c=a.firstChild;null!=c;){var b=c.nextSibling;d(c);c=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
-a.removeAttribute("border"))):a.parentNode.removeChild(a)}z.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?b(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),
-0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,
-mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,m=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
-m.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&m.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=m.join(" ");this.textarea.style.fontWeight=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=
-c;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var k=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(k=mxUtils.replaceTrailingNewlines(k,
-"<div><br></div>"));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):k,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=
-mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=b;this.resize()}};var y=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}y.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?b(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),
+0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){n=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<n.length&&"\n"==n.charAt(n.length-1)&&(n=n.substring(0,n.length-1));n=this.graph.sanitizeHtml(c?n.replace(/\n/g,"<br/>"):n,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,
+mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
+k.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&k.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=k.join(" ");this.textarea.style.fontWeight=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=
+c;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=n&&(this.textarea.innerHTML=n,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var n=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(n=mxUtils.replaceTrailingNewlines(n,
+"<div><br></div>"));n=this.graph.sanitizeHtml(c?n.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):n,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=
+mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=n&&(this.textarea.innerHTML=n);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=b;this.resize()}};var z=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&
null!=a){var b=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*b;this.bounds.height=60*b;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=
Math.round((this.bounds.width-4)/b)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/b)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/b)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*b);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/b)+(this.textarea.offsetWidth-
-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow="",y.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,
+this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow="",z.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,
"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var c=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);
-return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var M=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();M.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(R){}};var L=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();
-try{L.apply(this,arguments),""==c&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=c&&c!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=
+return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var L=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();L.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(S){}};var M=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();
+try{M.apply(this,arguments),""==c&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=c&&c!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=
mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize=function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(a,c){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&
!mxEvent.isAltDown(c.getEvent)};mxGraphView.prototype.formatUnitText=function(a){return a?b(a,this.unit):a};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,f=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/f-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/f-d.y);f=this.graph.view.unit;this.hint.innerHTML=
-b(c,f)+", "+b(d,f);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var I=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,c){I.apply(this,arguments);var b=this.graph.getCellStyle(a);if(null==
-b.childLayout){var d=this.graph.model.getParent(a),f=null!=d?this.graph.getCellGeometry(d):null;if(null!=f&&(b=this.graph.getCellStyle(d),"stackLayout"==b.childLayout)){var e=parseFloat(mxUtils.getValue(b,"stackBorder",mxStackLayout.prototype.border)),b="1"==mxUtils.getValue(b,"horizontalStack","1"),g=this.graph.getActualStartSize(d),f=f.clone();b?f.height=c.height+g.y+g.height+2*e:f.width=c.width+g.x+g.width+2*e;this.graph.model.setGeometry(d,f)}}};var G=mxSelectionCellsHandler.prototype.getHandledSelectionCells;
-mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){b.get(a)||(b.put(a,!0),f.push(a))}for(var c=G.apply(this,arguments),b=new mxDictionary,d=this.graph.model,f=[],e=0;e<c.length;e++){var g=c[e];this.graph.isTableCell(g)?a(d.getParent(d.getParent(g))):this.graph.isTableRow(g)&&a(d.getParent(g));a(g)}return f};var K=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var c=K.apply(this,arguments);c.stroke=
-"#C0C0C0";c.strokewidth=1;return c};var E=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var c=E.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-
+b(c,f)+", "+b(d,f);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var G=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,c){G.apply(this,arguments);var b=this.graph.getCellStyle(a);if(null==
+b.childLayout){var d=this.graph.model.getParent(a),f=null!=d?this.graph.getCellGeometry(d):null;if(null!=f&&(b=this.graph.getCellStyle(d),"stackLayout"==b.childLayout)){var e=parseFloat(mxUtils.getValue(b,"stackBorder",mxStackLayout.prototype.border)),b="1"==mxUtils.getValue(b,"horizontalStack","1"),g=this.graph.getActualStartSize(d),f=f.clone();b?f.height=c.height+g.y+g.height+2*e:f.width=c.width+g.x+g.width+2*e;this.graph.model.setGeometry(d,f)}}};var J=mxSelectionCellsHandler.prototype.getHandledSelectionCells;
+mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){b.get(a)||(b.put(a,!0),f.push(a))}for(var c=J.apply(this,arguments),b=new mxDictionary,d=this.graph.model,f=[],e=0;e<c.length;e++){var g=c[e];this.graph.isTableCell(g)?a(d.getParent(d.getParent(g))):this.graph.isTableRow(g)&&a(d.getParent(g));a(g)}return f};var H=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var c=H.apply(this,arguments);c.stroke=
+"#C0C0C0";c.strokewidth=1;return c};var D=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var c=D.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-
a.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(a,c){return this.graph.isRecursiveVertexResize(a)&&!mxEvent.isControlDown(c.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(a,c){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(c.getEvent())||mxEvent.isMetaDown(c.getEvent())};
-var J=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return J.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var H=mxVertexHandler.prototype.isParentHighlightVisible;
-mxVertexHandler.prototype.isParentHighlightVisible=function(){return H.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var X=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||X.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?
-a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var Q=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return Q.apply(this,arguments).grow(-this.getSelectionBorderInset())};var x=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=x.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var c=this.graph,b=c.model,d=this.state,f=this.selectionBorder,e=this;null==
-a&&(a=[]);var g=c.view.getCellStates(b.getChildCells(this.state.cell,!0));if(0<g.length){for(var m=c.view.getCellStates(b.getChildCells(g[0].cell,!0)),b=0;b<m.length;b++)mxUtils.bind(this,function(b){var g=m[b],k=b<m.length-1?m[b+1]:null,x=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);x.isDashed=f.isDashed;x.svgStrokeTolerance++;x=new mxHandle(g,"col-resize",null,x);x.tableHandle=!0;var p=0;x.shape.node.parentNode.insertBefore(x.shape.node,x.shape.node.parentNode.firstChild);x.redraw=function(){if(null!=
-this.shape&&null!=this.state.shape){var a=c.getActualStartSize(d.cell);this.shape.stroke=0==p?mxConstants.NONE:f.stroke;this.shape.bounds.x=this.state.x+this.state.width+p*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=d.y+(b==m.length-1?0:a.y*this.graph.view.scale);this.shape.bounds.height=d.height-(b==m.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var u=!1;x.setPosition=function(a,b,d){p=Math.max(Graph.minTableColumnWidth-a.width,b.x-a.x-a.width);u=
-mxEvent.isShiftDown(d.getEvent());null==k||u||(p=Math.min((k.x+k.width-g.x-g.width)/c.view.scale-Graph.minTableColumnWidth,p))};x.execute=function(a){if(0!=p)c.setTableColumnWidth(this.state.cell,p,u);else if(!e.blockDelayedSelection){var b=c.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;c.graphHandler.selectCellForEvent(b,a)}p=0};x.reset=function(){p=0};a.push(x)})(b);for(b=0;b<g.length;b++)mxUtils.bind(this,function(b){b=g[b];var m=new mxLine(new mxRectangle,mxConstants.NONE,1);m.isDashed=f.isDashed;
-m.svgStrokeTolerance++;b=new mxHandle(b,"row-resize",null,m);b.tableHandle=!0;var k=0;b.shape.node.parentNode.insertBefore(b.shape.node,b.shape.node.parentNode.firstChild);b.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==k?mxConstants.NONE:f.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+k*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};b.setPosition=function(a,
-c,b){k=Math.max(Graph.minTableRowHeight-a.height,c.y-a.y-a.height)};b.execute=function(a){if(0!=k)c.setTableRowHeight(this.state.cell,k,!mxEvent.isShiftDown(a.getEvent()));else if(!e.blockDelayedSelection){var b=c.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;c.graphHandler.selectCellForEvent(b,a)}k=0};b.reset=function(){k=0};a.push(b)})(b)}}return null!=a?a.reverse():null};var B=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){B.apply(this,arguments);
+var K=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return K.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var I=mxVertexHandler.prototype.isParentHighlightVisible;
+mxVertexHandler.prototype.isParentHighlightVisible=function(){return I.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var R=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||R.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?
+a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};var n=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=n.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var c=this.graph,b=c.model,d=this.state,f=this.selectionBorder,e=this;null==
+a&&(a=[]);var g=c.view.getCellStates(b.getChildCells(this.state.cell,!0));if(0<g.length){for(var k=c.view.getCellStates(b.getChildCells(g[0].cell,!0)),b=0;b<k.length;b++)mxUtils.bind(this,function(b){var g=k[b],n=b<k.length-1?k[b+1]:null,p=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);p.isDashed=f.isDashed;p.svgStrokeTolerance++;p=new mxHandle(g,"col-resize",null,p);p.tableHandle=!0;var t=0;p.shape.node.parentNode.insertBefore(p.shape.node,p.shape.node.parentNode.firstChild);p.redraw=function(){if(null!=
+this.shape&&null!=this.state.shape){var a=c.getActualStartSize(d.cell);this.shape.stroke=0==t?mxConstants.NONE:f.stroke;this.shape.bounds.x=this.state.x+this.state.width+t*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=d.y+(b==k.length-1?0:a.y*this.graph.view.scale);this.shape.bounds.height=d.height-(b==k.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var v=!1;p.setPosition=function(a,b,d){t=Math.max(Graph.minTableColumnWidth-a.width,b.x-a.x-a.width);v=
+mxEvent.isShiftDown(d.getEvent());null==n||v||(t=Math.min((n.x+n.width-g.x-g.width)/c.view.scale-Graph.minTableColumnWidth,t))};p.execute=function(a){if(0!=t)c.setTableColumnWidth(this.state.cell,t,v);else if(!e.blockDelayedSelection){var b=c.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;c.graphHandler.selectCellForEvent(b,a)}t=0};p.reset=function(){t=0};a.push(p)})(b);for(b=0;b<g.length;b++)mxUtils.bind(this,function(b){b=g[b];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=f.isDashed;
+k.svgStrokeTolerance++;b=new mxHandle(b,"row-resize",null,k);b.tableHandle=!0;var n=0;b.shape.node.parentNode.insertBefore(b.shape.node,b.shape.node.parentNode.firstChild);b.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==n?mxConstants.NONE:f.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+n*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};b.setPosition=function(a,
+c,b){n=Math.max(Graph.minTableRowHeight-a.height,c.y-a.y-a.height)};b.execute=function(a){if(0!=n)c.setTableRowHeight(this.state.cell,n,!mxEvent.isShiftDown(a.getEvent()));else if(!e.blockDelayedSelection){var b=c.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;c.graphHandler.selectCellForEvent(b,a)}n=0};b.reset=function(){n=0};a.push(b)})(b)}}return null!=a?a.reverse():null};var B=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){B.apply(this,arguments);
if(null!=this.moveHandles)for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(c=0;c<this.cornerHandles.length;c++)this.cornerHandles[c].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var a=this.graph.model;if(null!=this.moveHandles){for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].parentNode.removeChild(this.moveHandles[c]);this.moveHandles=null}this.moveHandles=[];for(c=
0;c<a.getChildCount(this.state.cell);c++)mxUtils.bind(this,function(c){if(null!=c&&a.isVertex(c.cell)){var b=mxUtils.createImage(Editor.rowMoveImage);b.style.position="absolute";b.style.cursor="pointer";b.style.width="7px";b.style.height="4px";b.style.padding="4px 2px 4px 2px";b.rowState=c;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(a){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(a)&&this.graph.isCellSelected(c.cell)||this.graph.selectCellForEvent(c.cell,
a);mxEvent.isPopupTrigger(a)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0);mxEvent.consume(a)}),null,mxUtils.bind(this,function(a){mxEvent.isPopupTrigger(a)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(a),mxEvent.getClientY(a),c.cell,a),mxEvent.consume(a))}));this.moveHandles.push(b);this.graph.container.appendChild(b)}})(this.graph.view.getState(a.getChildAt(this.state.cell,
@@ -2598,8 +2599,8 @@ c)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){
b=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!b&&null!=this.customHandles)for(var d=0;d<this.customHandles.length;d++)if(null!=this.customHandles[d].shape&&null!=this.customHandles[d].shape.bounds){var f=this.customHandles[d].shape.bounds,e=f.getCenterX(),g=f.getCenterY();if(Math.abs(this.state.x-e)<f.width/2||Math.abs(this.state.y-g)<f.height/2||Math.abs(this.state.x+this.state.width-e)<f.width/2||Math.abs(this.state.y+this.state.height-g)<f.height/
2){b=!0;break}}b&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,this.graph.isTable(this.state.cell)&&(c+=7),a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=C.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{c=
this.state.view.scale;var d=this.state.view.unit;this.hint.innerHTML=b(this.roundLength(this.bounds.width/c),d)+" x "+b(this.roundLength(this.bounds.height/c),d)}c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==c&&(c=this.bounds);this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=c.y+c.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};
-mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var ga=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,c){ga.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var D=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
-function(a,c){D.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var f=this.graph.view.translate,e=this.graph.view.scale,g=this.roundLength(d.x/e-f.x),f=this.roundLength(d.y/e-f.y),e=this.graph.view.unit;this.hint.innerHTML=b(g,e)+", "+b(f,e);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
+mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var ka=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,c){ka.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var E=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(a,c){E.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var f=this.graph.view.translate,e=this.graph.view.scale,g=this.roundLength(d.x/e-f.x),f=this.roundLength(d.y/e-f.y),e=this.graph.view.unit;this.hint.innerHTML=b(g,e)+", "+b(f,e);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(g=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*g.x)+"%, "+Math.round(100*g.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),d.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=
mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=
mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+
@@ -2613,20 +2614,20 @@ function(a){return!mxEvent.isShiftDown(a.getEvent())};if(Graph.touchStyle){if(mx
function(a){var c=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(c)||mxEvent.isPopupTrigger(c)&&(null==a.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))};var U=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,c){U.apply(this,arguments);mxEvent.isTouchEvent(c.getEvent())&&this.graph.isCellSelected(c.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var c=
a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&
(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(a,c){if(this.cancelled)this.cancelled=!1,c.consume();else{var b=null!=this.div&&"none"!=this.div.style.display,d=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(d=this.first.x,f=this.first.y,e=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<
-this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x,this.y,this.width,this.height),m=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(m)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(m=this.graph.getCellsBeyond(d,f,this.graph.getDefaultParent(),!0,!0),b=0;b<m.length;b++)if(this.graph.isCellMovable(m[b])){var k=
-this.graph.view.getState(m[b]),x=this.graph.getCellGeometry(m[b]);null!=k&&null!=x&&(x=x.clone(),x.translate(e,g),this.graph.model.setGeometry(m[b],x))}}finally{this.graph.model.endUpdate()}}else e=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);b.x-=d.x;b.y-=d.y;
+this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x,this.y,this.width,this.height),k=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(k=this.graph.getCellsBeyond(d,f,this.graph.getDefaultParent(),!0,!0),b=0;b<k.length;b++)if(this.graph.isCellMovable(k[b])){var n=
+this.graph.view.getState(k[b]),p=this.graph.getCellGeometry(k[b]);null!=n&&null!=p&&(p=p.clone(),p.translate(e,g),this.graph.model.setGeometry(k[b],p))}}finally{this.graph.model.endUpdate()}}else e=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);b.x-=d.x;b.y-=d.y;
var d=c.getX()+b.x,b=c.getY()+b.y,f=this.first.x-d,e=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,b),this.isSpaceEvent(c)?(d=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(this.width=this.graph.snap(this.width/f)*f,this.height=this.graph.snap(this.height/f)*f,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=
0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=
this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null)),c.consume()}};var Z=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Z.apply(this,arguments)};var Y=(new Date).getTime(),ma=0,pa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){pa.apply(this,arguments);b!=this.currentTerminalState?(Y=(new Date).getTime(),ma=0):ma=(new Date).getTime()-Y;this.currentTerminalState=
-b};var aa=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<ma||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&aa.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
+this.secondDiv=null)),c.consume()}};var Y=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Y.apply(this,arguments)};var X=(new Date).getTime(),ma=0,pa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){pa.apply(this,arguments);b!=this.currentTerminalState?(X=(new Date).getTime(),ma=0):ma=(new Date).getTime()-X;this.currentTerminalState=
+b};var Z=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<ma||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&Z.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,
-mxConstants.HANDLE_STROKECOLOR)};var ja=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ja.apply(this,arguments)};var ka=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
-if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return ka.apply(this,arguments)};var ha=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=ha.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var ca=mxVertexHandler.prototype.getSelectionBounds;
-mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):ca.apply(this,arguments)};var na=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
+mxConstants.HANDLE_STROKECOLOR)};var ha=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ha.apply(this,arguments)};var ia=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
+if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return ia.apply(this,arguments)};var fa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=fa.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var ba=mxVertexHandler.prototype.getSelectionBounds;
+mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):ba.apply(this,arguments)};var na=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&na.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);
this.state.view.graph.model.isVertex(this.state.cell)&&a==mxConstants.NONE&&c==mxConstants.NONE?(a=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,a,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var V=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){V.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&
-null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var P=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){P.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
+null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var Q=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){Q.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
"");this.blockDelayedSelection=null};var oa=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){oa.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var c=0;4>c;c++){var b=new mxRectangleShape(new mxRectangle(0,
0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);b.dialect=mxConstants.DIALECT_SVG;b.init(this.graph.view.getOverlayPane());this.cornerHandles.push(b)}}var d=mxUtils.bind(this,function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.changeHandler=mxUtils.bind(this,function(a,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
d()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);c=this.graph.getLinkForCell(this.state.cell);b=this.graph.getLinksForState(this.state);this.updateLinkHint(c,b);if(null!=c||null!=b&&0<b.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=
@@ -2635,117 +2636,117 @@ this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document
var f=document.createElement("img");f.setAttribute("src",Dialog.prototype.clearImage);f.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));f.setAttribute("width","13");f.setAttribute("height","10");f.style.marginLeft="4px";f.style.marginBottom="-1px";f.style.cursor="pointer";this.linkHint.appendChild(f);mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(a)}))}if(null!=b)for(d=0;d<b.length;d++){var e=
document.createElement("div");e.style.marginTop=null!=c||0<d?"6px":"0px";e.appendChild(this.graph.createLinkForHint(b[d].getAttribute("href"),mxUtils.getTextContent(b[d])));this.linkHint.appendChild(e)}}}catch(sa){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var T=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){T.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});
var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.changeHandler=mxUtils.bind(this,function(c,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var da=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){da.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var la=mxVertexHandler.prototype.redrawHandles;
+this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var ca=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){ca.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var ja=mxVertexHandler.prototype.redrawHandles;
mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var a=0;a<this.moveHandles.length;a++)this.moveHandles[a].style.left=this.moveHandles[a].rowState.x+this.moveHandles[a].rowState.width-5+"px",this.moveHandles[a].style.top=this.moveHandles[a].rowState.y+this.moveHandles[a].rowState.height/2-6+"px";if(null!=this.cornerHandles){var a=this.getSelectionBorderInset(),c=this.cornerHandles,b=c[0].bounds.height/2;c[0].bounds.x=this.state.x-c[0].bounds.width/2+a;c[0].bounds.y=
this.state.y-b+a;c[0].redraw();c[1].bounds.x=c[0].bounds.x+this.state.width-2*a;c[1].bounds.y=c[0].bounds.y;c[1].redraw();c[2].bounds.x=c[0].bounds.x;c[2].bounds.y=this.state.y+this.state.height-2*a;c[2].redraw();c[3].bounds.x=c[1].bounds.x;c[3].bounds.y=c[2].bounds.y;c[3].redraw();for(a=0;a<this.cornerHandles.length;a++)this.cornerHandles[a].node.style.display=1==this.graph.getSelectionCount()?"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
-null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");la.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||
+null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");ja.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||
"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null,null==b&&(b=this.state),b=b.y+b.height,null!=c&&(b=Math.max(b,c.y+c.height)),this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(b+this.verticalOffset/2+Editor.hintOffset)+"px")};var ra=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){ra.apply(this,arguments);if(null!=this.moveHandles){for(var a=0;a<this.moveHandles.length;a++)null!=
this.moveHandles[a]&&null!=this.moveHandles[a].parentNode&&this.moveHandles[a].parentNode.removeChild(this.moveHandles[a]);this.moveHandles=null}if(null!=this.cornerHandles){for(a=0;a<this.cornerHandles.length;a++)null!=this.cornerHandles[a]&&null!=this.cornerHandles[a].node&&null!=this.cornerHandles[a].node.parentNode&&this.cornerHandles[a].node.parentNode.removeChild(this.cornerHandles[a].node);this.cornerHandles=null}null!=this.linkHint&&(null!=this.linkHint.parentNode&&this.linkHint.parentNode.removeChild(this.linkHint),
this.linkHint=null);null!=this.changeHandler&&(this.graph.getSelectionModel().removeListener(this.changeHandler),this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var O=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(O.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&
-null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var ia=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ia.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var fa=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
-function(){fa.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function n(){mxCylinder.call(this)}function l(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxShape.call(this)}function f(){mxShape.call(this)}function g(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function m(){mxActor.call(this)}function k(){mxCylinder.call(this)}
-function p(){mxCylinder.call(this)}function u(){mxActor.call(this)}function A(){mxActor.call(this)}function F(){mxActor.call(this)}function z(){mxActor.call(this)}function y(){mxActor.call(this)}function M(){mxActor.call(this)}function L(){mxActor.call(this)}function I(a,c){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,I.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
-this.canvas.moveTo=mxUtils.bind(this,I.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,I.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,I.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,I.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,I.prototype.arcTo)}function G(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
-function E(){mxActor.call(this)}function J(){mxActor.call(this)}function H(){mxActor.call(this)}function X(){mxRectangleShape.call(this)}function Q(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function B(){mxShape.call(this)}function C(){mxShape.call(this)}function ga(){mxEllipse.call(this)}function D(){mxShape.call(this)}function U(){mxShape.call(this)}function Z(){mxRectangleShape.call(this)}function Y(){mxShape.call(this)}function ma(){mxShape.call(this)}function pa(){mxShape.call(this)}
-function aa(){mxShape.call(this)}function ja(){mxShape.call(this)}function ka(){mxCylinder.call(this)}function ha(){mxCylinder.call(this)}function ca(){mxRectangleShape.call(this)}function na(){mxDoubleEllipse.call(this)}function V(){mxDoubleEllipse.call(this)}function P(){mxArrowConnector.call(this);this.spacing=0}function oa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function la(){mxActor.call(this)}function ra(){mxActor.call(this)}
-function O(){mxActor.call(this)}function ia(){mxActor.call(this)}function fa(){mxActor.call(this)}function R(){mxActor.call(this)}function ya(){mxActor.call(this)}function N(){mxActor.call(this)}function ba(){mxActor.call(this)}function qa(){mxActor.call(this)}function sa(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}function Da(){mxRhombus.call(this)}function Ga(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
-function Ia(){mxEllipse.call(this)}function za(){mxActor.call(this)}function ua(){mxActor.call(this)}function va(){mxActor.call(this)}function W(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Aa(){mxConnector.call(this)}function Ta(a,c,b,d,f,e,g,m,k,x){g+=k;var v=d.clone();d.x-=f*(2*g+k);d.y-=e*(2*g+k);f*=g+k;e*=g+k;return function(){a.ellipse(v.x-
-f-g,v.y-e-g,2*g,2*g);x?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,b,d,f){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-b));this.paintForeground(a,
-c,b,d,f)};a.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.state){var v=this.flipH,e=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=v,v=e,e=g;a.rotate(-this.getShapeRotation(),v,e,c+d/2,b+f/2);s=this.scale;c=this.bounds.x/s;b=this.bounds.y/s;d=this.bounds.width/s;f=this.bounds.height/s;this.paintTableForeground(a,c,b,d,f)}};a.prototype.paintTableForeground=function(a,c,b,d,f){var v=this.state.view.graph,e=v.getActualStartSize(this.state.cell),
-g=v.model.getChildCells(this.state.cell,!0);if(0<g.length){var S="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),wa="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(S)for(S=1;S<g.length;S++){var m=v.getCellGeometry(g[S]);null!=m&&(a.begin(),a.moveTo(c+e.x,b+m.y),a.lineTo(c+d-e.width,b+m.y),a.end(),a.stroke())}if(wa)for(d=v.model.getChildCells(g[0],!0),S=1;S<d.length;S++)m=v.getCellGeometry(d[S]),null!=m&&(a.begin(),a.moveTo(c+m.x+e.x,b+e.y),a.lineTo(c+m.x+e.x,b+f-e.height),a.end(),
-a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var v=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
-a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-v,0);a.lineTo(d,v);a.lineTo(d,f);a.lineTo(v,f);a.lineTo(0,f-v);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-v,0),a.lineTo(d,v),a.lineTo(v,v),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(v,v),a.lineTo(v,f),a.lineTo(0,f-v),
-a.close(),a.fill()),a.begin(),a.moveTo(v,f),a.lineTo(v,v),a.lineTo(0,0),a.moveTo(v,v),a.lineTo(d,v),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Qa=Math.tan(mxUtils.toRadians(30)),Ha=(.5-Qa)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
-6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var v=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-v),b+.5*(f-v),v,v);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Qa);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ha);
-a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ha)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(n,mxCylinder);n.prototype.size=20;n.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Qa));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ha)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ha)*c),a.lineTo(.5*c,(1-Ha)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ha),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ha)*c),a.lineTo(0,.75*
-c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",n);mxUtils.extend(l,mxCylinder);l.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
-c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};l.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",l);mxUtils.extend(t,mxCylinder);t.prototype.size=30;t.prototype.darkOpacity=0;t.prototype.paintVertexShape=function(a,c,b,d,f){var v=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=
-Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-v,0);a.lineTo(d,v);a.lineTo(d,f);a.lineTo(0,f);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-v,0),a.lineTo(d-v,v),a.lineTo(d,v),a.close(),a.fill()),a.begin(),a.moveTo(d-v,0),a.lineTo(d-v,v),a.lineTo(d,v),a.end(),a.stroke())};
-mxCellRenderer.registerShape("note",t);mxUtils.extend(q,t);mxCellRenderer.registerShape("note2",q);q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,0)}return null};mxUtils.extend(c,mxShape);c.prototype.isoAngle=15;c.prototype.paintVertexShape=function(a,c,b,d,f){var v=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*
-Math.PI/200,v=Math.min(d*Math.tan(v),.5*f);a.translate(c,b);a.begin();a.moveTo(.5*d,0);a.lineTo(d,v);a.lineTo(d,f-v);a.lineTo(.5*d,f);a.lineTo(0,f-v);a.lineTo(0,v);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,v);a.lineTo(.5*d,2*v);a.lineTo(d,v);a.moveTo(.5*d,2*v);a.lineTo(.5*d,f);a.stroke()};mxCellRenderer.registerShape("isoCube2",c);mxUtils.extend(f,mxShape);f.prototype.size=15;f.prototype.paintVertexShape=function(a,c,b,d,f){var v=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.translate(c,b);0==v?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),a.moveTo(0,v),a.arcTo(.5*d,v,0,0,1,.5*d,0),a.arcTo(.5*d,v,0,0,1,d,v),a.lineTo(d,f-v),a.arcTo(.5*d,v,0,0,1,.5*d,f),a.arcTo(.5*d,v,0,0,1,0,f-v),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,v),a.arcTo(.5*d,v,0,0,1,.5*d,2*v),a.arcTo(.5*d,v,0,0,1,0,v),a.stroke())};mxCellRenderer.registerShape("cylinder2",f);mxUtils.extend(g,mxCylinder);g.prototype.size=15;g.prototype.paintVertexShape=function(a,
-c,b,d,f){var v=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"lid",!0);a.translate(c,b);0==v?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),e?(a.moveTo(0,v),a.arcTo(.5*d,v,0,0,1,.5*d,0),a.arcTo(.5*d,v,0,0,1,d,v)):(a.moveTo(0,0),a.arcTo(.5*d,v,0,0,0,.5*d,v),a.arcTo(.5*d,v,0,0,0,d,0)),a.lineTo(d,f-v),a.arcTo(.5*d,v,0,0,1,.5*d,f),a.arcTo(.5*d,v,0,0,1,0,f-v),a.close(),a.fillAndStroke(),a.setShadow(!1),e&&(a.begin(),a.moveTo(d,v),a.arcTo(.5*
-d,v,0,0,1,.5*d,2*v),a.arcTo(.5*d,v,0,0,1,0,v),a.stroke()))};mxCellRenderer.registerShape("cylinder3",g);mxUtils.extend(m,mxActor);m.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(k,mxCylinder);k.prototype.tabWidth=60;k.prototype.tabHeight=20;k.prototype.tabPosition="right";k.prototype.arcSize=.1;k.prototype.paintVertexShape=function(a,
-c,b,d,f){a.translate(c,b);c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var v=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),e=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),S=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(S*=Math.min(d,f));S=Math.min(S,.5*d,.5*(f-b));c=Math.max(c,
-S);c=Math.min(d-S,c);e||(S=0);a.begin();"left"==v?(a.moveTo(Math.max(S,0),b),a.lineTo(Math.max(S,0),0),a.lineTo(c,0),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d-Math.max(S,0),0),a.lineTo(d-Math.max(S,0),b));e?(a.moveTo(0,S+b),a.arcTo(S,S,0,0,1,S,b),a.lineTo(d-S,b),a.arcTo(S,S,0,0,1,d,S+b),a.lineTo(d,f-S),a.arcTo(S,S,0,0,1,d-S,f),a.lineTo(S,f),a.arcTo(S,S,0,0,1,0,f-S)):(a.moveTo(0,b),a.lineTo(d,b),a.lineTo(d,f),a.lineTo(0,f));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
-"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,b+20),a.lineTo(d-20,b+10),a.lineTo(d-10,b+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",k);k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
-"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(v*=Math.min(a.width,a.height));v=Math.min(v,.5*a.width,.5*(a.height-c));d||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(a.width,a.width-b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,v,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};
-mxUtils.extend(p,mxCylinder);p.prototype.arcSize=.1;p.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);var v=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1);c=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));b=mxUtils.getValue(this.style,"umlStateConnection",null);e||(c*=Math.min(d,f));c=Math.min(c,.5*d,.5*f);v||(c=0);v=0;null!=b&&(v=10);a.begin();a.moveTo(v,c);a.arcTo(c,c,0,0,1,v+c,0);a.lineTo(d-c,0);a.arcTo(c,c,0,0,1,d,
-c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(v+c,f);a.arcTo(c,c,0,0,1,v,f-c);a.close();a.fillAndStroke();a.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(a.roundrect(d-40,f-20,10,10,3,3),a.stroke(),a.roundrect(d-20,f-20,10,10,3,3),a.stroke(),a.begin(),a.moveTo(d-30,f-15),a.lineTo(d-20,f-15),a.stroke());"connPointRefEntry"==b?(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke()):"connPointRefExit"==b&&(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke(),a.begin(),a.moveTo(5,
-.5*f-5),a.lineTo(15,.5*f+5),a.moveTo(15,.5*f-5),a.lineTo(5,.5*f+5),a.stroke())};p.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",p);mxUtils.extend(u,mxActor);u.prototype.size=30;u.prototype.isRoundable=function(){return!0};u.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",u);mxUtils.extend(A,mxActor);A.prototype.size=.4;A.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*
+null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var ga=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ga.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ea=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
+function(){ea.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function l(){mxCylinder.call(this)}function m(){mxCylinder.call(this)}function u(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxShape.call(this)}function f(){mxShape.call(this)}function g(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function k(){mxActor.call(this)}function p(){mxCylinder.call(this)}
+function t(){mxCylinder.call(this)}function v(){mxActor.call(this)}function A(){mxActor.call(this)}function F(){mxActor.call(this)}function y(){mxActor.call(this)}function z(){mxActor.call(this)}function L(){mxActor.call(this)}function M(){mxActor.call(this)}function G(a,c){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,G.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+this.canvas.moveTo=mxUtils.bind(this,G.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,G.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,G.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,G.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,G.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function H(){mxRectangleShape.call(this)}
+function D(){mxActor.call(this)}function K(){mxActor.call(this)}function I(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function n(){mxCylinder.call(this)}function B(){mxShape.call(this)}function C(){mxShape.call(this)}function ka(){mxEllipse.call(this)}function E(){mxShape.call(this)}function U(){mxShape.call(this)}function Y(){mxRectangleShape.call(this)}function X(){mxShape.call(this)}function ma(){mxShape.call(this)}function pa(){mxShape.call(this)}
+function Z(){mxShape.call(this)}function ha(){mxShape.call(this)}function ia(){mxCylinder.call(this)}function fa(){mxCylinder.call(this)}function ba(){mxRectangleShape.call(this)}function na(){mxDoubleEllipse.call(this)}function V(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function oa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function ja(){mxActor.call(this)}function ra(){mxActor.call(this)}
+function O(){mxActor.call(this)}function ga(){mxActor.call(this)}function ea(){mxActor.call(this)}function S(){mxActor.call(this)}function ya(){mxActor.call(this)}function P(){mxActor.call(this)}function aa(){mxActor.call(this)}function qa(){mxActor.call(this)}function sa(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}function Da(){mxRhombus.call(this)}function Ga(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
+function Ia(){mxEllipse.call(this)}function za(){mxActor.call(this)}function ua(){mxActor.call(this)}function wa(){mxActor.call(this)}function W(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Aa(){mxConnector.call(this)}function Ta(a,c,b,d,f,e,g,k,n,p){g+=n;var x=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(x.x-
+f-g,x.y-e-g,2*g,2*g);p?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,b,d,f){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-b));this.paintForeground(a,
+c,b,d,f)};a.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.state){var x=this.flipH,e=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=x,x=e,e=g;a.rotate(-this.getShapeRotation(),x,e,c+d/2,b+f/2);s=this.scale;c=this.bounds.x/s;b=this.bounds.y/s;d=this.bounds.width/s;f=this.bounds.height/s;this.paintTableForeground(a,c,b,d,f)}};a.prototype.paintTableForeground=function(a,c,b,d,f){var x=this.state.view.graph,e=x.getActualStartSize(this.state.cell),
+g=x.model.getChildCells(this.state.cell,!0);if(0<g.length){var la="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),va="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(la)for(la=1;la<g.length;la++){var k=x.getCellGeometry(g[la]);null!=k&&(a.begin(),a.moveTo(c+e.x,b+k.y),a.lineTo(c+d-e.width,b+k.y),a.end(),a.stroke())}if(va)for(d=x.model.getChildCells(g[0],!0),la=1;la<d.length;la++)k=x.getCellGeometry(d[la]),null!=k&&(a.begin(),a.moveTo(c+k.x+e.x,b+e.y),a.lineTo(c+k.x+e.x,b+f-e.height),
+a.end(),a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
+a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-x,0);a.lineTo(d,x);a.lineTo(d,f);a.lineTo(x,f);a.lineTo(0,f-x);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-x,0),a.lineTo(d,x),a.lineTo(x,x),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(x,x),a.lineTo(x,f),a.lineTo(0,f-x),
+a.close(),a.fill()),a.begin(),a.moveTo(x,f),a.lineTo(x,x),a.lineTo(0,0),a.moveTo(x,x),a.lineTo(d,x),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Qa=Math.tan(mxUtils.toRadians(30)),Ha=(.5-Qa)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
+6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var x=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-x),b+.5*(f-x),x,x);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Qa);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ha);
+a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ha)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(l,mxCylinder);l.prototype.size=20;l.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Qa));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ha)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ha)*c),a.lineTo(.5*c,(1-Ha)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ha),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ha)*c),a.lineTo(0,.75*
+c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",l);mxUtils.extend(m,mxCylinder);m.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
+c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};m.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",m);mxUtils.extend(u,mxCylinder);u.prototype.size=30;u.prototype.darkOpacity=0;u.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=
+Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-x,0);a.lineTo(d,x);a.lineTo(d,f);a.lineTo(0,f);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-x,0),a.lineTo(d-x,x),a.lineTo(d,x),a.close(),a.fill()),a.begin(),a.moveTo(d-x,0),a.lineTo(d-x,x),a.lineTo(d,x),a.end(),a.stroke())};
+mxCellRenderer.registerShape("note",u);mxUtils.extend(q,u);mxCellRenderer.registerShape("note2",q);q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,0)}return null};mxUtils.extend(c,mxShape);c.prototype.isoAngle=15;c.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*
+Math.PI/200,x=Math.min(d*Math.tan(x),.5*f);a.translate(c,b);a.begin();a.moveTo(.5*d,0);a.lineTo(d,x);a.lineTo(d,f-x);a.lineTo(.5*d,f);a.lineTo(0,f-x);a.lineTo(0,x);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,x);a.lineTo(.5*d,2*x);a.lineTo(d,x);a.moveTo(.5*d,2*x);a.lineTo(.5*d,f);a.stroke()};mxCellRenderer.registerShape("isoCube2",c);mxUtils.extend(f,mxShape);f.prototype.size=15;f.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));a.translate(c,b);0==x?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),a.moveTo(0,x),a.arcTo(.5*d,x,0,0,1,.5*d,0),a.arcTo(.5*d,x,0,0,1,d,x),a.lineTo(d,f-x),a.arcTo(.5*d,x,0,0,1,.5*d,f),a.arcTo(.5*d,x,0,0,1,0,f-x),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,x),a.arcTo(.5*d,x,0,0,1,.5*d,2*x),a.arcTo(.5*d,x,0,0,1,0,x),a.stroke())};mxCellRenderer.registerShape("cylinder2",f);mxUtils.extend(g,mxCylinder);g.prototype.size=15;g.prototype.paintVertexShape=function(a,
+c,b,d,f){var x=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"lid",!0);a.translate(c,b);0==x?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),e?(a.moveTo(0,x),a.arcTo(.5*d,x,0,0,1,.5*d,0),a.arcTo(.5*d,x,0,0,1,d,x)):(a.moveTo(0,0),a.arcTo(.5*d,x,0,0,0,.5*d,x),a.arcTo(.5*d,x,0,0,0,d,0)),a.lineTo(d,f-x),a.arcTo(.5*d,x,0,0,1,.5*d,f),a.arcTo(.5*d,x,0,0,1,0,f-x),a.close(),a.fillAndStroke(),a.setShadow(!1),e&&(a.begin(),a.moveTo(d,x),a.arcTo(.5*
+d,x,0,0,1,.5*d,2*x),a.arcTo(.5*d,x,0,0,1,0,x),a.stroke()))};mxCellRenderer.registerShape("cylinder3",g);mxUtils.extend(k,mxActor);k.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",k);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.arcSize=.1;p.prototype.paintVertexShape=function(a,
+c,b,d,f){a.translate(c,b);c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var x=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),e=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),k=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(k*=Math.min(d,f));k=Math.min(k,.5*d,.5*(f-b));c=Math.max(c,
+k);c=Math.min(d-k,c);e||(k=0);a.begin();"left"==x?(a.moveTo(Math.max(k,0),b),a.lineTo(Math.max(k,0),0),a.lineTo(c,0),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d-Math.max(k,0),0),a.lineTo(d-Math.max(k,0),b));e?(a.moveTo(0,k+b),a.arcTo(k,k,0,0,1,k,b),a.lineTo(d-k,b),a.arcTo(k,k,0,0,1,d,k+b),a.lineTo(d,f-k),a.arcTo(k,k,0,0,1,d-k,f),a.lineTo(k,f),a.arcTo(k,k,0,0,1,0,f-k)):(a.moveTo(0,b),a.lineTo(d,b),a.lineTo(d,f),a.lineTo(0,f));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
+"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,b+20),a.lineTo(d-20,b+10),a.lineTo(d-10,b+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",p);p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
+"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),x=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(x*=Math.min(a.width,a.height));x=Math.min(x,.5*a.width,.5*(a.height-c));d||(x=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(x,0,Math.min(a.width,a.width-b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,x,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};
+mxUtils.extend(t,mxCylinder);t.prototype.arcSize=.1;t.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);var x=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1);c=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));b=mxUtils.getValue(this.style,"umlStateConnection",null);e||(c*=Math.min(d,f));c=Math.min(c,.5*d,.5*f);x||(c=0);x=0;null!=b&&(x=10);a.begin();a.moveTo(x,c);a.arcTo(c,c,0,0,1,x+c,0);a.lineTo(d-c,0);a.arcTo(c,c,0,0,1,d,
+c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(x+c,f);a.arcTo(c,c,0,0,1,x,f-c);a.close();a.fillAndStroke();a.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(a.roundrect(d-40,f-20,10,10,3,3),a.stroke(),a.roundrect(d-20,f-20,10,10,3,3),a.stroke(),a.begin(),a.moveTo(d-30,f-15),a.lineTo(d-20,f-15),a.stroke());"connPointRefEntry"==b?(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke()):"connPointRefExit"==b&&(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke(),a.begin(),a.moveTo(5,
+.5*f-5),a.lineTo(15,.5*f+5),a.moveTo(15,.5*f-5),a.lineTo(5,.5*f+5),a.stroke())};t.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",t);mxUtils.extend(v,mxActor);v.prototype.size=30;v.prototype.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",v);mxUtils.extend(A,mxActor);A.prototype.size=.4;A.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*
d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};A.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-
2*c,d)}return a};mxCellRenderer.registerShape("tape",A);mxUtils.extend(F,mxActor);F.prototype.size=.3;F.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};F.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/
4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",F);var Ya=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Ya.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
-this.scale,a.height*c),0,0)}return null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
-"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(v*=Math.min(a.width,a.height));v=Math.min(v,.5*a.width,.5*(a.height-c));d||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(a.width,a.width-
-b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,v,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};p.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",
-15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,Math.max(0,c*this.scale))}return null};mxUtils.extend(z,mxActor);z.prototype.size=.2;z.prototype.fixedSize=20;z.prototype.isRoundable=function(){return!0};z.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d-c,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",z);mxUtils.extend(y,mxActor);y.prototype.size=.2;y.prototype.fixedSize=20;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",
-this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("trapezoid",y);mxUtils.extend(M,mxActor);M.prototype.size=.5;M.prototype.redrawPath=function(a,c,b,d,f){a.setFillColor(null);c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(d,f)],this.isRounded,b,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",M);mxUtils.extend(L,mxActor);L.prototype.redrawPath=function(a,c,b,d,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=d/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);
-a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",L);I.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};I.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};I.prototype.quadTo=function(a,c,b,d){this.originalQuadTo.apply(this.canvas,
-arguments);this.lastX=b;this.lastY=d};I.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};I.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};I.prototype.lineTo=function(a,c){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),v=Math.sqrt(d*d+f*f);if(2>v){this.originalLineTo.apply(this.canvas,
-arguments);this.lastX=a;this.lastY=c;return}var e=Math.round(v/10),g=this.defaultVariation;5>e&&(e=5,g/=3);for(var m=b(a-this.lastX)*d/e,b=b(c-this.lastY)*f/e,d=d/v,f=f/v,v=0;v<e;v++){var k=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,m*v+this.lastX-k*f,b*v+this.lastY-k*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};I.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
+this.scale,a.height*c),0,0)}return null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
+"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),x=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(x*=Math.min(a.width,a.height));x=Math.min(x,.5*a.width,.5*(a.height-c));d||(x=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(x,0,Math.min(a.width,a.width-
+b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,x,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};t.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",
+15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,Math.max(0,c*this.scale))}return null};mxUtils.extend(y,mxActor);y.prototype.size=.2;y.prototype.fixedSize=20;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d-c,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",y);mxUtils.extend(z,mxActor);z.prototype.size=.2;z.prototype.fixedSize=20;z.prototype.isRoundable=function(){return!0};z.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",
+this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("trapezoid",z);mxUtils.extend(L,mxActor);L.prototype.size=.5;L.prototype.redrawPath=function(a,c,b,d,f){a.setFillColor(null);c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(d,f)],this.isRounded,b,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",L);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,b,d,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=d/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);
+a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",M);G.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};G.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};G.prototype.quadTo=function(a,c,b,d){this.originalQuadTo.apply(this.canvas,
+arguments);this.lastX=b;this.lastY=d};G.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};G.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};G.prototype.lineTo=function(a,c){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),x=Math.sqrt(d*d+f*f);if(2>x){this.originalLineTo.apply(this.canvas,
+arguments);this.lastX=a;this.lastY=c;return}var e=Math.round(x/10),g=this.defaultVariation;5>e&&(e=5,g/=3);for(var k=b(a-this.lastX)*d/e,b=b(c-this.lastY)*f/e,d=d/x,f=f/x,x=0;x<e;x++){var n=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,k*x+this.lastX-n*f,b*x+this.lastY-n*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};G.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var Za=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){Za.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var $a=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(a){$a.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),
-delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new I(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var ab=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
-"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&ab.apply(this,arguments)};var db=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle||a.handJiggle.constructor!=I)db.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||
+delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new G(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var ab=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
+"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&ab.apply(this,arguments)};var db=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle||a.handJiggle.constructor!=G)db.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||
null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(d/2,Math.min(f/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(d*e,f*e)),a.moveTo(c+e,b),a.lineTo(c+d-e,b),a.quadTo(c+d,b,c+d,b+e),a.lineTo(c+d,b+f-e),a.quadTo(c+d,b+f,c+d-e,
-b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};var eb=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&eb.apply(this,arguments)};mxUtils.extend(G,mxRectangleShape);G.prototype.size=.1;G.prototype.fixedSize=!1;G.prototype.isHtmlAllowed=function(){return!1};G.prototype.getLabelBounds=
+b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};var eb=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&eb.apply(this,arguments)};mxUtils.extend(J,mxRectangleShape);J.prototype.size=.1;J.prototype.fixedSize=!1;J.prototype.isHtmlAllowed=function(){return!1};J.prototype.getLabelBounds=
function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,b=a.height;a=new mxRectangle(a.x,a.y,c,b);var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(c*f,b*f));a.x+=
-Math.round(d);a.width-=Math.round(2*d)}return a};G.prototype.paintForeground=function(a,c,b,d,f){var e=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),v=parseFloat(mxUtils.getValue(this.style,"size",this.size)),v=e?Math.max(0,Math.min(d,v)):d*Math.max(0,Math.min(1,v));this.isRounded&&(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,v=Math.max(v,Math.min(d*e,f*e)));v=Math.round(v);a.begin();a.moveTo(c+v,b);a.lineTo(c+v,b+f);a.moveTo(c+
-d-v,b);a.lineTo(c+d-v,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",G);mxCellRenderer.registerShape("process2",G);mxUtils.extend(K,mxRectangleShape);K.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};K.prototype.paintForeground=function(a,c,b,d,f){};mxCellRenderer.registerShape("transparent",K);mxUtils.extend(E,mxHexagon);E.prototype.size=30;E.prototype.position=
-.5;E.prototype.position2=.5;E.prototype.base=20;E.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};E.prototype.isRoundable=function(){return!0};E.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position",this.position)))),v=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+g),f-b),new mxPoint(v,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",E);mxUtils.extend(J,mxActor);J.prototype.size=.2;J.prototype.fixedSize=
-20;J.prototype.isRoundable=function(){return!0};J.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,
-f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",J);mxUtils.extend(H,mxHexagon);H.prototype.size=.25;H.prototype.fixedSize=20;H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",H);mxUtils.extend(X,mxRectangleShape);X.prototype.isHtmlAllowed=function(){return!1};X.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();
-a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",X);var Wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Wa.apply(this,arguments);if(!this.outline&&
-1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Wa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(Q,mxRectangleShape);Q.prototype.isHtmlAllowed=function(){return!1};Q.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-
-2*c)}return a};Q.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,v;do{v=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=v){var g=this.style["symbol"+e+"Align"],m=this.style["symbol"+e+"VerticalAlign"],k=this.style["symbol"+
-e+"Width"],x=this.style["symbol"+e+"Height"],S=this.style["symbol"+e+"Spacing"]||0,wa=this.style["symbol"+e+"VSpacing"]||S,p=this.style["symbol"+e+"ArcSpacing"];null!=p&&(p*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),S+=p,wa+=p);var p=c,Ca=b,p=g==mxConstants.ALIGN_CENTER?p+(d-k)/2:g==mxConstants.ALIGN_RIGHT?p+(d-k-S):p+S,Ca=m==mxConstants.ALIGN_MIDDLE?Ca+(f-x)/2:m==mxConstants.ALIGN_BOTTOM?Ca+(f-x-wa):Ca+wa;a.save();g=new v;g.style=this.style;v.prototype.paintVertexShape.call(g,a,p,Ca,
-k,x);a.restore()}e++}while(null!=v)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",Q);mxUtils.extend(x,mxCylinder);x.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",x);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();
-a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(C,mxShape);C.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,
-f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",C);mxUtils.extend(ga,mxEllipse);ga.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",ga);mxUtils.extend(D,mxShape);D.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);
-a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",D);mxUtils.extend(U,mxShape);U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};U.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};U.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*
-d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",U);mxUtils.extend(Z,mxRectangleShape);Z.prototype.size=40;Z.prototype.isHtmlAllowed=function(){return!1};Z.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};Z.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),v=
-mxUtils.getValue(this.style,"participant");null==v||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,b,d,e):(v=this.state.view.graph.cellRenderer.getShape(v),null!=v&&v!=Z&&(v=new v,v.apply(this.state),a.save(),v.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};Z.prototype.paintForeground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,
-parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",Z);mxUtils.extend(Y,mxShape);Y.prototype.width=60;Y.prototype.height=30;Y.prototype.corner=10;Y.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};
-Y.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,v=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(f,Math.max(1.5*e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),m=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);m!=mxConstants.NONE&&(a.setFillColor(m),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,
-c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+v,b);a.lineTo(c+v,b+Math.max(0,g-1.5*e));a.lineTo(c+Math.max(0,v-e),b+g);a.lineTo(c,b+g);a.close();a.fillAndStroke();a.begin();a.moveTo(c+v,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",Y);mxPerimeter.CenterPerimeter=function(a,c,b,d){return new mxPoint(a.getCenterX(),a.getCenterY())};
-mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=Z.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,
-c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+
-d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",E.prototype.size))*c.view.scale))),c.style),c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",
-mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?z.prototype.fixedSize:z.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var v=a.x,g=a.y,m=a.width,k=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,
-Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(v+m,g+f),new mxPoint(v+m,g+k),new mxPoint(v,g+k-f),new mxPoint(v,g)]):(f=f?Math.max(0,Math.min(.5*m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v+f,g),new mxPoint(v+m,g),new mxPoint(v+m-f,g+k),new mxPoint(v,g+k),new mxPoint(v+f,g)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(b.x<v||b.x>v+m?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=
-function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?y.prototype.fixedSize:y.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var v=a.x,g=a.y,m=a.width,k=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(.5*m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v+f,g),new mxPoint(v+m-f,g),new mxPoint(v+m,g+k),new mxPoint(v,
-g+k),new mxPoint(v+f,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(v+m,g),new mxPoint(v+m-f,g+k),new mxPoint(v+f,g+k),new mxPoint(v,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g+f),new mxPoint(v+m,g),new mxPoint(v+m,g+k),new mxPoint(v,g+k-f),new mxPoint(v,g+f)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(v+
-m,g+f),new mxPoint(v+m,g+k-f),new mxPoint(v,g+k),new mxPoint(v,g)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(b.x<v||b.x>v+m?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?J.prototype.fixedSize:J.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var v=a.x,g=a.y,
-m=a.width,k=a.height,x=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(v+m-f,g),new mxPoint(v+m,a),new mxPoint(v+m-f,g+k),new mxPoint(v,g+k),new mxPoint(v+f,a),new mxPoint(v,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v+
-f,g),new mxPoint(v+m,g),new mxPoint(v+m-f,a),new mxPoint(v+m,g+k),new mxPoint(v+f,g+k),new mxPoint(v,a),new mxPoint(v+f,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g+f),new mxPoint(x,g),new mxPoint(v+m,g+f),new mxPoint(v+m,g+k),new mxPoint(x,g+k-f),new mxPoint(v,g+k),new mxPoint(v,g+f)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(x,g+f),new mxPoint(v+m,g),new mxPoint(v+m,g+k-f),new mxPoint(x,
-g+k),new mxPoint(v,g+k-f),new mxPoint(v,g)]);x=new mxPoint(x,a);d&&(b.x<v||b.x>v+m?x.y=b.y:x.x=b.x);return mxUtils.getPerimeterPoint(g,x,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?H.prototype.fixedSize:H.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var v=a.x,g=a.y,m=a.width,k=a.height,x=a.getCenterX();a=a.getCenterY();c=null!=
-c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(v+m,g+f),new mxPoint(v+m,g+k-f),new mxPoint(x,g+k),new mxPoint(v,g+k-f),new mxPoint(v,g+f),new mxPoint(x,g)]):(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v+f,g),new mxPoint(v+m-f,g),new mxPoint(v+m,a),new mxPoint(v+
-m-f,g+k),new mxPoint(v+f,g+k),new mxPoint(v,a),new mxPoint(v+f,g)]);x=new mxPoint(x,a);d&&(b.x<v||b.x>v+m?x.y=b.y:x.x=b.x);return mxUtils.getPerimeterPoint(g,x,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ma,mxShape);ma.prototype.size=10;ma.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);
-a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",ma);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.inset=2;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+v);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-v,e/2);a.quadTo((d-e)/2-v,e+v,d/2,e+v);a.quadTo((d+e)/2+v,e+v,(d+e)/2+
-v,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",pa);mxUtils.extend(aa,mxShape);aa.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",aa);mxUtils.extend(ja,mxShape);ja.prototype.inset=2;ja.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,
-e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ja);mxUtils.extend(ka,mxCylinder);ka.prototype.jettyWidth=20;ka.prototype.jettyHeight=10;ka.prototype.redrawPath=function(a,c,b,d,f,e){var v=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=v/2;var v=b+v/2,g=Math.min(c,f-c),m=Math.min(g+
-2*c,f-c);e?(a.moveTo(b,g),a.lineTo(v,g),a.lineTo(v,g+c),a.lineTo(b,g+c),a.moveTo(b,m),a.lineTo(v,m),a.lineTo(v,m+c),a.lineTo(b,m+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,m+c),a.lineTo(0,m+c),a.lineTo(0,m),a.lineTo(b,m),a.lineTo(b,g+c),a.lineTo(0,g+c),a.lineTo(0,g),a.lineTo(b,g),a.close());a.end()};mxCellRenderer.registerShape("module",ka);mxUtils.extend(ha,mxCylinder);ha.prototype.jettyWidth=32;ha.prototype.jettyHeight=12;ha.prototype.redrawPath=function(a,c,b,d,f,e){var g=
-parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,v=.3*f-c/2,m=.7*f-c/2;e?(a.moveTo(b,v),a.lineTo(g,v),a.lineTo(g,v+c),a.lineTo(b,v+c),a.moveTo(b,m),a.lineTo(g,m),a.lineTo(g,m+c),a.lineTo(b,m+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,m+c),a.lineTo(0,m+c),a.lineTo(0,m),a.lineTo(b,m),a.lineTo(b,v+c),a.lineTo(0,v+c),a.lineTo(0,v),a.lineTo(b,v),a.close());a.end()};
-mxCellRenderer.registerShape("component",ha);mxUtils.extend(ca,mxRectangleShape);ca.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,v=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,v,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ca);mxUtils.extend(na,
-mxDoubleEllipse);na.prototype.outerStroke=!0;na.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",na);mxUtils.extend(V,na);V.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",V);mxUtils.extend(P,mxArrowConnector);P.prototype.defaultWidth=4;P.prototype.isOpenEnded=function(){return!0};
-P.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};P.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",P);mxUtils.extend(oa,mxArrowConnector);oa.prototype.defaultWidth=10;oa.prototype.defaultArrowWidth=20;oa.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};oa.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+
-mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};oa.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",oa);mxUtils.extend(T,mxActor);T.prototype.size=30;T.prototype.isRoundable=function(){return!0};T.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",T);mxUtils.extend(da,mxRectangleShape);da.prototype.dx=20;da.prototype.dy=20;da.prototype.isHtmlAllowed=function(){return!1};da.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",da);mxUtils.extend(la,mxActor);la.prototype.dx=20;la.prototype.dy=20;la.prototype.redrawPath=
-function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("corner",
-la);mxUtils.extend(ra,mxActor);ra.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",ra);mxUtils.extend(O,mxActor);O.prototype.dx=20;O.prototype.dy=20;O.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,
-"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",O);mxUtils.extend(ia,mxActor);ia.prototype.arrowWidth=.3;ia.prototype.arrowSize=.2;ia.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,
-parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ia);mxUtils.extend(fa,
-mxActor);fa.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ia.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ia.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-
-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",fa);mxUtils.extend(R,mxActor);R.prototype.size=.1;R.prototype.fixedSize=20;R.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);
-a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",R);mxUtils.extend(ya,mxActor);ya.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ya);mxUtils.extend(N,mxActor);N.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
-N);mxUtils.extend(ba,mxActor);ba.prototype.size=20;ba.prototype.isRoundable=function(){return!0};ba.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
-ba);mxUtils.extend(qa,mxActor);qa.prototype.size=.375;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
+Math.round(d);a.width-=Math.round(2*d)}return a};J.prototype.paintForeground=function(a,c,b,d,f){var e=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),x=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=e?Math.max(0,Math.min(d,x)):d*Math.max(0,Math.min(1,x));this.isRounded&&(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,x=Math.max(x,Math.min(d*e,f*e)));x=Math.round(x);a.begin();a.moveTo(c+x,b);a.lineTo(c+x,b+f);a.moveTo(c+
+d-x,b);a.lineTo(c+d-x,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",J);mxUtils.extend(H,mxRectangleShape);H.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};H.prototype.paintForeground=function(a,c,b,d,f){};mxCellRenderer.registerShape("transparent",H);mxUtils.extend(D,mxHexagon);D.prototype.size=30;D.prototype.position=
+.5;D.prototype.position2=.5;D.prototype.base=20;D.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"position",this.position)))),x=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+g),f-b),new mxPoint(x,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",D);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=
+20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,
+f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",K);mxUtils.extend(I,mxHexagon);I.prototype.size=.25;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",I);mxUtils.extend(R,mxRectangleShape);R.prototype.isHtmlAllowed=function(){return!1};R.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();
+a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",R);var Wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Wa.apply(this,arguments);if(!this.outline&&
+1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Wa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-
+2*c)}return a};N.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,x;do{x=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=x){var g=this.style["symbol"+e+"Align"],k=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+
+e+"Width"],p=this.style["symbol"+e+"Height"],la=this.style["symbol"+e+"Spacing"]||0,va=this.style["symbol"+e+"VSpacing"]||la,t=this.style["symbol"+e+"ArcSpacing"];null!=t&&(t*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),la+=t,va+=t);var t=c,Ca=b,t=g==mxConstants.ALIGN_CENTER?t+(d-n)/2:g==mxConstants.ALIGN_RIGHT?t+(d-n-la):t+la,Ca=k==mxConstants.ALIGN_MIDDLE?Ca+(f-p)/2:k==mxConstants.ALIGN_BOTTOM?Ca+(f-p-va):Ca+va;a.save();g=new x;g.style=this.style;x.prototype.paintVertexShape.call(g,a,
+t,Ca,n,p);a.restore()}e++}while(null!=x)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",n);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/
+4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(C,mxShape);C.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();
+a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",C);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",ka);mxUtils.extend(E,mxShape);E.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();
+a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",E);mxUtils.extend(U,mxShape);U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};U.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};U.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/
+8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",U);mxUtils.extend(Y,mxRectangleShape);Y.prototype.size=40;Y.prototype.isHtmlAllowed=function(){return!1};Y.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};Y.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))),x=mxUtils.getValue(this.style,"participant");null==x||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,b,d,e):(x=this.state.view.graph.cellRenderer.getShape(x),null!=x&&x!=Y&&(x=new x,x.apply(this.state),a.save(),x.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};Y.prototype.paintForeground=function(a,c,b,d,f){var e=
+Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",Y);mxUtils.extend(X,mxShape);X.prototype.width=60;X.prototype.height=30;X.prototype.corner=10;X.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*
+this.scale))};X.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,x=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(f,Math.max(1.5*e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?
+(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+x,b);a.lineTo(c+x,b+Math.max(0,g-1.5*e));a.lineTo(c+Math.max(0,x-e),b+g);a.lineTo(c,b+g);a.close();a.fillAndStroke();a.begin();a.moveTo(c+x,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",X);mxPerimeter.CenterPerimeter=function(a,c,b,d){return new mxPoint(a.getCenterX(),
+a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=Y.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=
+function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),
+new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",D.prototype.size))*c.view.scale))),c.style),
+c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?y.prototype.fixedSize:y.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?
+(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]):(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",
+mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?z.prototype.fixedSize:z.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+
+f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):
+n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?K.prototype.fixedSize:K.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,
+"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,a),new mxPoint(x,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,
+e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,a),new mxPoint(x+k,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(p,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(p,g+
+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?I.prototype.fixedSize:I.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,
+n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f),new mxPoint(p,g)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+
+f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ma,mxShape);ma.prototype.size=10;ma.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);
+a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",ma);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.inset=2;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+x);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-x,e/2);a.quadTo((d-
+e)/2-x,e+x,d/2,e+x);a.quadTo((d+e)/2+x,e+x,(d+e)/2+x,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",pa);mxUtils.extend(Z,mxShape);Z.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",Z);mxUtils.extend(ha,mxShape);ha.prototype.inset=2;ha.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+
+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ha);mxUtils.extend(ia,mxCylinder);ia.prototype.jettyWidth=20;ia.prototype.jettyHeight=10;ia.prototype.redrawPath=function(a,c,b,d,f,e){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));
+b=x/2;var x=b+x/2,g=Math.min(c,f-c),k=Math.min(g+2*c,f-c);e?(a.moveTo(b,g),a.lineTo(x,g),a.lineTo(x,g+c),a.lineTo(b,g+c),a.moveTo(b,k),a.lineTo(x,k),a.lineTo(x,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,g+c),a.lineTo(0,g+c),a.lineTo(0,g),a.lineTo(b,g),a.close());a.end()};mxCellRenderer.registerShape("module",ia);mxUtils.extend(fa,mxCylinder);fa.prototype.jettyWidth=32;fa.prototype.jettyHeight=
+12;fa.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,x=.3*f-c/2,k=.7*f-c/2;e?(a.moveTo(b,x),a.lineTo(g,x),a.lineTo(g,x+c),a.lineTo(b,x+c),a.moveTo(b,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,x+c),a.lineTo(0,
+x+c),a.lineTo(0,x),a.lineTo(b,x),a.close());a.end()};mxCellRenderer.registerShape("component",fa);mxUtils.extend(ba,mxRectangleShape);ba.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,x=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,x,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",
+ba);mxUtils.extend(na,mxDoubleEllipse);na.prototype.outerStroke=!0;na.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",na);mxUtils.extend(V,na);V.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",V);mxUtils.extend(Q,mxArrowConnector);Q.prototype.defaultWidth=4;Q.prototype.isOpenEnded=
+function(){return!0};Q.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Q.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Q);mxUtils.extend(oa,mxArrowConnector);oa.prototype.defaultWidth=10;oa.prototype.defaultArrowWidth=20;oa.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};oa.prototype.getEndArrowWidth=
+function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};oa.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",oa);mxUtils.extend(T,mxActor);T.prototype.size=30;T.prototype.isRoundable=function(){return!0};T.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",T);mxUtils.extend(ca,mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ca);mxUtils.extend(ja,mxActor);ja.prototype.dx=20;ja.prototype.dy=
+20;ja.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};
+mxCellRenderer.registerShape("corner",ja);mxUtils.extend(ra,mxActor);ra.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",ra);mxUtils.extend(O,mxActor);O.prototype.dx=20;O.prototype.dy=20;O.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",O);mxUtils.extend(ga,mxActor);ga.prototype.arrowWidth=.3;ga.prototype.arrowSize=.2;ga.prototype.redrawPath=
+function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
+ga);mxUtils.extend(ea,mxActor);ea.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),
+new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ea);mxUtils.extend(S,mxActor);S.prototype.size=.1;S.prototype.fixedSize=20;S.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
+a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",S);mxUtils.extend(ya,mxActor);ya.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ya);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
+P);mxUtils.extend(aa,mxActor);aa.prototype.size=20;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
+aa);mxUtils.extend(qa,mxActor);qa.prototype.size=.375;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
qa);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",sa);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);
a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",ta);mxUtils.extend(Fa,mxEllipse);Fa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Fa);mxUtils.extend(Da,mxRhombus);Da.prototype.paintVertexShape=
function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",Da);mxUtils.extend(Ga,mxEllipse);Ga.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",
@@ -2753,166 +2754,166 @@ Ga);mxUtils.extend(Ja,mxEllipse);Ja.prototype.paintVertexShape=function(a,c,b,d,
if(null!=this.style){var e=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1);a.rect(c,b,d,f);a.fill();a.pointerEvents=e;a.setStrokeColor(this.stroke);a.begin();a.moveTo(c,b);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f);this.outline||"1"==mxUtils.getValue(this.style,
"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(c,b);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",xa);mxUtils.extend(Ia,mxEllipse);Ia.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};
mxCellRenderer.registerShape("lineEllipse",Ia);mxUtils.extend(za,mxActor);za.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",za);mxUtils.extend(ua,mxActor);ua.prototype.size=.2;ua.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-
-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ua);mxUtils.extend(va,mxActor);va.prototype.size=.25;va.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/
-2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",va);mxUtils.extend(W,mxActor);W.prototype.cst={RECT2:"mxgraph.basic.rect"};W.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
+e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ua);mxUtils.extend(wa,mxActor);wa.prototype.size=.25;wa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/
+2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",wa);mxUtils.extend(W,mxActor);W.prototype.cst={RECT2:"mxgraph.basic.rect"};W.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",
type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
-dispName:"Fold"}]}];W.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);this.strictDrawShape(a,0,0,d,f)};W.prototype.strictDrawShape=function(a,c,b,d,f,e){var g=e&&e.rectStyle?e.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),m=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),k=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),x=e&&e.rectOutline?e.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),v=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),p=e&&e.dashed?e.dashed:mxUtils.getValue(this.style,"dashed",!1),u=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),n=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,v)),l=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),q=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),B=e&&e.bottom?e.bottom:
-mxUtils.getValue(this.style,"bottom",!0),C=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),z=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),y=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),D=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),t=e&&e.fillColor?e.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var S=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),ga=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),wa=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),F=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),H=e&&e.opacity?e.opacity:
-mxUtils.getValue(this.style,"opacity","100"),E=Math.max(0,Math.min(50,k));e=W.prototype;a.setDashed(p);u&&""!=u&&a.setDashPattern(u);a.setStrokeWidth(S);k=Math.min(.5*f,.5*d,k);m||(k=E*Math.min(d,f)/100);k=Math.min(k,.5*Math.min(d,f));m||(v=Math.min(n*Math.min(d,f)/100));v=Math.min(v,.5*Math.min(d,f)-k);(l||q||B||C)&&"frame"!=x&&(a.begin(),l?e.moveNW(a,c,b,d,f,g,z,k,C):a.moveTo(0,0),l&&e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),q&&e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,
-f,g,D,k,B),B&&e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),C&&e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(ga),p=m=H,"none"==ga&&(m=0),"none"==wa&&(p=0),a.setGradient(ga,wa,0,0,d,f,F,m,p),a.begin(),l?e.moveNWInner(a,c,b,d,f,g,z,k,v,l,C):a.moveTo(v,0),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),C&&B&&e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),B&&q&&e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,
-c,b,d,f,g,y,k,v,l,q),q&&l&&e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),l&&C&&e.paintNWInner(a,c,b,d,f,g,z,k,v),a.fill(),"none"==t&&(a.begin(),e.paintFolds(a,c,b,d,f,g,z,y,D,A,k,l,q,B,C),a.stroke()));l||q||B||!C?l||q||!B||C?!l&&!q&&B&&C?"frame"!=x?(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),"double"==x&&(e.moveNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,
-c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.lineNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),a.close(),a.fillAndStroke()):l||!q||B||C?!l&&q&&!B&&C?"frame"!=x?(a.begin(),e.moveSW(a,c,b,d,f,g,z,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),"double"==
-x&&(e.moveNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),"double"==x&&(e.moveSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,z,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.lineNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,
-g,D,k,B),e.lineSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),a.close(),a.fillAndStroke()):!l&&q&&B&&!C?"frame"!=x?(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),"double"==x&&(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,
-c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.lineSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),a.close(),a.fillAndStroke()):!l&&q&&B&&C?"frame"!=x?(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),"double"==x&&(e.moveNWInner(a,
-c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.lineNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,
-c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),a.close(),a.fillAndStroke()):!l||q||B||C?l&&!q&&!B&&C?"frame"!=x?(a.begin(),e.moveSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),"double"==x&&(e.moveNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C)),a.stroke()):
-(a.begin(),e.moveSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.lineNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke()):l&&!q&&B&&!C?"frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),"double"==x&&(e.moveNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l)),a.stroke(),a.begin(),
-e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),"double"==x&&(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.lineNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),a.close(),a.fillAndStroke(),a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.lineSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),a.close(),a.fillAndStroke()):
-l&&!q&&B&&C?"frame"!=x?(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),"double"==x&&(e.moveNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,D,
-k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.lineNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),a.close(),a.fillAndStroke()):l&&q&&!B&&!C?"frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,
-q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),"double"==x&&(e.moveSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.lineSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,
-d,f,g,z,k,v,C,l),a.close(),a.fillAndStroke()):l&&q&&!B&&C?"frame"!=x?(a.begin(),e.moveSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),"double"==x&&(e.moveSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C)),a.stroke()):
-(a.begin(),e.moveSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.lineSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke()):l&&q&&B&&!C?"frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,
-C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),"double"==x&&(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,
-k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.lineSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),a.close(),a.fillAndStroke()):l&&q&&B&&C&&("frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,
-l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),a.close(),"double"==x&&(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,
-f,g,A,k,v,B,C),a.close()),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),a.close(),e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,
-f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke())):"frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),"double"==x&&(e.moveNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.lineNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,
-f,g,z,k,v,C,l),a.close(),a.fillAndStroke()):"frame"!=x?(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),"double"==x&&(e.moveSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.lineSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),a.close(),a.fillAndStroke()):"frame"!=x?(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),"double"==x&&
-(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.lineSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),a.close(),a.fillAndStroke()):"frame"!=x?(a.begin(),e.moveSW(a,c,b,d,f,g,z,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),"double"==x&&(e.moveNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,z,k,B),e.paintLeft(a,
-c,b,d,f,g,z,k,l),e.lineNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke());a.begin();e.paintFolds(a,c,b,d,f,g,z,y,D,A,k,l,q,B,C);a.stroke()};W.prototype.moveNW=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.moveTo(0,0):a.moveTo(0,k)};W.prototype.moveNE=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.moveTo(d,0):a.moveTo(d-k,0)};W.prototype.moveSE=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&
-"square"==e||!m?a.moveTo(d,f):a.moveTo(d,f-k)};W.prototype.moveSW=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.moveTo(0,f):a.moveTo(k,f)};W.prototype.paintNW=function(a,c,b,d,f,e,g,k,m){if(m)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(k,k,0,0,c,k,0)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,0);else a.lineTo(0,0)};W.prototype.paintTop=
-function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.lineTo(d,0):a.lineTo(d-k,0)};W.prototype.paintNE=function(a,c,b,d,f,e,g,k,m){if(m)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(k,k,0,0,c,d,k)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d,k);else a.lineTo(d,0)};W.prototype.paintRight=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==
-g&&"square"==e||!m?a.lineTo(d,f):a.lineTo(d,f-k)};W.prototype.paintLeft=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.lineTo(0,0):a.lineTo(0,k)};W.prototype.paintSE=function(a,c,b,d,f,e,g,k,m){if(m)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(k,k,0,0,c,d-k,f)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,f);else a.lineTo(d,
-f)};W.prototype.paintBottom=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.lineTo(0,f):a.lineTo(k,f)};W.prototype.paintSW=function(a,c,b,d,f,e,g,k,m){if(m)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(k,k,0,0,c,0,f-k)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(0,f-k);else a.lineTo(0,f)};W.prototype.paintNWInner=function(a,c,b,
-d,f,e,g,k,m){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(k-.5*m,k-.5*m,0,0,0,m,.5*m+k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(k+m,k+m,0,0,1,m,m+k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(m,.5*m+k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(m+k,m+k),a.lineTo(m,m+k)};W.prototype.paintTopInner=function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(0,m):x&&!p?a.lineTo(m,0):x?"square"==g||"default"==g&&"square"==e?a.lineTo(m,m):"rounded"==g||"default"==g&&
-"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k+.5*m,m):a.lineTo(k+m,m):a.lineTo(0,m):a.lineTo(0,0)};W.prototype.paintNEInner=function(a,c,b,d,f,e,g,k,m){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(k-.5*m,k-.5*m,0,0,0,d-k-.5*m,m);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(k+m,k+m,0,0,1,d-k-m,m);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-k-.5*m,m);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-k-m,k+m),a.lineTo(d-k-m,m)};W.prototype.paintRightInner=
-function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(d-m,0):x&&!p?a.lineTo(d,m):x?"square"==g||"default"==g&&"square"==e?a.lineTo(d-m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-m,k+.5*m):a.lineTo(d-m,k+m):a.lineTo(d-m,0):a.lineTo(d,0)};W.prototype.paintLeftInner=function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(m,f):x&&!p?a.lineTo(0,f-m):x?"square"==g||"default"==g&&"square"==e?a.lineTo(m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
-g&&"snip"==e?a.lineTo(m,f-k-.5*m):a.lineTo(m,f-k-m):a.lineTo(m,f):a.lineTo(0,f)};W.prototype.paintSEInner=function(a,c,b,d,f,e,g,k,m){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(k-.5*m,k-.5*m,0,0,0,d-m,f-k-.5*m);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(k+m,k+m,0,0,1,d-m,f-k-m);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-m,f-k-.5*m);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-k-m,f-k-m),a.lineTo(d-m,f-k-m)};W.prototype.paintBottomInner=function(a,c,b,d,
-f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(d,f-m):x&&!p?a.lineTo(d-m,f):"square"==g||"default"==g&&"square"==e||!x?a.lineTo(d-m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k-.5*m,f-m):a.lineTo(d-k-m,f-m):a.lineTo(d,f)};W.prototype.paintSWInner=function(a,c,b,d,f,e,g,k,m,x){if(!x)a.lineTo(m,f);else if("square"==g||"default"==g&&"square"==e)a.lineTo(m,f-m);else if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(k-.5*m,k-.5*m,0,0,0,k+.5*m,f-m);else if("invRound"==
-g||"default"==g&&"invRound"==e)a.arcTo(k+m,k+m,0,0,1,k+m,f-m);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(k+.5*m,f-m);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(m+k,f-k-m),a.lineTo(m+k,f-m)};W.prototype.moveSWInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e?a.moveTo(m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(m,f-k-.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(m,
-f-k-m):a.moveTo(0,f-m)};W.prototype.lineSWInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e?a.lineTo(m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(m,f-k-.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(m,f-k-m):a.lineTo(0,f-m)};W.prototype.moveSEInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e?a.moveTo(d-m,f-m):"rounded"==g||"default"==g&&"rounded"==
-e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-m,f-k-.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-m,f-k-m):a.moveTo(d-m,f)};W.prototype.lineSEInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e?a.lineTo(d-m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-m,f-k-.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-m,f-k-m):a.lineTo(d-
-m,f)};W.prototype.moveNEInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e||x?a.moveTo(d-m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-m,k+.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-m,k+m):a.moveTo(d,m)};W.prototype.lineNEInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e||x?a.lineTo(d-m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
-g&&"snip"==e?a.lineTo(d-m,k+.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-m,k+m):a.lineTo(d,m)};W.prototype.moveNWInner=function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.moveTo(m,0):x&&!p?a.moveTo(0,m):"square"==g||"default"==g&&"square"==e?a.moveTo(m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(m,k+.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(m,k+m):a.moveTo(0,
-0)};W.prototype.lineNWInner=function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(m,0):x&&!p?a.lineTo(0,m):"square"==g||"default"==g&&"square"==e?a.lineTo(m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(m,k+.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(m,k+m):a.lineTo(0,0)};W.prototype.paintFolds=function(a,c,b,d,f,e,g,k,m,x,p,u,l,q,B){if("fold"==e||"fold"==g||"fold"==k||"fold"==m||"fold"==x)("fold"==g||"default"==
-g&&"fold"==e)&&u&&B&&(a.moveTo(0,p),a.lineTo(p,p),a.lineTo(p,0)),("fold"==k||"default"==k&&"fold"==e)&&u&&l&&(a.moveTo(d-p,0),a.lineTo(d-p,p),a.lineTo(d,p)),("fold"==m||"default"==m&&"fold"==e)&&q&&l&&(a.moveTo(d-p,f),a.lineTo(d-p,f-p),a.lineTo(d,f-p)),("fold"==x||"default"==x&&"fold"==e)&&q&&B&&(a.moveTo(0,f-p),a.lineTo(p,f-p),a.lineTo(p,f))};mxCellRenderer.registerShape(W.prototype.cst.RECT2,W);W.prototype.constraints=null;mxUtils.extend(Aa,mxConnector);Aa.prototype.origPaintEdgeShape=Aa.prototype.paintEdgeShape;
+dispName:"Fold"}]}];W.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);this.strictDrawShape(a,0,0,d,f)};W.prototype.strictDrawShape=function(a,c,b,d,f,e){var g=e&&e.rectStyle?e.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),n=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=e&&e.rectOutline?e.rectOutline:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),x=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),t=e&&e.dashed?e.dashed:mxUtils.getValue(this.style,"dashed",!1),v=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),l=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,x)),m=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),q=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),B=e&&e.bottom?e.bottom:
+mxUtils.getValue(this.style,"bottom",!0),C=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),y=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),z=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),E=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),u=e&&e.fillColor?e.fillColor:
+mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var ka=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),va=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),I=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),F=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),la=e&&e.opacity?
+e.opacity:mxUtils.getValue(this.style,"opacity","100"),D=Math.max(0,Math.min(50,n));e=W.prototype;a.setDashed(t);v&&""!=v&&a.setDashPattern(v);a.setStrokeWidth(ka);n=Math.min(.5*f,.5*d,n);k||(n=D*Math.min(d,f)/100);n=Math.min(n,.5*Math.min(d,f));k||(x=Math.min(l*Math.min(d,f)/100));x=Math.min(x,.5*Math.min(d,f)-n);(m||q||B||C)&&"frame"!=p&&(a.begin(),m?e.moveNW(a,c,b,d,f,g,y,n,C):a.moveTo(0,0),m&&e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),q&&e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,
+c,b,d,f,g,E,n,B),B&&e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),C&&e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(va),t=k=la,"none"==va&&(k=0),"none"==I&&(t=0),a.setGradient(va,I,0,0,d,f,F,k,t),a.begin(),m?e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C):a.moveTo(x,0),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),C&&B&&e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),B&&q&&e.paintSEInner(a,c,b,d,f,g,E,n,x),
+e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),q&&m&&e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),m&&C&&e.paintNWInner(a,c,b,d,f,g,y,n,x),a.fill(),"none"==u&&(a.begin(),e.paintFolds(a,c,b,d,f,g,y,z,E,A,n,m,q,B,C),a.stroke()));m||q||B||!C?m||q||!B||C?!m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,
+d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m||!q||B||C?!m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,
+c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,
+n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&!C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,
+b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,
+n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,
+c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m||q||B||C?m&&!q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
+c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&!q&&B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,
+b,d,f,g,y,n,x,C,m)),a.stroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,
+c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,
+B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&q&&!B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,
+c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,
+c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
+c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&q&&B&&!C?"frame"!=p?(a.begin(),
+e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),
+e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&B&&C&&("frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,
+c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
+c,b,d,f,g,A,n,x,B,C),a.close()),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,
+c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke())):"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,
+c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==
+p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,
+c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke());a.begin();e.paintFolds(a,c,b,d,f,g,y,z,E,A,n,m,q,B,C);a.stroke()};W.prototype.moveNW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,0):a.moveTo(0,n)};W.prototype.moveNE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(d,0):a.moveTo(d-n,0)};W.prototype.moveSE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&
+"square"==e||!k?a.moveTo(d,f):a.moveTo(d,f-n)};W.prototype.moveSW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,f):a.moveTo(n,f)};W.prototype.paintNW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,n,0)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(n,0);else a.lineTo(0,0)};W.prototype.paintTop=
+function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(d,0):a.lineTo(d-n,0)};W.prototype.paintNE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d,n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d,n);else a.lineTo(d,0)};W.prototype.paintRight=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==
+g&&"square"==e||!k?a.lineTo(d,f):a.lineTo(d,f-n)};W.prototype.paintLeft=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,0):a.lineTo(0,n)};W.prototype.paintSE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d-n,f)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-n,f);else a.lineTo(d,
+f)};W.prototype.paintBottom=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,f):a.lineTo(n,f)};W.prototype.paintSW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,0,f-n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(0,f-n);else a.lineTo(0,f)};W.prototype.paintNWInner=function(a,c,b,
+d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,k,.5*k+n);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,k,k+n);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(k,.5*k+n);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,k+n),a.lineTo(k,k+n)};W.prototype.paintTopInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(0,k):p&&!t?a.lineTo(k,0):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&
+"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(n+.5*k,k):a.lineTo(n+k,k):a.lineTo(0,k):a.lineTo(0,0)};W.prototype.paintNEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-n-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-n-k,k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-n-.5*k,k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,n+k),a.lineTo(d-n-k,k)};W.prototype.paintRightInner=
+function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d-k,0):p&&!t?a.lineTo(d,k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,n+.5*k):a.lineTo(d-k,n+k):a.lineTo(d-k,0):a.lineTo(d,0)};W.prototype.paintLeftInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,f):p&&!t?a.lineTo(0,f-k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
+g&&"snip"==e?a.lineTo(k,f-n-.5*k):a.lineTo(k,f-n-k):a.lineTo(k,f):a.lineTo(0,f)};W.prototype.paintSEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-k,f-n-.5*k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-k,f-n-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-k,f-n-.5*k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,f-n-k),a.lineTo(d-k,f-n-k)};W.prototype.paintBottomInner=function(a,c,b,d,
+f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d,f-k):p&&!t?a.lineTo(d-k,f):"square"==g||"default"==g&&"square"==e||!p?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-n-.5*k,f-k):a.lineTo(d-n-k,f-k):a.lineTo(d,f)};W.prototype.paintSWInner=function(a,c,b,d,f,e,g,n,k,p){if(!p)a.lineTo(k,f);else if("square"==g||"default"==g&&"square"==e)a.lineTo(k,f-k);else if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,n+.5*k,f-k);else if("invRound"==
+g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,n+k,f-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(n+.5*k,f-k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,f-n-k),a.lineTo(k+n,f-k)};W.prototype.moveSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,
+f-n-k):a.moveTo(0,f-k)};W.prototype.lineSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,f-n-k):a.lineTo(0,f-k)};W.prototype.moveSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==
+e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,f-n-k):a.moveTo(d-k,f)};W.prototype.lineSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,f-n-k):a.lineTo(d-
+k,f)};W.prototype.moveNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,n+k):a.moveTo(d,k)};W.prototype.lineNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
+g&&"snip"==e?a.lineTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,n+k):a.lineTo(d,k)};W.prototype.moveNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.moveTo(k,0):p&&!t?a.moveTo(0,k):"square"==g||"default"==g&&"square"==e?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,n+k):a.moveTo(0,
+0)};W.prototype.lineNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,0):p&&!t?a.lineTo(0,k):"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,n+k):a.lineTo(0,0)};W.prototype.paintFolds=function(a,c,b,d,f,e,g,n,k,p,t,v,m,q,B){if("fold"==e||"fold"==g||"fold"==n||"fold"==k||"fold"==p)("fold"==g||"default"==
+g&&"fold"==e)&&v&&B&&(a.moveTo(0,t),a.lineTo(t,t),a.lineTo(t,0)),("fold"==n||"default"==n&&"fold"==e)&&v&&m&&(a.moveTo(d-t,0),a.lineTo(d-t,t),a.lineTo(d,t)),("fold"==k||"default"==k&&"fold"==e)&&q&&m&&(a.moveTo(d-t,f),a.lineTo(d-t,f-t),a.lineTo(d,f-t)),("fold"==p||"default"==p&&"fold"==e)&&q&&B&&(a.moveTo(0,f-t),a.lineTo(t,f-t),a.lineTo(t,f))};mxCellRenderer.registerShape(W.prototype.cst.RECT2,W);W.prototype.constraints=null;mxUtils.extend(Aa,mxConnector);Aa.prototype.origPaintEdgeShape=Aa.prototype.paintEdgeShape;
Aa.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f]));var f=a.state.dashed,e=a.state.fixDash;Aa.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),Aa.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",Aa);"undefined"!==typeof StyleFormatPanel&&function(){var a=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,k,m,x){var p=f*(g+m+1),v=e*(g+m+1);return function(){a.begin();a.moveTo(d.x-p/2-v/2,d.y-v/2+p/2);a.lineTo(d.x+v/2-3*p/2,d.y-3*v/2-p/2);a.stroke()}});mxMarker.addMarker("box",
-function(a,c,b,d,f,e,g,k,m,x){var p=f*(g+m+1),v=e*(g+m+1),u=d.x+p/2,l=d.y+v/2;d.x-=p;d.y-=v;return function(){a.begin();a.moveTo(u-p/2-v/2,l-v/2+p/2);a.lineTo(u-p/2+v/2,l-v/2-p/2);a.lineTo(u+v/2-3*p/2,l-3*v/2-p/2);a.lineTo(u-v/2-3*p/2,l-3*v/2+p/2);a.close();x?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,k,m,x){var p=f*(g+m+1),v=e*(g+m+1);return function(){a.begin();a.moveTo(d.x-p/2-v/2,d.y-v/2+p/2);a.lineTo(d.x+v/2-3*p/2,d.y-3*v/2-p/2);a.moveTo(d.x-p/2+v/2,d.y-
-v/2-p/2);a.lineTo(d.x-v/2-3*p/2,d.y-3*v/2+p/2);a.stroke()}});mxMarker.addMarker("circle",Ta);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,k,m,x){var p=d.clone(),v=Ta.apply(this,arguments),u=f*(g+2*m),l=e*(g+2*m);return function(){v.apply(this,arguments);a.begin();a.moveTo(p.x-f*m,p.y-e*m);a.lineTo(p.x-2*u+f*m,p.y-2*l+e*m);a.moveTo(p.x-u-l+e*m,p.y-l+u-f*m);a.lineTo(p.x+l-u-e*m,p.y-l-u+f*m);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,c,b,d,f,e,g,k,m,x){var p=f*(g+m+1),v=e*(g+
-m+1),u=d.clone();d.x-=p;d.y-=v;return function(){a.begin();a.moveTo(u.x-v,u.y+p);a.quadTo(d.x-v,d.y+p,d.x,d.y);a.quadTo(d.x+v,d.y-p,u.x+v,u.y-p);a.stroke()}});mxMarker.addMarker("async",function(a,c,d,b,f,e,g,k,m,x){c=f*m*1.118;d=e*m*1.118;f*=g+m;e*=g+m;var p=b.clone();p.x-=c;p.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(p.x,p.y);k?a.lineTo(p.x-f-e/2,p.y-e+f/2):a.lineTo(p.x+e/2-f,p.y-e-f/2);a.lineTo(p.x-f,p.y-e);a.close();x?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
-function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,k,m,x,p){e*=k+x;g*=k+x;var v=f.clone();return function(){c.begin();c.moveTo(v.x,v.y);m?c.lineTo(v.x-e-g/a,v.y-g+e/a):c.lineTo(v.x+g/a-e,v.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Xa=function(a,c,d){return La(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,k){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));a.style.width=
-Math.round(2*c)/a.view.scale-d})},La=function(a,c,d,b,f){return ea(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=a.view.scale,k=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-k.x,m=f.y-k.y,x=Math.sqrt(e*e+m*m),k=b.call(this,x,e/x,m/x,k,f);return new mxPoint(k.x/g-c.x,k.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,k=g.length-1;c=a.view.translate;var m=a.view.scale,x=d?g[0]:g[k],g=d?g[1]:g[k-1],k=g.x-x.x,p=g.y-x.y,v=Math.sqrt(k*k+p*p);b.x=(b.x+c.x)*m;b.y=(b.y+c.y)*m;f.call(this,
-v,k/v,p/v,x,g,b,e)})},Ea=function(a){return function(c){return[ea(c,["arrowWidth","arrowSize"],function(c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ia.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",ia.prototype.arrowSize)));return new mxPoint(c.x+(1-d)*c.width,c.y+(1-b)*c.height/2)},function(c,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-b.y)/c.height*2));this.state.style.arrowSize=Math.max(0,
-Math.min(a,(c.x+c.width-b.x)/c.width))})]}},Ua=function(a){return function(c){return[ea(c,["size"],function(c){var b=Math.max(0,Math.min(.5*c.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(c.x,c.y+b)},function(a,c){this.state.style.size=Math.max(0,c.y-a.y)},!0)]}},Ra=function(a,c,b){return function(d){var f=[ea(d,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(b.x+
-d,b.y+d)},function(c,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,b.x-c.x),Math.min(c.height,b.y-c.y)))/a)},!1)];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(d));return f}},Ma=function(a,c,b,d,f){b=null!=b?b:.5;return function(e){var g=[ea(e,["size"],function(c){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",b?f:a));return new mxPoint(c.x+Math.max(0,Math.min(.5*c.width,
-d*(b?1:c.width))),c.getCenterY())},function(a,c,d){a=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-a.x:Math.max(0,Math.min(b,(c.x-a.x)/a.width));this.state.style.size=a},!1,d)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(Ba(e));return g}},Va=function(a,c,b){a=null!=a?a:.5;return function(d){var f=[ea(d,["size"],function(d){var f=null!=b?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,e=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
-"size",f?b:c)));return new mxPoint(d.x+Math.min(.75*d.width*a,e*(f?.75:.75*d.width)),d.y+d.height/4)},function(c,d){var f=null!=b&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-c.x:Math.max(0,Math.min(a,(d.x-c.x)/c.width*.75));this.state.style.size=f},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(d));return f}},Ka=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c}},Ba=function(a,c){return ea(a,
-[mxConstants.STYLE_ARCSIZE],function(b){var d=null!=c?c:b.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(b.x+b.width-Math.min(b.width/2,f),b.y+d)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(b.x+b.width-Math.min(Math.max(b.width/2,b.height/2),Math.min(b.width,b.height)*
-f),b.y+d)},function(c,b,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-b.x+c.x)/Math.min(c.width,c.height))))})},ea=function(a,c,b,d,f,e,g){var k=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);k.execute=function(a){for(var b=0;b<c.length;b++)this.copyStyle(c[b]);
-g&&g(a)};k.getPosition=b;k.setPosition=d;k.ignoreGrid=null!=f?f:!0;if(e){var m=k.positionChanged;k.positionChanged=function(){m.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return k},Na={link:function(a){return[Xa(a,!0,10),Xa(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
-!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,m){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/
-3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(m.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(m.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,
-b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,m){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/
-100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(m.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(m.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-
-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*
-a.view.scale)+b*c/2)},function(b,d,f,e,g,k,m){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(m.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(m.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
-c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,m){b=
-Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(m.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(m.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var c=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(Ba(a,b/2))}c.push(ea(a,[mxConstants.STYLE_STARTSIZE],
-function(c){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,b))):new mxPoint(c.x+Math.max(0,Math.min(c.width,b)),c.getCenterY())},function(c,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,b.y-c.y))):Math.round(Math.max(0,
-Math.min(c.width,b.x-c.x)))},!1,null,function(c){if(mxEvent.isControlDown(c.getEvent())&&(c=a.view.graph,c.isTableRow(a.cell)||c.isTableCell(a.cell))){for(var b=c.getSwimlaneDirection(a.style),d=c.model.getParent(a.cell),d=c.model.getChildCells(d,!0),f=[],e=0;e<d.length;e++)d[e]!=a.cell&&c.isSwimlane(d[e])&&c.getSwimlaneDirection(c.getCurrentCellStyle(d[e]))==b&&f.push(d[e]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],f)}}));return c},label:Ka(),ext:Ka(),rectangle:Ka(),
-triangle:Ka(),rhombus:Ka(),umlLifeline:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Z.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[ea(a,["width","height"],function(a){var c=Math.max(Y.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",Y.prototype.width))),
-b=Math.max(1.5*Y.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",Y.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(Y.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*Y.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[ea(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),b=parseFloat(mxUtils.getValue(this.state.style,
-"size",G.prototype.size));return c?new mxPoint(a.x+b,a.y+a.height/4):new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,c){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,c.x-a.x)):Math.max(0,Math.min(.5,(c.x-a.x)/a.width));this.state.style.size=b},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},cross:function(a){return[ea(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"size",ua.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var b=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/b*2,Math.max(0,a.getCenterX()-c.x)/b*2)))})]},note:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=
-Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[ea(a,["size"],function(a){var c=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",T.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},dataStorage:function(a){return[ea(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),b=parseFloat(mxUtils.getValue(this.state.style,"size",c?R.prototype.fixedSize:
-R.prototype.size));return new mxPoint(a.x+a.width-b*(c?1:a.width),a.getCenterY())},function(a,c){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=b},!1)]},callout:function(a){var c=[ea(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",E.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",E.prototype.position)));mxUtils.getValue(this.state.style,"base",E.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-c)},function(a,c){mxUtils.getValue(this.state.style,"base",E.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),ea(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",E.prototype.position2)));
-return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),ea(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",E.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",E.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",E.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
-b*a.width+d),a.y+a.height-c)},function(a,c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",E.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-b*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},internalStorage:function(a){var c=[ea(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",da.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",da.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},module:function(a){return[ea(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ka.prototype.jettyWidth))),b=Math.max(0,Math.min(a.height,
-mxUtils.getValue(this.state.style,"jettyHeight",ka.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+2*b)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[ea(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",la.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",la.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[ea(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+b)},function(a,
-c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ea(1),doubleArrow:Ea(.5),folder:function(a){return[ea(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",k.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",k.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",F.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[ea(a,
-["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",c.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Ua(f.prototype.size),cylinder3:Ua(g.prototype.size),offPageConnector:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",qa.prototype.size))));
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.stroke()}});mxMarker.addMarker("box",
+function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1),v=d.x+t/2,m=d.y+x/2;d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v-t/2-x/2,m-x/2+t/2);a.lineTo(v-t/2+x/2,m-x/2-t/2);a.lineTo(v+x/2-3*t/2,m-3*x/2-t/2);a.lineTo(v-x/2-3*t/2,m-3*x/2+t/2);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.moveTo(d.x-t/2+x/2,d.y-
+x/2-t/2);a.lineTo(d.x-x/2-3*t/2,d.y-3*x/2+t/2);a.stroke()}});mxMarker.addMarker("circle",Ta);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,n,k,p){var t=d.clone(),x=Ta.apply(this,arguments),v=f*(g+2*k),m=e*(g+2*k);return function(){x.apply(this,arguments);a.begin();a.moveTo(t.x-f*k,t.y-e*k);a.lineTo(t.x-2*v+f*k,t.y-2*m+e*k);a.moveTo(t.x-v-m+e*k,t.y-m+v-f*k);a.lineTo(t.x+m-v-e*k,t.y-m-v+f*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+
+k+1),v=d.clone();d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v.x-x,v.y+t);a.quadTo(d.x-x,d.y+t,d.x,d.y);a.quadTo(d.x+x,d.y-t,v.x+x,v.y-t);a.stroke()}});mxMarker.addMarker("async",function(a,c,d,b,f,e,g,n,k,p){c=f*k*1.118;d=e*k*1.118;f*=g+k;e*=g+k;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);n?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
+function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,n,k,p,t){e*=n+p;g*=n+p;var x=f.clone();return function(){c.begin();c.moveTo(x.x,x.y);k?c.lineTo(x.x-e-g/a,x.y-g+e/a):c.lineTo(x.x+g/a-e,x.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Xa=function(a,c,d){return La(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,n){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));a.style.width=
+Math.round(2*c)/a.view.scale-d})},La=function(a,c,d,b,f){return da(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=a.view.scale,n=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-n.x,k=f.y-n.y,p=Math.sqrt(e*e+k*k),n=b.call(this,p,e/p,k/p,n,f);return new mxPoint(n.x/g-c.x,n.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,n=g.length-1;c=a.view.translate;var k=a.view.scale,p=d?g[0]:g[n],g=d?g[1]:g[n-1],n=g.x-p.x,t=g.y-p.y,x=Math.sqrt(n*n+t*t);b.x=(b.x+c.x)*k;b.y=(b.y+c.y)*k;f.call(this,
+x,n/x,t/x,p,g,b,e)})},Ea=function(a){return function(c){return[da(c,["arrowWidth","arrowSize"],function(c){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ga.prototype.arrowWidth))),b=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",ga.prototype.arrowSize)));return new mxPoint(c.x+(1-b)*c.width,c.y+(1-d)*c.height/2)},function(c,d){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-d.y)/c.height*2));this.state.style.arrowSize=Math.max(0,
+Math.min(a,(c.x+c.width-d.x)/c.width))})]}},Ua=function(a){return function(c){return[da(c,["size"],function(c){var d=Math.max(0,Math.min(.5*c.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(c.x,c.y+d)},function(a,c){this.state.style.size=Math.max(0,c.y-a.y)},!0)]}},Ra=function(a,c,d){return function(b){var f=[da(b,["size"],function(d){var b=Math.max(0,Math.min(d.width,Math.min(d.height,parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(d.x+
+b,d.y+b)},function(c,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,d.x-c.x),Math.min(c.height,d.y-c.y)))/a)},!1)];d&&mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(b));return f}},Ma=function(a,c,d,b,f){d=null!=d?d:.5;return function(e){var g=[da(e,["size"],function(c){var d=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,b=parseFloat(mxUtils.getValue(this.state.style,"size",d?f:a));return new mxPoint(c.x+Math.max(0,Math.min(.5*c.width,
+b*(d?1:c.width))),c.getCenterY())},function(a,c,b){a=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-a.x:Math.max(0,Math.min(d,(c.x-a.x)/a.width));this.state.style.size=a},!1,b)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(Ba(e));return g}},Va=function(a,c,d){a=null!=a?a:.5;return function(b){var f=[da(b,["size"],function(b){var f=null!=d?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,e=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
+"size",f?d:c)));return new mxPoint(b.x+Math.min(.75*b.width*a,e*(f?.75:.75*b.width)),b.y+b.height/4)},function(c,b){var f=null!=d&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-c.x:Math.max(0,Math.min(a,(b.x-c.x)/c.width*.75));this.state.style.size=f},!1,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(b));return f}},Ka=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c}},Ba=function(a,c){return da(a,
+[mxConstants.STYLE_ARCSIZE],function(d){var b=null!=c?c:d.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(d.x+d.width-Math.min(d.width/2,f),d.y+b)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(d.x+d.width-Math.min(Math.max(d.width/2,d.height/2),Math.min(d.width,d.height)*
+f),d.y+b)},function(c,d,b){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-d.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-d.x+c.x)/Math.min(c.width,c.height))))})},da=function(a,c,d,b,f,e,g){var n=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);n.execute=function(a){for(var d=0;d<c.length;d++)this.copyStyle(c[d]);
+g&&g(a)};n.getPosition=d;n.setPosition=b;n.ignoreGrid=null!=f?f:!0;if(e){var k=n.positionChanged;n.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return n},Na={link:function(a){return[Xa(a,!0,10),Xa(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,d=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!0,function(c,d,b,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(b-a.shape.strokewidth)/
+3)/100/a.view.scale;a.style.width=Math.round(2*d)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),d.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,
+d,b,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/
+100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*d)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-
+parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,d,b,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2,f.y+b*(e+a.shape.strokewidth*
+a.view.scale)+d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*d)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
+c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),d.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,d,b,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2)},function(d,b,f,e,g,n,k){d=
+Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*d)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
+parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return d},swimlane:function(a){var c=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var d=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(Ba(a,d/2))}c.push(da(a,[mxConstants.STYLE_STARTSIZE],
+function(c){var d=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,d))):new mxPoint(c.x+Math.max(0,Math.min(c.width,d)),c.getCenterY())},function(c,d){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,d.y-c.y))):Math.round(Math.max(0,
+Math.min(c.width,d.x-c.x)))},!1,null,function(c){if(mxEvent.isControlDown(c.getEvent())&&(c=a.view.graph,c.isTableRow(a.cell)||c.isTableCell(a.cell))){for(var d=c.getSwimlaneDirection(a.style),b=c.model.getParent(a.cell),b=c.model.getChildCells(b,!0),f=[],e=0;e<b.length;e++)b[e]!=a.cell&&c.isSwimlane(b[e])&&c.getSwimlaneDirection(c.getCurrentCellStyle(b[e]))==d&&f.push(b[e]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],f)}}));return c},label:Ka(),ext:Ka(),rectangle:Ka(),
+triangle:Ka(),rhombus:Ka(),umlLifeline:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Y.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var c=Math.max(X.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),
+d=Math.max(1.5*X.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.width=Math.round(Math.max(X.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),d=parseFloat(mxUtils.getValue(this.state.style,
+"size",J.prototype.size));return c?new mxPoint(a.x+d,a.y+a.height/4):new mxPoint(a.x+a.width*d,a.y+a.height/4)},function(a,c){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,c.x-a.x)):Math.max(0,Math.min(.5,(c.x-a.x)/a.width));this.state.style.size=d},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},cross:function(a){return[da(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"size",ua.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var d=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/d*2,Math.max(0,a.getCenterX()-c.x)/d*2)))})]},note:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=
+Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[da(a,["size"],function(a){var c=
+Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",T.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},dataStorage:function(a){return[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),d=parseFloat(mxUtils.getValue(this.state.style,"size",c?S.prototype.fixedSize:
+S.prototype.size));return new mxPoint(a.x+a.width-d*(c?1:a.width),a.getCenterY())},function(a,c){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=d},!1)]},callout:function(a){var c=[da(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+d*a.width,a.y+a.height-c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));
+return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
+d*a.width+b),a.y+a.height-c)},function(a,c){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-d*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},internalStorage:function(a){var c=[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ca.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",ca.prototype.dy)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},module:function(a){return[da(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ia.prototype.jettyWidth))),d=Math.max(0,Math.min(a.height,
+mxUtils.getValue(this.state.style,"jettyHeight",ia.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+2*d)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",ja.prototype.dy)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+d)},function(a,
+c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ea(1),doubleArrow:Ea(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,
+"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+d)},function(a,c){var d=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=a.width-d);this.state.style.tabWidth=Math.round(d);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
+"size",F.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[da(a,
+["isoAngle"],function(a){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",c.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(d),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Ua(f.prototype.size),cylinder3:Ua(g.prototype.size),offPageConnector:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",qa.prototype.size))));
return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var c=[Graph.createHandle(a,["size"],function(a){var c=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+c,a.y+c)},function(a,c){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,c.x-a.x)))/100})];a=Graph.createHandle(a,
-["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(J.prototype.size,!0,null,!0,J.prototype.fixedSize),hexagon:Ma(H.prototype.size,!0,.5,!0,H.prototype.fixedSize),curlyBracket:Ma(M.prototype.size,!1),display:Ma(va.prototype.size,!1),cube:Ra(1,
-b.prototype.size,!1),card:Ra(.5,u.prototype.size,!0),loopLimit:Ra(.5,ba.prototype.size,!0),trapezoid:Va(.5,y.prototype.size,y.prototype.fixedSize),parallelogram:Va(1,z.prototype.size,z.prototype.fixedSize)};Graph.createHandle=ea;Graph.handleFactory=Na;var bb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=bb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&
+["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(K.prototype.size,!0,null,!0,K.prototype.fixedSize),hexagon:Ma(I.prototype.size,!0,.5,!0,I.prototype.fixedSize),curlyBracket:Ma(L.prototype.size,!1),display:Ma(wa.prototype.size,!1),cube:Ra(1,
+b.prototype.size,!1),card:Ra(.5,v.prototype.size,!0),loopLimit:Ra(.5,aa.prototype.size,!0),trapezoid:Va(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Va(1,y.prototype.size,y.prototype.fixedSize)};Graph.createHandle=da;Graph.handleFactory=Na;var bb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=bb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&
null==mxStencilRegistry.getStencil(c)?c=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(c=mxConstants.SHAPE_SWIMLANE);c=Na[c];null==c&&null!=this.state.shape&&this.state.shape.isRoundable()&&(c=Na[mxConstants.SHAPE_RECTANGLE]);null!=c&&(c=c(this.state),null!=c&&(a=null==a?c:a.concat(c)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
-a=Na[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Ea=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Ea),Math.sin(Ea)),Ea=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Ea),Math.sin(Ea));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=e.transformControlPoint(a,d));null==
-k&&null!=c&&(k=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var m=Oa.x,x=Oa.y,p=Pa.x,u=Pa.y,l="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){a=function(a,c,b){a-=q.x;var d=c-q.y;c=(u*a-p*d)/(m*u-x*p);a=(x*a-m*d)/(x*p-m*u);l?(b&&(q=new mxPoint(q.x+m*c,q.y+x*c),f.push(q)),q=new mxPoint(q.x+p*a,q.y+u*a)):(b&&(q=new mxPoint(q.x+p*a,q.y+u*a),f.push(q)),q=new mxPoint(q.x+m*c,q.y+x*c));f.push(q)};var q=k;null==
-d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var cb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return cb.apply(this,arguments)};d.prototype.constraints=[];n.prototype.getConstraints=function(a,c,b){a=[];var d=Math.tan(mxUtils.toRadians(30)),f=(.5-
-d)/2,d=Math.min(c,b/(.5+d));c=(c-d)/2;b=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*d,b+d*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+d,b+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+d,b+.75*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*d,b+(1-f)*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b+.75*d));return a};c.prototype.getConstraints=
-function(a,c,b){a=[];var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,d=Math.min(c*Math.tan(d),.5*b);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b-d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));return a};E.prototype.getConstraints=function(a,c,b){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b-d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+a=Na[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Ea=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Ea),Math.sin(Ea)),Ea=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Ea),Math.sin(Ea));mxEdgeStyle.IsometricConnector=function(a,c,d,b,f){var e=a.view;b=null!=b&&0<b.length?b[0]:null;var g=a.absolutePoints,n=g[0],g=g[g.length-1];null!=b&&(b=e.transformControlPoint(a,b));null==
+n&&null!=c&&(n=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=d&&(g=new mxPoint(d.getCenterX(),d.getCenterY()));var k=Oa.x,p=Oa.y,t=Pa.x,v=Pa.y,m="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=n){a=function(a,c,d){a-=q.x;var b=c-q.y;c=(v*a-t*b)/(k*v-p*t);a=(p*a-k*b)/(p*t-k*v);m?(d&&(q=new mxPoint(q.x+k*c,q.y+p*c),f.push(q)),q=new mxPoint(q.x+t*a,q.y+v*a)):(d&&(q=new mxPoint(q.x+t*a,q.y+v*a),f.push(q)),q=new mxPoint(q.x+k*c,q.y+p*c));f.push(q)};var q=n;null==
+b&&(b=new mxPoint(n.x+(g.x-n.x)/2,n.y+(g.y-n.y)/2));a(b.x,b.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var cb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var d=new mxElbowEdgeHandler(a);d.snapToTerminals=!1;return d}return cb.apply(this,arguments)};d.prototype.constraints=[];l.prototype.getConstraints=function(a,c,d){a=[];var b=Math.tan(mxUtils.toRadians(30)),f=(.5-
+b)/2,b=Math.min(c,d/(.5+b));c=(c-b)/2;d=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,d+b*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,d+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,d+.75*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,d+(1-f)*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d+.75*b));return a};c.prototype.getConstraints=
+function(a,c,d){a=[];var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,b=Math.min(c*Math.tan(b),.5*d);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d-b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));return a};D.prototype.getConstraints=function(a,c,d){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+c,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-b)));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,
1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];xa.prototype.constraints=mxRectangleShape.prototype.constraints;
-mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};u.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));return a};g.prototype.getConstraints=function(a,c,b){a=[];c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};k.prototype.getConstraints=
-function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};da.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;ta.prototype.constraints=mxEllipse.prototype.constraints;
-Fa.prototype.constraints=mxEllipse.prototype.constraints;Ia.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;za.prototype.constraints=mxRectangleShape.prototype.constraints;va.prototype.getConstraints=function(a,c,b){a=[];var d=Math.min(c,b/2),f=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};ka.prototype.getConstraints=function(a,c,b){c=parseFloat(mxUtils.getValue(a,
-"jettyWidth",ka.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ka.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
-.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(b-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(b-.5*a,3.5*a))];b>5*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));b>8*a&&d.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1,null,c));b>15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return d};ba.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
+mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};v.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(c+b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-b)));return a};g.prototype.getConstraints=function(a,c,d){a=[];c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
+0),!1,null,0,c+.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d-c-.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-c-.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};p.prototype.getConstraints=
+function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,b,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,.25*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,.75*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ca.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;ta.prototype.constraints=mxEllipse.prototype.constraints;
+Fa.prototype.constraints=mxEllipse.prototype.constraints;Ia.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;za.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.getConstraints=function(a,c,d){a=[];var b=Math.min(c,d/2),f=Math.min(c-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));return a};ia.prototype.getConstraints=function(a,c,d){c=parseFloat(mxUtils.getValue(a,
+"jettyWidth",ia.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ia.prototype.jettyHeight));var b=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
+.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(d-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(d-.5*a,3.5*a))];d>5*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));d>8*a&&b.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1,null,c));d>15*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return b};aa.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];B.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
-.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];ha.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
+.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];fa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
-.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
+.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];k.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
-.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];J.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
+.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
-.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];z.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
-0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;O.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c+d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};la.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-1),!1));return a};ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ia.prototype.getConstraints=
-function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));return a};fa.prototype.getConstraints=function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ia.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ia.prototype.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};ua.prototype.getConstraints=
-function(a,c,b){a=[];var d=Math.min(b,c),f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(b-f)/2,e=d+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),d));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Z.prototype.constraints=null;ya.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
-.9),!1)];N.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];aa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];y.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;O.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(c+b),.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*b,f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};ja.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+1),!1));return a};ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ga.prototype.getConstraints=
+function(a,c,d){a=[];var b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),b=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));return a};ea.prototype.getConstraints=function(a,c,d){a=[];var b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize)))),b=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));return a};ua.prototype.getConstraints=
+function(a,c,d){a=[];var b=Math.min(d,c),f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),b=(d-f)/2,e=b+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),b));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));return a};Y.prototype.constraints=null;ya.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
+.9),!1)];P.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];Z.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ha.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
-Actions.prototype.init=function(){function a(a){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}var b=this.editorUi,e=b.editor,d=e.graph,n=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey=
-"import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){try{var b=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(b.documentElement))}catch(g){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+g.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=n;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+
-"+S").isEnabled=n;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=n;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,304,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=n;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,
+Actions.prototype.init=function(){function a(a){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}var b=this.editorUi,e=b.editor,d=e.graph,l=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey=
+"import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){try{var d=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(d.documentElement))}catch(g){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+g.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=l;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+
+"+S").isEnabled=l;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=l;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,304,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=l;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,
300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var a=null;try{a=b.copyXml(),null!=a&&d.removeCells(a)}catch(c){}null==a&&mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",
function(){try{b.copyXml()}catch(q){}try{mxClipboard.copy(d)}catch(q){b.handleError(q)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{b.pasteXml(a,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),a=!0)}catch(c){}a||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+
-"+V");this.addAction("pasteHere",function(a){function c(a){if(null!=a){for(var c=!0,b=0;b<a.length&&c;b++)c=c&&d.model.isEdge(a[b]);var f=d.view.translate,b=d.view.scale,e=f.x,g=f.y,f=null;if(1==a.length&&c){var l=d.getCellGeometry(a[0]);null!=l&&(f=l.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(a,c);null!=f&&(c=Math.round(d.snap(d.popupMenuHandler.triggerX/b-e)),b=Math.round(d.snap(d.popupMenuHandler.triggerY/b-g)),d.cellsMoved(a,c-f.x,b-f.y))}}function f(){d.getModel().beginUpdate();
+"+V");this.addAction("pasteHere",function(a){function c(a){if(null!=a){for(var c=!0,b=0;b<a.length&&c;b++)c=c&&d.model.isEdge(a[b]);var f=d.view.translate,b=d.view.scale,e=f.x,g=f.y,f=null;if(1==a.length&&c){var m=d.getCellGeometry(a[0]);null!=m&&(f=m.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(a,c);null!=f&&(c=Math.round(d.snap(d.popupMenuHandler.triggerX/b-e)),b=Math.round(d.snap(d.popupMenuHandler.triggerY/b-g)),d.cellsMoved(a,c-f.x,b-f.y))}}function f(){d.getModel().beginUpdate();
try{c(mxClipboard.paste(d))}finally{d.getModel().endUpdate()}}if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c(b.pasteXml(a,!0))}finally{d.getModel().endUpdate()}}else f()}),a=!0)}catch(g){}a||f()}});this.addAction("copySize",function(){var a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,
a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedSize){d.getModel().beginUpdate();try{for(var a=d.getSelectionCells(),c=0;c<a.length;c++)if(d.getModel().isVertex(a[c])){var f=d.getCellGeometry(a[c]);null!=f&&(f=f.clone(),f.width=b.copiedSize.width,f.height=b.copiedSize.height,d.getModel().setGeometry(a[c],f))}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var a=
d.getSelectionCell()||d.getModel().getRoot();d.isEnabled()&&null!=a&&(a=a.cloneValue(),null==a||isNaN(a.nodeType)||(b.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a){function c(c,b){var e=f.getValue(c);b=c.cloneValue(b);b.removeAttribute("placeholders");null==e||isNaN(e.nodeType)||b.setAttribute("placeholders",e.getAttribute("placeholders"));null!=a&&(mxEvent.isMetaDown(a)||mxEvent.isControlDown(a))||b.setAttribute("label",d.convertValueToString(c));f.setValue(c,b)}
-var f=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){f.beginUpdate();try{var e=d.getSelectionCells();if(0==e.length)c(f.getRoot(),b.copiedValue);else for(var m=0;m<e.length;m++)c(e[m],b.copiedValue)}finally{f.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(b){a(null!=b&&mxEvent.isControlDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
+var f=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){f.beginUpdate();try{var e=d.getSelectionCells();if(0==e.length)c(f.getRoot(),b.copiedValue);else for(var k=0;k<e.length;k++)c(e[k],b.copiedValue)}finally{f.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(d){a(null!=d&&mxEvent.isControlDown(d))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{for(var a=d.getSelectionCells(),c=0;c<a.length;c++)d.cellLabelChanged(a[c],"")}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){try{d.setSelectionCells(d.duplicateCells()),d.scrollCellToVisible(d.getSelectionCell())}catch(q){b.handleError(q)}},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(a){d.turnShapes(d.getSelectionCells(),null!=a?mxEvent.isShiftDown(a):
!1)},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",function(){d.selectVertices(null,!0)},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){d.home()},null,null,"Shift+Home");this.addAction("exitGroup",function(){d.exitGroup()},
@@ -2921,13 +2922,13 @@ function(){if(d.isEnabled()){var a=mxUtils.sortCells(d.getSelectionCells(),!0);1
d.model.isVertex(a[b])&&d.setCellStyles("container","0",[a[b]]),c.push(a[b]))}finally{d.model.endUpdate()}d.setSelectionCells(c)}},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){if(d.isEnabled()){var a=d.getSelectionCells();if(null!=a){for(var c=[],b=0;b<a.length;b++)d.isTableRow(a[b])||d.isTableCell(a[b])||c.push(a[b]);d.removeCellsFromParent(c)}}});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",
function(){var a=d.getSelectionCell()||d.getModel().getRoot();b.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){if(d.isEnabled()&&!d.isSelectionEmpty()){var a=d.getSelectionCell(),c="";if(mxUtils.isNode(a.value)){var f=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&a.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(f=a.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==f&&(f=a.value.getAttribute("tooltip"));null!=f&&(c=f)}c=new TextareaDialog(b,
mxResources.get("editTooltip")+":",c,function(c){d.setTooltipForCell(a,c)});b.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=d.getLinkForCell(d.getSelectionCell());null!=a&&d.openLink(a)});this.addAction("editLink...",function(){if(d.isEnabled()&&!d.isSelectionEmpty()){var a=d.getSelectionCell(),c=d.getLinkForCell(a)||"";b.showLinkDialog(c,mxResources.get("apply"),function(c,b,e){c=mxUtils.trim(c);d.setLinkForCell(a,0<c.length?
-c:null);d.setAttributeForCell(a,"linkTarget",e)},!0,d.getLinkTargetForCell(a))}},null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&(d.clearSelection(),b.actions.get("image").funct())})).isEnabled=n;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,c,b){a=mxUtils.trim(a);
+c:null);d.setAttributeForCell(a,"linkTarget",e)},!0,d.getLinkTargetForCell(a))}},null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&(d.clearSelection(),b.actions.get("image").funct())})).isEnabled=l;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,c,b){a=mxUtils.trim(a);
if(0<a.length){var f=null,e=d.getLinkTitle(a);null!=c&&0<c.length&&(f=c[0].iconUrl,e=c[0].name||c[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));c=new mxCell(e,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=f?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+f:"spacing=10;"));c.vertex=!0;f=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry([c],!0));c.geometry.x=f.x;c.geometry.y=f.y;
-d.setAttributeForCell(c,"linkTarget",b);d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.getModel().beginUpdate();try{c=d.addCell(c),d.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{d.getModel().endUpdate()}d.setSelectionCell(c);d.scrollCellToVisible(d.getSelectionCell())}},!0)})).isEnabled=n;this.addAction("link...",mxUtils.bind(this,function(){if(d.isEnabled())if(d.cellEditor.isContentEditing()){var a=d.getSelectedElement(),c=d.getParentByName(a,"A",d.cellEditor.textarea),f="";
-if(null==c&&null!=a&&null!=a.getElementsByTagName)for(var e=a.getElementsByTagName("a"),m=0;m<e.length&&null==c;m++)e[m].textContent==a.textContent&&(c=e[m]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"",d.selectNode(c));var k=d.cellEditor.saveSelection();b.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(a){d.cellEditor.restoreSelection(k);null!=a&&d.insertLink(a)}))}else d.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=n;
-this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var b=a[c];if(d.getModel().getChildCount(b))d.updateGroupBounds([b],20);else{var e=d.view.getState(b),m=d.getCellGeometry(b);d.getModel().isVertex(b)&&null!=e&&null!=e.text&&null!=m&&d.isWrapping(b)?(m=m.clone(),m.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(b,m)):d.updateCellSize(b)}}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+
-"+Shift+Y");this.addAction("formattedText",function(){d.stopEditing();var a=d.getCommonStyle(d.getSelectionCells()),a="1"==mxUtils.getValue(a,"html","0")?null:"1";d.getModel().beginUpdate();try{for(var c=d.getSelectionCells(),f=0;f<c.length;f++)if(state=d.getView().getState(c[f]),null!=state){var e=mxUtils.getValue(state.style,"html","0");if("1"==e&&null==a){var m=d.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(m=m.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));
-var k=document.createElement("div");k.innerHTML=d.sanitizeHtml(m);m=mxUtils.extractTextWithWhitespace(k.childNodes);d.cellLabelChanged(state.cell,m);d.setCellStyles("html",a,[c[f]])}else"0"==e&&"1"==a&&(m=mxUtils.htmlEntities(d.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(m=m.replace(/\n/g,"<br/>")),d.cellLabelChanged(state.cell,d.sanitizeHtml(m)),d.setCellStyles("html",a,[c[f]]))}b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=
+d.setAttributeForCell(c,"linkTarget",b);d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.getModel().beginUpdate();try{c=d.addCell(c),d.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{d.getModel().endUpdate()}d.setSelectionCell(c);d.scrollCellToVisible(d.getSelectionCell())}},!0)})).isEnabled=l;this.addAction("link...",mxUtils.bind(this,function(){if(d.isEnabled())if(d.cellEditor.isContentEditing()){var a=d.getSelectedElement(),c=d.getParentByName(a,"A",d.cellEditor.textarea),f="";
+if(null==c&&null!=a&&null!=a.getElementsByTagName)for(var e=a.getElementsByTagName("a"),k=0;k<e.length&&null==c;k++)e[k].textContent==a.textContent&&(c=e[k]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"",d.selectNode(c));var p=d.cellEditor.saveSelection();b.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(a){d.cellEditor.restoreSelection(p);null!=a&&d.insertLink(a)}))}else d.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=l;
+this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var b=a[c];if(d.getModel().getChildCount(b))d.updateGroupBounds([b],20);else{var e=d.view.getState(b),k=d.getCellGeometry(b);d.getModel().isVertex(b)&&null!=e&&null!=e.text&&null!=k&&d.isWrapping(b)?(k=k.clone(),k.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(b,k)):d.updateCellSize(b)}}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+
+"+Shift+Y");this.addAction("formattedText",function(){d.stopEditing();var a=d.getCommonStyle(d.getSelectionCells()),a="1"==mxUtils.getValue(a,"html","0")?null:"1";d.getModel().beginUpdate();try{for(var c=d.getSelectionCells(),f=0;f<c.length;f++)if(state=d.getView().getState(c[f]),null!=state){var e=mxUtils.getValue(state.style,"html","0");if("1"==e&&null==a){var k=d.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(k=k.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));
+var p=document.createElement("div");p.innerHTML=d.sanitizeHtml(k);k=mxUtils.extractTextWithWhitespace(p.childNodes);d.cellLabelChanged(state.cell,k);d.setCellStyles("html",a,[c[f]])}else"0"==e&&"1"==a&&(k=mxUtils.htmlEntities(d.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(k=k.replace(/\n/g,"<br/>")),d.cellLabelChanged(state.cell,d.sanitizeHtml(k)),d.setCellStyles("html",a,[c[f]]))}b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=
a?a:"0"],"cells",c))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),c="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(c=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,c)});this.addAction("rotation",function(){var a="0",c=d.getView().getState(d.getSelectionCell());null!=c&&(a=c.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),function(a){null!=a&&0<
a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,"Home");this.addAction("zoomIn",function(a){d.isFastZoomEnabled()?d.lazyZoom(!0,!0,b.buttonZoomDelay):d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(a){d.isFastZoomEnabled()?d.lazyZoom(!1,
!0,b.buttonZoomDelay):d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){var a=d.isSelectionEmpty()?d.getGraphBounds():d.getBoundingBox(d.getSelectionCells()),c=d.view.translate,f=d.view.scale;a.x=a.x/f-c.x;a.y=a.y/f-c.y;a.width/=f;a.height/=f;null!=d.backgroundImage&&a.add(new mxRectangle(0,0,d.backgroundImage.width,d.backgroundImage.height));0==a.width||0==a.height?(d.zoomTo(1),b.resetScrollbars()):(c=Editor.fitWindowBorders,null!=c&&(a.x-=
@@ -2935,15 +2936,15 @@ c.x,a.y-=c.y,a.width+=c.width+c.x,a.height+=c.height+c.y),d.fitWindow(a))},null,
(d.container.scrollWidth-d.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,c=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/c,(d.container.clientHeight-10)/a.height/c))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y,(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=
Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+
"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),mxUtils.bind(this,
-function(a){a=parseInt(a);!isNaN(a)&&0<a&&(a=new ChangePageSetup(b,null,null,null,a/100),a.ignoreColor=!0,a.ignoreImage=!0,d.model.execute(a))}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var l=null,l=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.isGridEnabled()});
-l.setEnabled(!1);l=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});l.setEnabled(!1);l=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled());b.fireEvent(new mxEventObject("tooltipsEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});
-l=this.addAction("collapseExpand",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.foldingEnabled});l.isEnabled=n;l=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.scrollbars});l=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));
-l.setToggleAction(!0);l.setSelectedCallback(function(){return d.pageVisible});l=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionArrowsEnabled});l=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},
-null,null,"Alt+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});l=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});l.isEnabled=n;l=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});l.setToggleAction(!0);
-l.setSelectedCallback(function(){return b.editor.autosave});l.isEnabled=n;l.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var t=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){t||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){t=!1}),t=!0)}));l=mxUtils.bind(this,function(a,c,b,e){return this.addAction(a,function(){if(null!=
+function(a){a=parseInt(a);!isNaN(a)&&0<a&&(a=new ChangePageSetup(b,null,null,null,a/100),a.ignoreColor=!0,a.ignoreImage=!0,d.model.execute(a))}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var m=null,m=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");m.setToggleAction(!0);m.setSelectedCallback(function(){return d.isGridEnabled()});
+m.setEnabled(!1);m=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});m.setEnabled(!1);m=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled());b.fireEvent(new mxEventObject("tooltipsEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});
+m=this.addAction("collapseExpand",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.foldingEnabled});m.isEnabled=l;m=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.scrollbars});m=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));
+m.setToggleAction(!0);m.setSelectedCallback(function(){return d.pageVisible});m=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");m.setToggleAction(!0);m.setSelectedCallback(function(){return d.connectionArrowsEnabled});m=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},
+null,null,"Alt+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});m=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});m.isEnabled=l;m=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});m.setToggleAction(!0);
+m.setSelectedCallback(function(){return b.editor.autosave});m.isEnabled=l;m.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var u=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){u||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){u=!1}),u=!0)}));m=mxUtils.bind(this,function(a,c,b,e){return this.addAction(a,function(){if(null!=
b&&d.cellEditor.isContentEditing())b();else{d.stopEditing(!1);d.getModel().beginUpdate();try{var a=d.getSelectionCells();d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,c,a);(c&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&d.replaceElement(a)}):(c&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&d.replaceElement(a)}):
-(c&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&d.updateLabelElements(d.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&d.replaceElement(a)});for(var f=0;f<a.length;f++)0==d.model.getChildCount(a[f])&&d.autoSizeCell(a[f],!1)}finally{d.getModel().endUpdate()}}},null,null,e)});l("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");l("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},
-Editor.ctrlKey+"+I");l("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
+(c&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&d.updateLabelElements(d.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&d.replaceElement(a)});for(var f=0;f<a.length;f++)0==d.model.getChildCount(a[f])&&d.autoSizeCell(a[f],!1)}finally{d.getModel().endUpdate()}}},null,null,e)});m("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");m("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},
+Editor.ctrlKey+"+I");m("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,
null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,
mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",
@@ -2952,40 +2953,41 @@ function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUN
"keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",
function(){var a=d.view.getState(d.getSelectionCell()),c="1";null!=a&&null!=d.getFoldingImage(a)&&(c="0");d.setCellStyles("collapsible",c);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[c],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var a=d.getSelectionCells();if(null!=a&&0<a.length){var c=d.getModel(),c=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",c.getStyle(a[0])||"",function(c){null!=c&&d.setCellStyle(mxUtils.trim(c),
a)},null,null,400,220);this.editorUi.showDialog(c.container,420,300,!0,!0);c.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var c=
-e.graph.selectionCellsHandler.getHandler(a);if(c instanceof mxEdgeHandler){for(var b=d.view.translate,g=d.view.scale,m=b.x,b=b.y,a=d.getModel().getParent(a),k=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=k;)m+=k.x,b+=k.y,a=d.getModel().getParent(a),k=d.getCellGeometry(a);m=Math.round(d.snap(d.popupMenuHandler.triggerX/g-m));g=Math.round(d.snap(d.popupMenuHandler.triggerY/g-b));c.addPointAt(c.state,m,g)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=
-a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=d.getSelectionCells();if(null!=a){a=d.addAllEdges(a);d.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var b=a[c];if(d.getModel().isEdge(b)){var e=d.getCellGeometry(b);null!=e&&(e=e.clone(),e.points=null,e.x=0,e.y=0,e.offset=null,d.getModel().setGeometry(b,e))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");l=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&
-document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");l=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");l=this.addAction("indent",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("indent",!1,null)}),null,null,"Shift+Tab");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+
-" ("+mxResources.get("url")+"):",c=d.getView().getState(d.getSelectionCell()),f="";null!=c&&(f=c.style[mxConstants.STYLE_IMAGE]||f);var e=d.cellEditor.saveSelection();b.showImageDialog(a,f,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(e),d.insertImage(a,c,b);else{var f=d.getSelectionCells();if(null!=a&&(0<a.length||0<f.length)){var g=null;d.getModel().beginUpdate();try{if(0==f.length){var f=[d.insertVertex(d.getDefaultParent(),null,"",0,0,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],
-k=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(f,!0));f[0].geometry.x=k.x;f[0].geometry.y=k.y;g=f;d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,f);var m=d.getCurrentCellStyle(f[0]);"image"!=m[mxConstants.STYLE_SHAPE]&&"label"!=m[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==d.getSelectionCount()&&null!=c&&null!=b){var p=f[0],
-l=d.getModel().getGeometry(p);null!=l&&(l=l.clone(),l.width=c,l.height=b,d.getModel().setGeometry(p,l))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=n;l=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,196),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),
-this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));l=this.addAction("formatPanel",mxUtils.bind(this,
-function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));l=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),
-this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
-Actions.prototype.addAction=function(a,b,e,d,n){var l;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),l=mxResources.get(a)+"..."):l=mxResources.get(a);return this.put(a,new Action(l,b,e,d,n))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};function Action(a,b,e,d,n){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=d;this.shortcut=n;this.visible=!0}
-mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.shadowData=this.data=b||"";this.shadowPages=null;this.created=(new Date).getTime();this.stats={opened:0,merged:0,fileMerged:0,fileReloaded:0,conflicts:0,timeouts:0,saved:0,closed:0,destroyed:0,joined:0,checksumErrors:0,bytesSent:0,bytesReceived:0,msgSent:0,msgReceived:0,cacheHits:0,cacheMiss:0,cacheFail:0}};DrawioFile.SYNC=urlParams.sync||"auto";DrawioFile.LAST_WRITE_WINS=!0;mxUtils.extend(DrawioFile,mxEventSource);
+e.graph.selectionCellsHandler.getHandler(a);if(c instanceof mxEdgeHandler){for(var b=d.view.translate,g=d.view.scale,k=b.x,b=b.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=p;)k+=p.x,b+=p.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);k=Math.round(d.snap(d.popupMenuHandler.triggerX/g-k));g=Math.round(d.snap(d.popupMenuHandler.triggerY/g-b));c.addPointAt(c.state,k,g)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=
+a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(a){var c=d.getSelectionCells();if(null!=c){c=d.addAllEdges(c);d.getModel().beginUpdate();try{for(var b=0;b<c.length;b++){var e=c[b];if(d.getModel().isEdge(e)){var k=d.getCellGeometry(e);mxEvent.isShiftDown(a)?(d.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),d.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),d.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[e]),d.setCellStyles(mxConstants.STYLE_ENTRY_Y,
+null,[e])):null!=k&&(k=k.clone(),k.points=null,k.x=0,k.y=0,k.offset=null,d.getModel().setGeometry(e,k))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");m=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");m=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");
+m=this.addAction("indent",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("indent",!1,null)}),null,null,"Shift+Tab");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",c=d.getView().getState(d.getSelectionCell()),f="";null!=c&&(f=c.style[mxConstants.STYLE_IMAGE]||f);var e=d.cellEditor.saveSelection();b.showImageDialog(a,f,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(e),
+d.insertImage(a,c,b);else{var f=d.getSelectionCells();if(null!=a&&(0<a.length||0<f.length)){var g=null;d.getModel().beginUpdate();try{if(0==f.length){var f=[d.insertVertex(d.getDefaultParent(),null,"",0,0,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],k=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(f,!0));f[0].geometry.x=k.x;f[0].geometry.y=k.y;g=f;d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,
+0<a.length?a:null,f);var p=d.getCurrentCellStyle(f[0]);"image"!=p[mxConstants.STYLE_SHAPE]&&"label"!=p[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==d.getSelectionCount()&&null!=c&&null!=b){var t=f[0],m=d.getModel().getGeometry(t);null!=m&&(m=m.clone(),m.width=c,m.height=b,d.getModel().setGeometry(t,m))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},
+d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=l;m=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,196),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers")),
+this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));m=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));
+m=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),
+null,null,Editor.ctrlKey+"+Shift+O");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,d,l){var m;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),m=mxResources.get(a)+"..."):m=mxResources.get(a);return this.put(a,new Action(m,b,e,d,l))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};
+function Action(a,b,e,d,l){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=d;this.shortcut=l;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};
+Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.shadowData=this.data=b||"";this.shadowPages=null;this.created=(new Date).getTime();this.stats={opened:0,merged:0,fileMerged:0,fileReloaded:0,conflicts:0,timeouts:0,saved:0,closed:0,destroyed:0,joined:0,checksumErrors:0,bytesSent:0,bytesReceived:0,msgSent:0,msgReceived:0,cacheHits:0,cacheMiss:0,cacheFail:0}};DrawioFile.SYNC=urlParams.sync||"auto";DrawioFile.LAST_WRITE_WINS=!0;mxUtils.extend(DrawioFile,mxEventSource);
DrawioFile.prototype.allChangesSavedKey="allChangesSaved";DrawioFile.prototype.savingSpinnerKey="saving";DrawioFile.prototype.savingStatusKey="saving";DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.optimisticSyncDelay=300;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.lastSaved=null;DrawioFile.prototype.lastChanged=null;DrawioFile.prototype.opened=null;DrawioFile.prototype.modified=!1;
DrawioFile.prototype.shadowModified=!1;DrawioFile.prototype.data=null;DrawioFile.prototype.shadowData=null;DrawioFile.prototype.shadowPages=null;DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;DrawioFile.prototype.maxAutosaveRevisionDelay=3E5;DrawioFile.prototype.inConflictState=!1;DrawioFile.prototype.invalidChecksum=!1;DrawioFile.prototype.errorReportsEnabled=!1;DrawioFile.prototype.ageStart=null;
DrawioFile.prototype.getSize=function(){return null!=this.data?this.data.length:0};DrawioFile.prototype.synchronizeFile=function(a,b){this.savingFile?null!=b&&b({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(a,b):this.updateFile(a,b)};
-DrawioFile.prototype.updateFile=function(a,b,e,d){null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():this.getLatestVersion(mxUtils.bind(this,function(n){try{null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():null!=n?this.mergeFile(n,a,b,d):this.reloadFile(a,b))}catch(l){null!=b&&b(l)}}),b))};
-DrawioFile.prototype.mergeFile=function(a,b,e,d){var n=!0;try{this.stats.fileMerged++;var l=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),t=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=t&&0<t.length){this.shadowPages=t;this.backupPatch=this.isModified()?this.ui.diffPages(l,this.ui.pages):null;var q=[this.ui.diffPages(null!=d?d:l,this.shadowPages)];if(!this.ignorePatches(q)){var c=this.ui.patchPages(l,
-q[0]);d={};var f=this.ui.getHashValueForPages(c,d),l={},g=this.ui.getHashValueForPages(this.shadowPages,l);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",q,"checksum",g==f,f);if(null!=f&&f!=g){var m=this.compressReportData(this.getAnonymizedXmlForPages(t)),k=this.compressReportData(this.getAnonymizedXmlForPages(c)),p=this.ui.hashValue(a.getCurrentEtag()),u=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,q,"Shadow Details: "+JSON.stringify(d)+
-"\nChecksum: "+f+"\nCurrent: "+g+"\nCurrent Details: "+JSON.stringify(l)+"\nFrom: "+p+"\nTo: "+u+"\n\nFile Data:\n"+m+"\nPatched Shadow:\n"+k,null,"mergeFile");return}this.patch(q,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw n=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=b&&b()}catch(z){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
-null!=e&&e(z);try{if(n)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,z);else{var A=this.getCurrentUser(),F=null!=A?A.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),F,z)}}catch(y){}}};
-DrawioFile.prototype.getAnonymizedXmlForPages=function(a){var b=new mxCodec(mxUtils.createXmlDocument()),e=b.document.createElement("mxfile");if(null!=a)for(var d=0;d<a.length;d++){var n=b.encode(new mxGraphModel(a[d].root));"1"!=urlParams.dev&&(n=this.ui.anonymizeNode(n,!0));n.setAttribute("id",a[d].getId());a[d].viewState&&this.ui.editor.graph.saveViewState(a[d].viewState,n,!0);e.appendChild(n)}return mxUtils.getPrettyXml(e)};
+DrawioFile.prototype.updateFile=function(a,b,e,d){null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():this.getLatestVersion(mxUtils.bind(this,function(l){try{null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():null!=l?this.mergeFile(l,a,b,d):this.reloadFile(a,b))}catch(m){null!=b&&b(m)}}),b))};
+DrawioFile.prototype.mergeFile=function(a,b,e,d){var l=!0;try{this.stats.fileMerged++;var m=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),u=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=u&&0<u.length){this.shadowPages=u;this.backupPatch=this.isModified()?this.ui.diffPages(m,this.ui.pages):null;var q=[this.ui.diffPages(null!=d?d:m,this.shadowPages)];if(!this.ignorePatches(q)){var c=this.ui.patchPages(m,
+q[0]);d={};var f=this.ui.getHashValueForPages(c,d),m={},g=this.ui.getHashValueForPages(this.shadowPages,m);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",q,"checksum",g==f,f);if(null!=f&&f!=g){var k=this.compressReportData(this.getAnonymizedXmlForPages(u)),p=this.compressReportData(this.getAnonymizedXmlForPages(c)),t=this.ui.hashValue(a.getCurrentEtag()),v=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,q,"Shadow Details: "+JSON.stringify(d)+
+"\nChecksum: "+f+"\nCurrent: "+g+"\nCurrent Details: "+JSON.stringify(m)+"\nFrom: "+t+"\nTo: "+v+"\n\nFile Data:\n"+k+"\nPatched Shadow:\n"+p,null,"mergeFile");return}this.patch(q,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw l=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=b&&b()}catch(y){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
+null!=e&&e(y);try{if(l)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,y);else{var A=this.getCurrentUser(),F=null!=A?A.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),F,y)}}catch(z){}}};
+DrawioFile.prototype.getAnonymizedXmlForPages=function(a){var b=new mxCodec(mxUtils.createXmlDocument()),e=b.document.createElement("mxfile");if(null!=a)for(var d=0;d<a.length;d++){var l=b.encode(new mxGraphModel(a[d].root));"1"!=urlParams.dev&&(l=this.ui.anonymizeNode(l,!0));l.setAttribute("id",a[d].getId());a[d].viewState&&this.ui.editor.graph.saveViewState(a[d].viewState,l,!0);e.appendChild(l)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(a,b,e){b=null!=b?b:1E4;null!=e&&null!=a&&a.length>e?a=a.substring(0,e)+"[...]":null!=a&&a.length>b&&(a=Graph.compress(a)+"\n");return a};
-DrawioFile.prototype.checksumError=function(a,b,e,d,n){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=b)for(a=0;a<b.length;a++)this.ui.anonymizePatch(b[a]);var l=mxUtils.bind(this,function(a){var c=this.compressReportData(JSON.stringify(b,null,2));a=null!=a?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement)),
-25E3):"n/a";this.sendErrorReport("Checksum Error in "+n+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+c+(null!=a?"\n\nRemote:\n"+a:""),null,7E4)});null==d?l(null):this.getLatestVersion(mxUtils.bind(this,function(a){null!=a&&a.getCurrentEtag()==d?l(a):l(null)}),function(){})}else{var t=this.getCurrentUser(),q=null!=t?t.id:"unknown";EditorUi.logError("Checksum Error in "+n+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+q+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync"));
-try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:n,label:"user_"+q+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")})}catch(c){}}}catch(c){}};
-DrawioFile.prototype.sendErrorReport=function(a,b,e,d){try{var n=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),l=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),t=this.getCurrentUser(),q=null!=t?this.ui.hashValue(t.id):"unknown",c=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",f=this.getTitle(),g=f.lastIndexOf("."),t="xml";0<g&&(t=f.substring(g));var m=null!=e?e.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
-":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+t+")\nUser="+q+c+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=b?"\n\n"+b:
-"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+m+"\n\nShadow:\n"+n+"\n\nData:\n"+l,d)}catch(k){}};
-DrawioFile.prototype.reloadFile=function(a,b){try{this.ui.spinner.stop();var e=mxUtils.bind(this,function(){this.stats.fileReloaded++;var b=this.ui.editor.graph.getViewState(),e=this.ui.editor.graph.getSelectionCells(),l=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(l,b,e);null!=this.backupPatch&&this.patch([this.backupPatch]);var d=this.ui.getCurrentFile();null!=d&&(d.stats=this.stats);null!=a&&
+DrawioFile.prototype.checksumError=function(a,b,e,d,l){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=b)for(a=0;a<b.length;a++)this.ui.anonymizePatch(b[a]);var m=mxUtils.bind(this,function(a){var c=this.compressReportData(JSON.stringify(b,null,2));a=null!=a?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement)),
+25E3):"n/a";this.sendErrorReport("Checksum Error in "+l+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+c+(null!=a?"\n\nRemote:\n"+a:""),null,7E4)});null==d?m(null):this.getLatestVersion(mxUtils.bind(this,function(a){null!=a&&a.getCurrentEtag()==d?m(a):m(null)}),function(){})}else{var u=this.getCurrentUser(),q=null!=u?u.id:"unknown";EditorUi.logError("Checksum Error in "+l+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+q+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync"));
+try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:l,label:"user_"+q+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")})}catch(c){}}}catch(c){}};
+DrawioFile.prototype.sendErrorReport=function(a,b,e,d){try{var l=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),m=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),u=this.getCurrentUser(),q=null!=u?this.ui.hashValue(u.id):"unknown",c=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",f=this.getTitle(),g=f.lastIndexOf("."),u="xml";0<g&&(u=f.substring(g));var k=null!=e?e.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
+":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+u+")\nUser="+q+c+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=b?"\n\n"+b:
+"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+k+"\n\nShadow:\n"+l+"\n\nData:\n"+m,d)}catch(p){}};
+DrawioFile.prototype.reloadFile=function(a,b){try{this.ui.spinner.stop();var e=mxUtils.bind(this,function(){this.stats.fileReloaded++;var b=this.ui.editor.graph.getViewState(),e=this.ui.editor.graph.getSelectionCells(),m=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(m,b,e);null!=this.backupPatch&&this.patch([this.backupPatch]);var d=this.ui.getCurrentFile();null!=d&&(d.stats=this.stats);null!=a&&
a()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.handleFileSuccess("manual"==DrawioFile.SYNC)}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}catch(d){null!=b&&b(d)}};DrawioFile.prototype.copyFile=function(a,b){this.ui.editor.editAsNew(this.ui.getFileData(!0),this.ui.getCopyFilename(this))};
DrawioFile.prototype.ignorePatches=function(a){for(var b=!0,e=0;e<a.length&&b;e++)b=b&&0==Object.keys(a[e]).length;return b};
-DrawioFile.prototype.patch=function(a,b,e){var d=this.ui.editor.undoManager,n=d.history.slice(),l=d.indexOfNextAdd,t=this.ui.editor.graph;t.container.style.visibility="hidden";var q=this.changeListenerEnabled;this.changeListenerEnabled=e;var c=t.foldingEnabled,f=t.mathEnabled,g=t.cellRenderer.redraw;t.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());g.apply(this,arguments)};t.model.beginUpdate();try{for(var m=
-0;m<a.length;m++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[m],!0,b,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{t.container.style.visibility="";t.model.endUpdate();t.cellRenderer.redraw=g;this.changeListenerEnabled=q;e||(d.history=n,d.indexOfNextAdd=l,d.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)f!=
-t.mathEnabled?(this.ui.editor.updateGraphComponents(),t.refresh()):(c!=t.foldingEnabled?t.view.revalidate():t.view.validate(),t.sizeDidChange());this.ui.updateTabContainer()}};
-DrawioFile.prototype.save=function(a,b,e,d,n,l){try{if(this.isEditable())if(!n&&this.invalidChecksum)if(null!=e)e({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=b&&b();else if(null!=e)e({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(t){if(null!=e)e(t);else throw t;}};
+DrawioFile.prototype.patch=function(a,b,e){var d=this.ui.editor.undoManager,l=d.history.slice(),m=d.indexOfNextAdd,u=this.ui.editor.graph;u.container.style.visibility="hidden";var q=this.changeListenerEnabled;this.changeListenerEnabled=e;var c=u.foldingEnabled,f=u.mathEnabled,g=u.cellRenderer.redraw;u.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());g.apply(this,arguments)};u.model.beginUpdate();try{for(var k=
+0;k<a.length;k++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[k],!0,b,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{u.container.style.visibility="";u.model.endUpdate();u.cellRenderer.redraw=g;this.changeListenerEnabled=q;e||(d.history=l,d.indexOfNextAdd=m,d.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)f!=
+u.mathEnabled?(this.ui.editor.updateGraphComponents(),u.refresh()):(c!=u.foldingEnabled?u.view.revalidate():u.view.validate(),u.sizeDidChange());this.ui.updateTabContainer()}};
+DrawioFile.prototype.save=function(a,b,e,d,l,m){try{if(this.isEditable())if(!l&&this.invalidChecksum)if(null!=e)e({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=b&&b();else if(null!=e)e({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(u){if(null!=e)e(u);else throw u;}};
DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed()))};DrawioFile.prototype.isCompressedStorage=function(){return!0};DrawioFile.prototype.isCompressed=function(){var a=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=a?"false"!=a:this.isCompressedStorage()&&Editor.compressXml};DrawioFile.prototype.saveAs=function(a,b,e){};DrawioFile.prototype.saveFile=function(a,b,e,d){};
DrawioFile.prototype.getPublicUrl=function(a){a(null)};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.getShadowModified=function(){return this.shadowModified};DrawioFile.prototype.setShadowModified=function(a){this.shadowModified=a};DrawioFile.prototype.setModified=function(a){this.shadowModified=this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};
DrawioFile.prototype.isAutosave=function(){return!this.inConflictState&&this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,b,e){};DrawioFile.prototype.isMovable=function(){return!1};DrawioFile.prototype.isTrashed=function(){return!1};DrawioFile.prototype.move=function(a,b,e){};DrawioFile.prototype.share=function(){this.ui.alert(mxResources.get("sharingAvailable"),null,380)};DrawioFile.prototype.getHash=function(){return""};
@@ -3011,32 +3013,32 @@ DrawioFile.prototype.showRefreshDialog=function(a,b,e){null==e&&(e=mxResources.g
b)}),null,mxResources.get("synchronize"),mxUtils.bind(this,function(){this.reloadFile(a,b)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150))};
DrawioFile.prototype.showCopyDialog=function(a,b,e){this.invalidChecksum=this.inConflictState=!1;this.addUnsavedStatus();this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedOverwriteDialog"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.copyFile(a,b)}),null,mxResources.get("overwrite"),e,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150)};
DrawioFile.prototype.showConflictDialog=function(a,b){this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedSyncDialog"),mxResources.get("overwrite"),a,null,mxResources.get("synchronize"),b,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog();this.handleFileError(null,!1)}),340,150)};
-DrawioFile.prototype.redirectToNewApp=function(a,b){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var e=window.location.protocol+"//"+window.location.host+"/"+this.ui.getSearch("create title mode url drive splash state".split(" "))+"#"+this.getHash(),d=mxResources.get("redirectToNewApp");null!=b&&(d+=" ("+b+")");var n=mxUtils.bind(this,function(){var b=mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href==e?window.location.reload():
-window.location.href=e});null==a&&this.isModified()?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1}),b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});null!=a?this.isModified()?this.ui.confirm(d,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()}),n,mxResources.get("cancel"),mxResources.get("discardChanges")):this.ui.confirm(d,n,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()})):this.ui.alert(mxResources.get("redirectToNewApp"),
-n)}};DrawioFile.prototype.handleFileSuccess=function(a){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.isModified()?this.fileChanged():a?(this.isTrashed()?this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey))+" ("+mxUtils.htmlEntities(mxResources.get("fileMovedToTrash"))+")"):this.addAllSavedStatus(),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.editor.setStatus(""))};
+DrawioFile.prototype.redirectToNewApp=function(a,b){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var e=window.location.protocol+"//"+window.location.host+"/"+this.ui.getSearch("create title mode url drive splash state".split(" "))+"#"+this.getHash(),d=mxResources.get("redirectToNewApp");null!=b&&(d+=" ("+b+")");var l=mxUtils.bind(this,function(){var b=mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href==e?window.location.reload():
+window.location.href=e});null==a&&this.isModified()?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1}),b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});null!=a?this.isModified()?this.ui.confirm(d,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()}),l,mxResources.get("cancel"),mxResources.get("discardChanges")):this.ui.confirm(d,l,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()})):this.ui.alert(mxResources.get("redirectToNewApp"),
+l)}};DrawioFile.prototype.handleFileSuccess=function(a){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.isModified()?this.fileChanged():a?(this.isTrashed()?this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey))+" ("+mxUtils.htmlEntities(mxResources.get("fileMovedToTrash"))+")"):this.addAllSavedStatus(),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.editor.setStatus(""))};
DrawioFile.prototype.handleFileError=function(a,b){this.ui.spinner.stop();if(this.ui.getCurrentFile()==this)if(this.inConflictState)this.handleConflictError(a,b);else if(this.isModified()&&this.addUnsavedStatus(a),b)this.ui.handleError(a,null!=a?mxResources.get("errorSavingFile"):null);else if(!this.isModified()){var e=this.getErrorMessage(a);null!=e&&60<e.length&&(e=e.substring(0,60)+"...");this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("error"))+
(null!=e?" ("+mxUtils.htmlEntities(e)+")":"")+"</div>")}};
-DrawioFile.prototype.handleConflictError=function(a,b){var e=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),d=mxUtils.bind(this,function(a){this.handleFileError(a,!0)}),n=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&(this.ui.editor.setStatus(""),this.save(!0,e,d,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage))}),l=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,
-mxResources.get("updatingDocument"))&&this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&this.save(!0,e,d,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage)}),d)});"none"==DrawioFile.SYNC?this.showCopyDialog(e,d,n):this.invalidChecksum?this.showRefreshDialog(e,d,this.getErrorMessage(a)):b?this.showConflictDialog(n,l):this.addConflictStatus(mxUtils.bind(this,
+DrawioFile.prototype.handleConflictError=function(a,b){var e=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),d=mxUtils.bind(this,function(a){this.handleFileError(a,!0)}),l=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&(this.ui.editor.setStatus(""),this.save(!0,e,d,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage))}),m=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,
+mxResources.get("updatingDocument"))&&this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&this.save(!0,e,d,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage)}),d)});"none"==DrawioFile.SYNC?this.showCopyDialog(e,d,l):this.invalidChecksum?this.showRefreshDialog(e,d,this.getErrorMessage(a)):b?this.showConflictDialog(l,m):this.addConflictStatus(mxUtils.bind(this,
function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingDocument")));this.synchronizeFile(e,d)}),this.getErrorMessage(a))};DrawioFile.prototype.getErrorMessage=function(a){var b=null!=a?null!=a.error?a.error.message:a.message:null;null==b&&null!=a&&a.code==App.ERROR_TIMEOUT&&(b=mxResources.get("timeout"));return b};DrawioFile.prototype.isOverdue=function(){return null!=this.ageStart&&Date.now()-this.ageStart.getTime()>=this.ui.warnInterval};
DrawioFile.prototype.fileChanged=function(){this.lastChanged=new Date;this.setModified(!0);this.isAutosave()?(null!=this.savingStatusKey&&this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.savingStatusKey))+"..."),this.ui.scheduleSanityCheck(),null==this.ageStart&&(this.ageStart=new Date),this.sendFileChanges(),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){this.ui.stopSanityCheck();null==this.autosaveThread?(this.handleFileSuccess(!0),this.ageStart=
null):this.isModified()&&(this.ui.scheduleSanityCheck(),this.ageStart=this.lastChanged)}),mxUtils.bind(this,function(a){this.handleFileError(a)}))):(this.ageStart=null,this.isAutosaveOptional()&&this.ui.editor.autosave||this.inConflictState||this.addUnsavedStatus())};DrawioFile.prototype.isOptimisticSync=function(){return!1};
DrawioFile.prototype.createSecret=function(a){var b=Editor.guid(32);null==this.sync||this.isOptimisticSync()?a(b):this.sync.createToken(b,mxUtils.bind(this,function(e){a(b,e)}),mxUtils.bind(this,function(){a(b)}))};DrawioFile.prototype.fileSaving=function(){null!=this.sync&&this.isOptimisticSync()&&this.sync.fileSaving();"1"==urlParams.test&&EditorUi.debug("DrawioFile.fileSaving",[this])};
DrawioFile.prototype.sendFileChanges=function(){try{null!=this.p2pCollab&&null!=this.sync&&(this.updateFileData(),this.sync.sendFileChanges(this.ui.getPagesForNode(mxUtils.parseXml(this.getData()).documentElement),this.desc),"1"==urlParams.test&&EditorUi.debug("DrawioFile.sendFileChanges",[this]))}catch(a){console.log(a)}};
-DrawioFile.prototype.fileSaved=function(a,b,e,d,n){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++,this.invalidChecksum=this.inConflictState=!1,null==this.sync||this.isOptimisticSync()?(this.shadowData=a,this.shadowPages=null,null!=this.sync&&(this.sync.lastModified=this.getLastModifiedDate(),this.sync.resetUpdateStatusThread()),null!=e&&e()):this.sync.fileSaved(this.ui.getPagesForNode(mxUtils.parseXml(a).documentElement),b,e,d,n)}catch(q){this.invalidChecksum=this.inConflictState=
-!0;this.descriptorChanged();null!=d&&d(q);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,q);else{var l=this.getCurrentUser(),t=null!=l?l.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),t,q)}}catch(c){}}"1"==urlParams.test&&EditorUi.debug("DrawioFile.fileSaved",[this])};
-DrawioFile.prototype.autosave=function(a,b,e,d){null==this.lastAutosave&&(this.lastAutosave=Date.now());a=Date.now()-this.lastAutosave<b?a:0;this.clearAutosave();var n=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThread==n&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=e&&e(a)}),mxUtils.bind(this,
-function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),a);this.autosaveThread=n};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};
+DrawioFile.prototype.fileSaved=function(a,b,e,d,l){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++,this.invalidChecksum=this.inConflictState=!1,null==this.sync||this.isOptimisticSync()?(this.shadowData=a,this.shadowPages=null,null!=this.sync&&(this.sync.lastModified=this.getLastModifiedDate(),this.sync.resetUpdateStatusThread()),null!=e&&e()):this.sync.fileSaved(this.ui.getPagesForNode(mxUtils.parseXml(a).documentElement),b,e,d,l)}catch(q){this.invalidChecksum=this.inConflictState=
+!0;this.descriptorChanged();null!=d&&d(q);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,q);else{var m=this.getCurrentUser(),u=null!=m?m.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),u,q)}}catch(c){}}"1"==urlParams.test&&EditorUi.debug("DrawioFile.fileSaved",[this])};
+DrawioFile.prototype.autosave=function(a,b,e,d){null==this.lastAutosave&&(this.lastAutosave=Date.now());a=Date.now()-this.lastAutosave<b?a:0;this.clearAutosave();var l=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThread==l&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=e&&e(a)}),mxUtils.bind(this,
+function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),a);this.autosaveThread=l};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};
DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};
DrawioFile.prototype.close=function(a){this.updateFileData();this.stats.closed++;this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,b){if(null!=a&&null!=b){var e=a.lastIndexOf("."),d=0<e?a.substring(e):"",e=b.lastIndexOf(".");return d===(0<e?b.substring(e):"")}return a==b};
DrawioFile.prototype.removeListeners=function(){null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};DrawioFile.prototype.destroy=function(){this.clearAutosave();this.removeListeners();this.stats.destroyed++;null!=this.sync&&(this.sync.destroy(),this.sync=null)};DrawioFile.prototype.commentsSupported=function(){return!1};
-DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.prototype.commentsSaveNeeded=function(){return!1};DrawioFile.prototype.getComments=function(a,b){a([])};DrawioFile.prototype.addComment=function(a,b,e){b(Date.now())};DrawioFile.prototype.canReplyToReplies=function(){return!0};DrawioFile.prototype.canComment=function(){return!0};DrawioFile.prototype.newComment=function(a,b){return new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};LocalFile=function(a,b,e,d,n,l){DrawioFile.call(this,a,b);this.title=e;this.mode=d?null:App.MODE_DEVICE;this.fileHandle=n;this.desc=l};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return null!=this.fileHandle&&!this.invalidFileHandle&&DrawioFile.prototype.isAutosave.apply(this,arguments)};LocalFile.prototype.isAutosaveOptional=function(){return null!=this.fileHandle};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};
+DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.prototype.commentsSaveNeeded=function(){return!1};DrawioFile.prototype.getComments=function(a,b){a([])};DrawioFile.prototype.addComment=function(a,b,e){b(Date.now())};DrawioFile.prototype.canReplyToReplies=function(){return!0};DrawioFile.prototype.canComment=function(){return!0};DrawioFile.prototype.newComment=function(a,b){return new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};LocalFile=function(a,b,e,d,l,m){DrawioFile.call(this,a,b);this.title=e;this.mode=d?null:App.MODE_DEVICE;this.fileHandle=l;this.desc=m};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return null!=this.fileHandle&&!this.invalidFileHandle&&DrawioFile.prototype.isAutosave.apply(this,arguments)};LocalFile.prototype.isAutosaveOptional=function(){return null!=this.fileHandle};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};
LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,e){this.saveAs(this.title,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(a){this.desc=a};
LocalFile.prototype.getLatestVersion=function(a,b){null==this.fileHandle?a(null):this.ui.loadFileSystemEntry(this.fileHandle,a,b)};
-LocalFile.prototype.saveFile=function(a,b,e,d,n){a!=this.title&&(this.desc=this.fileHandle=null);this.title=a;n||this.updateFileData();var l=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var t=this.getData(),q=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),c=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var b=mxUtils.bind(this,
-function(a){this.savingFile=!1;null!=d&&d({error:a})});this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(d){this.invalidFileHandle=null;this.desc.lastModified==d.lastModified?a.write(l?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){var c=this.desc;this.savingFile=!1;this.desc=a;this.fileSaved(t,
-c,q,b)}),b)}),b)}),b):(this.inConflictState=!0,b())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;b(a)}))}),b)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,a,l?"image/png":"text/xml",l);else if(c.length<MAX_REQUEST_SIZE){var f=a.lastIndexOf("."),f=0<f?a.substring(f+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+f+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(a)+(l?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},
-mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));q()}});l?(b=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){c(a)}),d,this.ui.getCurrentFile()!=this?t:null,b.scale,b.border)):c(t)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
+LocalFile.prototype.saveFile=function(a,b,e,d,l){a!=this.title&&(this.desc=this.fileHandle=null);this.title=a;l||this.updateFileData();var m=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var u=this.getData(),q=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),c=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var b=mxUtils.bind(this,
+function(a){this.savingFile=!1;null!=d&&d({error:a})});this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(d){this.invalidFileHandle=null;this.desc.lastModified==d.lastModified?a.write(m?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){var c=this.desc;this.savingFile=!1;this.desc=a;this.fileSaved(u,
+c,q,b)}),b)}),b)}),b):(this.inConflictState=!0,b())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;b(a)}))}),b)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,a,m?"image/png":"text/xml",m);else if(c.length<MAX_REQUEST_SIZE){var f=a.lastIndexOf("."),f=0<f?a.substring(f+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+f+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(a)+(m?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},
+mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));q()}});m?(b=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){c(a)}),d,this.ui.getCurrentFile()!=this?u:null,b.scale,b.border)):c(u)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
{description:"diagramXmlDesc",extension:"xml",mimeType:"text/xml"}];Editor.prototype.libraryFileTypes=[{description:"Library (.drawiolib, .xml)",extensions:["drawiolib","xml"]}];Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.styles=[{},{commonStyle:{fontColor:"#5C5C5C",strokeColor:"#006658",fillColor:"#21C0A5"}},{commonStyle:{fontColor:"#095C86",strokeColor:"#AF45ED",fillColor:"#F694C1"},edgeStyle:{strokeColor:"#60E696"}},
{commonStyle:{fontColor:"#46495D",strokeColor:"#788AA3",fillColor:"#B2C9AB"}},{commonStyle:{fontColor:"#5AA9E6",strokeColor:"#FF6392",fillColor:"#FFE45E"}},{commonStyle:{fontColor:"#1D3557",strokeColor:"#457B9D",fillColor:"#A8DADC"},graph:{background:"#F1FAEE"}},{commonStyle:{fontColor:"#393C56",strokeColor:"#E07A5F",fillColor:"#F2CC8F"},graph:{background:"#F4F1DE",gridColor:"#D4D0C0"}},{commonStyle:{fontColor:"#143642",strokeColor:"#0F8B8D",fillColor:"#FAE5C7"},edgeStyle:{strokeColor:"#A8201A"},
graph:{background:"#DAD2D8",gridColor:"#ABA4A9"}},{commonStyle:{fontColor:"#FEFAE0",strokeColor:"#DDA15E",fillColor:"#BC6C25"},graph:{background:"#283618",gridColor:"#48632C"}},{commonStyle:{fontColor:"#E4FDE1",strokeColor:"#028090",fillColor:"#F45B69"},graph:{background:"#114B5F",gridColor:"#0B3240"}},{},{vertexStyle:{strokeColor:"#D0CEE2",fillColor:"#FAD9D5"},edgeStyle:{strokeColor:"#09555B"},commonStyle:{fontColor:"#1A1A1A"}},{vertexStyle:{strokeColor:"#BAC8D3",fillColor:"#09555B",fontColor:"#EEEEEE"},
@@ -3078,8 +3080,8 @@ type:"bool",defVal:!0,isVisible:function(a,c){return 1==a.vertices.length&&0==a.
dispName:"Edit Dialog",type:"bool",defVal:!1},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"movableLabel",dispName:"Movable Label",type:"bool",defVal:!1,isVisible:function(a,c){var b=0<a.vertices.length?c.editorUi.editor.graph.getCellGeometry(a.vertices[0]):null;return null!=b&&!b.relative}},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",
defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",defVal:!1},{name:"pointerEvents",dispName:"Pointer Events",type:"bool",defVal:!0,isVisible:function(a,c){var b=mxUtils.getValue(a.style,
mxConstants.STYLE_FILLCOLOR,null);return c.editorUi.editor.graph.isSwimlane(a.vertices[0])||null==b||b==mxConstants.NONE}},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(a,c){return 0<a.vertices.length&&c.editorUi.editor.graph.isContainer(a.vertices[0])}}].concat(Editor.commonProperties);Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nTessa Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n';
-Editor.createRoughCanvas=function(a){var c=rough.canvas({getContext:function(){return a}});c.draw=function(c){var b=c.sets||[];c=c.options||this.getDefaultOptions();for(var d=0;d<b.length;d++){var f=b[d];switch(f.type){case "path":null!=c.stroke&&this._drawToContext(a,f,c);break;case "fillPath":this._drawToContext(a,f,c);break;case "fillSketch":this.fillSketch(a,f,c)}}};c.fillSketch=function(c,b,d){var f=a.state.strokeColor,e=a.state.strokeWidth,g=a.state.strokeAlpha,k=a.state.dashed,m=d.fillWeight;
-0>m&&(m=d.strokeWidth/2);a.setStrokeAlpha(a.state.fillAlpha);a.setStrokeColor(d.fill||"");a.setStrokeWidth(m);a.setDashed(!1);this._drawToContext(c,b,d);a.setDashed(k);a.setStrokeWidth(e);a.setStrokeColor(f);a.setStrokeAlpha(g)};c._drawToContext=function(a,c,b){a.begin();for(var d=0;d<c.ops.length;d++){var f=c.ops[d],e=f.data;switch(f.op){case "move":a.moveTo(e[0],e[1]);break;case "bcurveTo":a.curveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case "lineTo":a.lineTo(e[0],e[1])}}a.end();"fillPath"===c.type&&
+Editor.createRoughCanvas=function(a){var c=rough.canvas({getContext:function(){return a}});c.draw=function(c){var b=c.sets||[];c=c.options||this.getDefaultOptions();for(var d=0;d<b.length;d++){var f=b[d];switch(f.type){case "path":null!=c.stroke&&this._drawToContext(a,f,c);break;case "fillPath":this._drawToContext(a,f,c);break;case "fillSketch":this.fillSketch(a,f,c)}}};c.fillSketch=function(c,b,d){var f=a.state.strokeColor,e=a.state.strokeWidth,g=a.state.strokeAlpha,n=a.state.dashed,k=d.fillWeight;
+0>k&&(k=d.strokeWidth/2);a.setStrokeAlpha(a.state.fillAlpha);a.setStrokeColor(d.fill||"");a.setStrokeWidth(k);a.setDashed(!1);this._drawToContext(c,b,d);a.setDashed(n);a.setStrokeWidth(e);a.setStrokeColor(f);a.setStrokeAlpha(g)};c._drawToContext=function(a,c,b){a.begin();for(var d=0;d<c.ops.length;d++){var f=c.ops[d],e=f.data;switch(f.op){case "move":a.moveTo(e[0],e[1]);break;case "bcurveTo":a.curveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case "lineTo":a.lineTo(e[0],e[1])}}a.end();"fillPath"===c.type&&
b.filled?a.fill():a.stroke()};return c};(function(){function a(c,b,d){this.canvas=c;this.rc=b;this.shape=d;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,a.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,a.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,a.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=
mxUtils.bind(this,a.prototype.roundrect);this.originalEllipse=this.canvas.ellipse;this.canvas.ellipse=mxUtils.bind(this,a.prototype.ellipse);this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,a.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,a.prototype.moveTo);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,a.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,
a.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,a.prototype.arcTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,a.prototype.close);this.originalFill=this.canvas.fill;this.canvas.fill=mxUtils.bind(this,a.prototype.fill);this.originalStroke=this.canvas.stroke;this.canvas.stroke=mxUtils.bind(this,a.prototype.stroke);this.originalFillAndStroke=this.canvas.fillAndStroke;this.canvas.fillAndStroke=mxUtils.bind(this,a.prototype.fillAndStroke);
@@ -3089,9 +3091,9 @@ f=null;(b.filled=c)?(b.fill="none"===this.canvas.state.fillColor?"":this.canvas.
e);e=mxUtils.getValue(this.shape.style,"fillWeight",-1);b.fillWeight="auto"==e?-1:e;e=mxUtils.getValue(this.shape.style,"fillStyle","auto");"auto"==e&&(e=null!=this.shape.state?this.shape.state.view.graph.defaultPageBackgroundColor:"#ffffff",e=null!=b.fill&&(null!=f||null!=e&&b.fill.toLowerCase()==e.toLowerCase())?"solid":d.fillStyle);b.fillStyle=e;return b};a.prototype.begin=function(){this.passThrough?this.originalBegin.apply(this.canvas,arguments):this.path=[]};a.prototype.end=function(){this.passThrough&&
this.originalEnd.apply(this.canvas,arguments)};a.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var a=2;a<arguments.length;a+=2)this.lastX=arguments[a-1],this.lastY=arguments[a],this.path.push(this.canvas.format(this.lastX)),this.path.push(this.canvas.format(this.lastY))};a.prototype.lineTo=function(a,c){this.passThrough?this.originalLineTo.apply(this.canvas,arguments):(this.addOp(this.lineOp,a,c),this.lastX=a,this.lastY=c)};a.prototype.moveTo=
function(a,c){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,a,c),this.lastX=a,this.lastY=c,this.firstX=a,this.firstY=c)};a.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};a.prototype.quadTo=function(a,c,b,d){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,a,c,b,d),this.lastX=b,this.lastY=d)};a.prototype.curveTo=function(a,c,b,d,f,e){this.passThrough?
-this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,a,c,b,d,f,e),this.lastX=f,this.lastY=e)};a.prototype.arcTo=function(a,c,b,d,f,e,g){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var k=mxUtils.arcToCurves(this.lastX,this.lastY,a,c,b,d,f,e,g);if(null!=k)for(var m=0;m<k.length;m+=6)this.curveTo(k[m],k[m+1],k[m+2],k[m+3],k[m+4],k[m+5]);this.lastX=e;this.lastY=g}};a.prototype.rect=function(a,c,b,d){this.passThrough?this.originalRect.apply(this.canvas,
+this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,a,c,b,d,f,e),this.lastX=f,this.lastY=e)};a.prototype.arcTo=function(a,c,b,d,f,e,g){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var k=mxUtils.arcToCurves(this.lastX,this.lastY,a,c,b,d,f,e,g);if(null!=k)for(var n=0;n<k.length;n+=6)this.curveTo(k[n],k[n+1],k[n+2],k[n+3],k[n+4],k[n+5]);this.lastX=e;this.lastY=g}};a.prototype.rect=function(a,c,b,d){this.passThrough?this.originalRect.apply(this.canvas,
arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(a,c,b,d,this.getStyle(!0,!0)))};a.prototype.ellipse=function(a,c,b,d){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(a+b/2,c+d/2,b,d,this.getStyle(!0,!0)))};a.prototype.roundrect=function(a,c,b,d,f,e){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):(this.begin(),this.moveTo(a+f,c),this.lineTo(a+b-f,c),this.quadTo(a+b,c,a+b,c+e),this.lineTo(a+
-b,c+d-e),this.quadTo(a+b,c+d,a+b-f,c+d),this.lineTo(a+f,c+d),this.quadTo(a,c+d,a,c+d-e),this.lineTo(a,c+e),this.quadTo(a,c,a+f,c))};a.prototype.drawPath=function(a){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),a)}catch(Z){}this.passThrough=!1}else if(null!=this.nextShape){for(var c in a)this.nextShape.options[c]=a[c];null==a.stroke&&delete this.nextShape.options.stroke;a.filled||delete this.nextShape.options.fill;this.passThrough=!0;this.rc.draw(this.nextShape);
+b,c+d-e),this.quadTo(a+b,c+d,a+b-f,c+d),this.lineTo(a+f,c+d),this.quadTo(a,c+d,a,c+d-e),this.lineTo(a,c+e),this.quadTo(a,c,a+f,c))};a.prototype.drawPath=function(a){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),a)}catch(Y){}this.passThrough=!1}else if(null!=this.nextShape){for(var c in a)this.nextShape.options[c]=a[c];null==a.stroke&&delete this.nextShape.options.stroke;a.filled||delete this.nextShape.options.fill;this.passThrough=!0;this.rc.draw(this.nextShape);
this.passThrough=!1}};a.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};a.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};a.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!0))};a.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;
this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;
this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(c){return new a(c,Editor.createRoughCanvas(c),this)};var c=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0")?c.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(a):this.createRoughCanvas(a)};var b=mxShape.prototype.paint;
@@ -3102,58 +3104,58 @@ f=[];if(null!=d&&0<d.length)for(var e=0;e<d.length;e++)if("mxgraph"==d[e].getAtt
d.charAt(0)&&"%"!=d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d)),null!=d&&0<d.length)a=mxUtils.parseXml(d).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||c||(f=null,"diagram"==a.nodeName?f=a:"mxfile"==a.nodeName&&(d=a.getElementsByTagName("diagram"),0<d.length&&(f=d[Math.max(0,Math.min(d.length-1,urlParams.page||0))])),null!=f&&(a=Editor.parseDiagramNode(f,b)));null==a||"mxGraphModel"==a.nodeName||
c&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a,c){var b=mxUtils.trim(mxUtils.getTextContent(a)),d=null;0<b.length?(b=Graph.decompress(b,null,c),null!=b&&0<b.length&&(d=mxUtils.parseXml(b).documentElement)):(b=mxUtils.getChildNodes(a),0<b.length&&(d=mxUtils.createXmlDocument(),d.appendChild(d.importNode(b[0],!0)),d=d.documentElement));return d};Editor.getDiagramNodeXml=function(a){var c=mxUtils.getTextContent(a),b=null;0<c.length?b=Graph.decompress(c):null!=a.firstChild&&
(b=mxUtils.getXml(a.firstChild));return b};Editor.extractGraphModelFromPdf=function(a){a=a.substring(a.indexOf(",")+1);a=window.atob&&!mxClient.IS_SF?atob(a):Base64.decode(a,!0);if("%PDF-1.7"==a.substring(0,8)){var c=a.indexOf("EmbeddedFile");if(-1<c){var b=a.indexOf("stream",c)+9;if(0<a.substring(c,b).indexOf("application#2Fvnd.jgraph.mxfile"))return c=a.indexOf("endstream",b-1),pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(b,c)),{to:"string"})}return null}for(var b=null,c="",d=0,f=0,e=[],
-g=null;f<a.length;){var k=a.charCodeAt(f),f=f+1;10!=k&&(c+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==d){var m=a.indexOf("%3C%2Fmxfile%3E)",f)+15,f=f-9;if(m>f){b=a.substring(f,m);break}}10==k&&("endobj"==c?g=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(g=[],e[c.split(" ")[0]]=g):null!=g&&g.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(e));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return b};
+g=null;f<a.length;){var k=a.charCodeAt(f),f=f+1;10!=k&&(c+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==d){var n=a.indexOf("%3C%2Fmxfile%3E)",f)+15,f=f-9;if(n>f){b=a.substring(f,n);break}}10==k&&("endobj"==c?g=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(g=[],e[c.split(" ")[0]]=g):null!=g&&g.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(e));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return b};
Editor.extractGraphModelFromXref=function(a){var c=a.trailer,b=null;null!=c&&(c=/.* \/Info (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(c=a[c[1]],null!=c&&(c=/.* \/Subject (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(a=a[c[1]],null!=a&&(a=a.join("\n"),b=a.substring(1,a.length-1))))));return b};Editor.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,
-function(a,b,f){a=d.substring(a+8,a+8+f);"zTXt"==b?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(f+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(D){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));
+function(a,b,f){a=d.substring(a+8,a+8+f);"zTXt"==b?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(f+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(E){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));
return c};Editor.extractParserError=function(a,c){var b=null,d=null!=a?a.getElementsByTagName("parsererror"):null;null!=d&&0<d.length&&(b=c||mxResources.get("invalidChars"),d=d[0].getElementsByTagName("div"),0<d.length&&(b=mxUtils.getTextContent(d[0])));return null!=b?mxUtils.trim(b):b};Editor.addRetryToError=function(a,c){if(null!=a){var b=null!=a.error?a.error:a;null==b.retry&&(b.retry=c)}};Editor.configure=function(a,c){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=
a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;
null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.styles&&(Editor.styles=a.styles);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=a.compressXml&&(Editor.compressXml=a.compressXml);null!=a.simpleLabels&&(Editor.simpleLabels=a.simpleLabels);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&
(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&
-(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.gridSteps&&(b=parseInt(a.gridSteps),!isNaN(b)&&0<b&&(mxGraphView.prototype.gridSteps=b));a.emptyDiagramXml&&
-(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(b=parseInt(a.autosaveDelay),!isNaN(b)&&0<b?DrawioFile.prototype.autosaveDelay=b:EditorUi.debug("Invalid autosaveDelay: "+
-a.autosaveDelay));if(null!=a.plugins&&!c)for(App.initPluginCallback(),b=0;b<a.plugins.length;b++)mxscript(a.plugins[b]);null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var c=document.getElementsByTagName("script")[0];if(null!=c&&null!=c.parentNode){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a));
-c.parentNode.insertBefore(b,c);a=a.split("url(");for(b=1;b<a.length;b++){var d=a[b].indexOf(")"),d=Editor.trimCssUrl(a[b].substring(0,d)),f=document.createElement("link");f.setAttribute("rel","preload");f.setAttribute("href",d);f.setAttribute("as","font");f.setAttribute("crossorigin","");c.parentNode.insertBefore(f,c)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";
-Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var c=[],b=0;b<a;b++)c.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return c.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=
-!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=
-this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");
-null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1);if(b=c.getAttribute("extFonts"))try{for(b=b.split("|").map(function(a){a=
-a.split("^");return{name:a[0],url:a[1]}}),d=0;d<b.length;d++)this.graph.addExtFont(b[d].name,b[d].url)}catch(D){console.log("ExtFonts format error: "+D.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);
-null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var d=this.graph.extFonts.map(function(a){return a.name+"^"+a.url});c.setAttribute("extFonts",d.join("|"))}return c};
-Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(ga){}return!1};Editor.prototype.extractGraphModel=function(a,c,b){return Editor.extractGraphModel.apply(this,
-arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=
-function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";Editor.initMath=function(a,c){if("undefined"===typeof window.MathJax){a=(null!=
-a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var b=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";c=null!=c?c:{"HTML-CSS":{availableFonts:[b],imageFont:null},SVG:{font:b,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};
-window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var d=Editor.prototype.init;Editor.prototype.init=
-function(){d.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};b=document.getElementsByTagName("script");if(null!=b&&0<b.length){var f=document.createElement("script");f.setAttribute("type","text/javascript");f.setAttribute("src",a);b[0].parentNode.appendChild(f)}try{if(mxClient.IS_GC||mxClient.IS_SF){var e=document.createElement("style");
-e.type="text/css";e.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(e)}}catch(Z){}}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,
-function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};
-Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var c=a.convert,b=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=Editor.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||b.crossOriginImages&&b.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,19)||mxClient.IS_CHROMEAPP||(d=c.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};
-return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,c){try{var b=!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);b&&c(Editor.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)});else{var f=new Image;
-this.crossOriginImages&&(f.crossOrigin="anonymous");f.onload=function(){window.clearTimeout(d);if(b)try{var a=document.createElement("canvas"),e=a.getContext("2d");a.height=f.height;a.width=f.width;e.drawImage(f,0,0);c(a.toDataURL())}catch(Y){c(Editor.svgBrokenImage.src)}};f.onerror=function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)};f.src=a}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(a,c,b,d){null==d&&(d=this.createImageUrlConverter());var f=0,
-e=b||{};b=mxUtils.bind(this,function(b,g){for(var k=a.getElementsByTagName(b),m=0;m<k.length;m++)mxUtils.bind(this,function(b){try{if(null!=b){var k=d.convert(b.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var m=e[k];null==m?(f++,this.convertImageToDataUri(k,function(d){null!=d&&(e[k]=d,b.setAttribute(g,d));f--;0==f&&c(a)})):b.setAttribute(g,m)}else null!=k&&b.setAttribute(g,k)}}catch(ha){}})(k[m])});b("image","xlink:href");b("img","src");0==f&&c(a)};Editor.base64Encode=function(a){for(var c=
-"",b=0,d=a.length,f,e,g;b<d;){f=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);c+="==";break}e=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
-15)<<2);c+="=";break}g=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return c};Editor.prototype.loadUrl=function(a,c,b,d,f,e,g,k){try{var m=!g&&(d||/(\.png)($|\?)/i.test(a)||
-/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));f=null!=f?f:!0;var p=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=c){var d=a.getText();if(m){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}e=
-null!=e?e:"data:image/png;base64,";d=e+Editor.base64Encode(d)}c(d)}}else null!=b&&(0==a.getStatus()?b({message:mxResources.get("accessDenied")},a):b({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=b&&b({message:mxResources.get("error")+" "+a.getStatus()})},m,this.timeout,function(){f&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:p})},k)});p()}catch(aa){null!=b&&b(aa)}};Editor.prototype.absoluteCssFonts=function(a){var c=null;if(null!=a){var b=a.split("url(");if(0<b.length){c=
-[b[0]];a=window.location.pathname;var d=null!=a?a.lastIndexOf("/"):-1;0<=d&&(a=a.substring(0,d+1));var d=document.getElementsByTagName("base"),f=null;null!=d&&0<d.length&&(f=d[0].getAttribute("href"));for(var e=1;e<b.length;e++)if(d=b[e].indexOf(")"),0<d){var g=Editor.trimCssUrl(b[e].substring(0,d));this.graph.isRelativeUrl(g)&&(g=null!=f?f+g:window.location.protocol+"//"+window.location.hostname+("/"==g.charAt(0)?"":a)+g);c.push('url("'+g+'"'+b[e].substring(d))}else c.push(b[e])}else c=[a]}return null!=
-c?c.join(""):null};Editor.prototype.embedCssFonts=function(a,c){var b=a.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});var f=mxUtils.bind(this,function(){if(0==d){for(var a=[b[0]],f=1;f<b.length;f++){var e=b[f].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(b[f].substring(0,e))]);a.push('"'+b[f].substring(e))}c(a.join(""))}});if(0<b.length){for(var e=1;e<b.length;e++){var g=b[e].indexOf(")"),k=null,m=b[e].indexOf("format(",g);0<m&&(k=Editor.trimCssUrl(b[e].substring(m+
-7,b[e].indexOf(")",m))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;d++;var c="application/x-font-ttf";if("svg"==k||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";
-else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){this.cachedFonts[a]=c;d--;f()}),mxUtils.bind(this,function(a){d--;f()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(Editor.trimCssUrl(b[e].substring(0,g)),k)}f()}else c(a)};Editor.prototype.loadFonts=function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,
-mxUtils.bind(this,function(c){this.resolvedFontCss=c;a()})):a()};Editor.prototype.embedExtFonts=function(a){var c=this.graph.getCustomFonts();if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(b,a)}),e=0;e<c.length;e++)mxUtils.bind(this,function(a,c){Graph.isCssFontUrl(c)?null==this.cachedGoogleFonts[c]?(d++,this.loadUrl(c,mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;d--;f()}),mxUtils.bind(this,
-function(a){d--;b+="@import url("+c+");";f()}))):b+=this.cachedGoogleFonts[c]:b+='@font-face {font-family: "'+a+'";src: url("'+c+'")}'})(c[e].name,c[e].url);f()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var c=document.getElementsByTagName("style"),b=0;b<c.length;b++)0<mxUtils.getTextContent(c[b]).indexOf("MathJax")&&a[0].appendChild(c[b].cloneNode(!0))};Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);
-if(null!=c){var b=a.getElementsByTagName("defs"),d=a.ownerDocument;0==b.length?(b=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);b.appendChild(d)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||
-this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var d=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(d/a,d/c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,m,p,u,l,n,z,y,A,q,t){try{e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:this.graph;n=null!=n?n:0;var x=m?null:l.background;x==mxConstants.NONE&&(x=null);null==x&&(x=d);null==x&&0==m&&(x=A?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(l.getSvg(null,null,n,z,null,g,null,null,null,p,
-null,A,q,t),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){z.drawImage(d,0,0);a(m,b)},0):(z.drawImage(d,0,0),a(m,b))},m=document.createElement("canvas"),p=parseInt(b.getAttribute("width")),u=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*u),c/p)):c/p);k=this.getMaxCanvasScale(p,u,k);p=Math.ceil(k*p);u=Math.ceil(k*u);m.setAttribute("width",p);m.setAttribute("height",
-u);var z=m.getContext("2d");null!=x&&(z.beginPath(),z.rect(0,0,p,u),z.fillStyle=x,z.fill());1!=k&&z.scale(k,k);if(y){var A=l.view,q=A.scale;A.scale=1;var B=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));A.scale=q;var B="data:image/svg+xml;base64,"+B,t=l.gridSize*A.gridSteps*k,C=l.getGraphBounds(),D=A.translate.x*q,H=A.translate.y*q,F=D+(C.x-D)/q-n,E=H+(C.y-H)/q-n,I=new Image;I.onload=function(){try{for(var a=-Math.round(t-mxUtils.mod((D-F)*k,t)),c=-Math.round(t-mxUtils.mod((H-E)*
-k,t));a<p;a+=t)for(var b=c;b<u;b+=t)z.drawImage(I,a/k,b/k);g()}catch(ua){null!=f&&f(ua)}};I.onerror=function(a){null!=f&&f(a)};I.src=B}else g()}catch(xa){null!=f&&f(xa)}});d.onerror=function(a){null!=f&&f(a)};p&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(ra){null!=f&&f(ra)}});this.embedExtFonts(mxUtils.bind(this,
-function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(O){null!=f&&f(O)}}))}catch(ra){null!=f&&f(ra)}}),b,u)}catch(T){null!=f&&f(T)}};Editor.crcTable=[];for(var n=0;256>n;n++)for(var l=n,t=0;8>t;t++)l=1==(l&1)?3988292384^l>>>1:l>>>1,Editor.crcTable[n]=l;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>
-0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=m;m+=c;return a.substring(b,m)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var m=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,4),"IHDR"!=e(a,4))null!=f&&
-f();else{e(a,17);f=a.substring(0,m);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,m-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(m-8,a.length);break}f+=a.substring(m-8,m-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0))}};
-if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var q=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){q.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=
-function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var f=Format.prototype.init;Format.prototype.init=function(){f.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?g.apply(this,arguments):
-this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=m.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),
-function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var k=DiagramFormatPanel.prototype.addOptions;
-DiagramFormatPanel.prototype.addOptions=function(a){a=k.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});
+(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.zoomFactor&&(b=parseFloat(a.zoomFactor),!isNaN(b)&&1<b&&(Graph.prototype.zoomFactor=b));null!=a.gridSteps&&
+(b=parseInt(a.gridSteps),!isNaN(b)&&0<b&&(mxGraphView.prototype.gridSteps=b));a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(b=parseInt(a.autosaveDelay),
+!isNaN(b)&&0<b?DrawioFile.prototype.autosaveDelay=b:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!c)for(App.initPluginCallback(),b=0;b<a.plugins.length;b++)mxscript(a.plugins[b]);null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var c=document.getElementsByTagName("script")[0];if(null!=c&&null!=
+c.parentNode){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a));c.parentNode.insertBefore(b,c);a=a.split("url(");for(b=1;b<a.length;b++){var d=a[b].indexOf(")"),d=Editor.trimCssUrl(a[b].substring(0,d)),f=document.createElement("link");f.setAttribute("rel","preload");f.setAttribute("href",d);f.setAttribute("as","font");f.setAttribute("crossorigin","");c.parentNode.insertBefore(f,c)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+",
+"g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var c=[],b=0;b<a;b++)c.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return c.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=
+null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||
+"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=
+b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==
+c.getAttribute("shadow"),!1);if(b=c.getAttribute("extFonts"))try{for(b=b.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),d=0;d<b.length;d++)this.graph.addExtFont(b[d].name,b[d].url)}catch(E){console.log("ExtFonts format error: "+E.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;
+Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var d=this.graph.extFonts.map(function(a){return a.name+
+"^"+a.url});c.setAttribute("extFonts",d.join("|"))}return c};Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(ka){}return!1};Editor.prototype.extractGraphModel=
+function(a,c,b){return Editor.extractGraphModel.apply(this,arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};
+var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";
+Editor.initMath=function(a,c){if("undefined"===typeof window.MathJax){a=(null!=a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var b=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";c=null!=c?c:{"HTML-CSS":{availableFonts:[b],imageFont:null},
+SVG:{font:b,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};
+Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var d=Editor.prototype.init;Editor.prototype.init=function(){d.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};b=document.getElementsByTagName("script");if(null!=b&&0<b.length){var f=document.createElement("script");f.setAttribute("type","text/javascript");f.setAttribute("src",
+a);b[0].parentNode.appendChild(f)}try{if(mxClient.IS_GC||mxClient.IS_SF){var e=document.createElement("style");e.type="text/css";e.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(e)}}catch(Y){}}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
+var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));
+return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var c=a.convert,b=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=Editor.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||b.crossOriginImages&&b.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,
+19)||mxClient.IS_CHROMEAPP||(d=c.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,c){try{var b=!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);b&&c(Editor.createSvgDataUri(a.getText()))}),
+function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)});else{var f=new Image;this.crossOriginImages&&(f.crossOrigin="anonymous");f.onload=function(){window.clearTimeout(d);if(b)try{var a=document.createElement("canvas"),e=a.getContext("2d");a.height=f.height;a.width=f.width;e.drawImage(f,0,0);c(a.toDataURL())}catch(X){c(Editor.svgBrokenImage.src)}};f.onerror=function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)};f.src=a}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=
+function(a,c,b,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=b||{};b=mxUtils.bind(this,function(b,g){for(var k=a.getElementsByTagName(b),n=0;n<k.length;n++)mxUtils.bind(this,function(b){try{if(null!=b){var k=d.convert(b.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var n=e[k];null==n?(f++,this.convertImageToDataUri(k,function(d){null!=d&&(e[k]=d,b.setAttribute(g,d));f--;0==f&&c(a)})):b.setAttribute(g,n)}else null!=k&&b.setAttribute(g,k)}}catch(fa){}})(k[n])});b("image","xlink:href");
+b("img","src");0==f&&c(a)};Editor.base64Encode=function(a){for(var c="",b=0,d=a.length,f,e,g;b<d;){f=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);c+="==";break}e=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
+3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2);c+="=";break}g=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return c};
+Editor.prototype.loadUrl=function(a,c,b,d,f,e,g,k){try{var n=!g&&(d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));f=null!=f?f:!0;var p=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=c){var d=a.getText();if(n){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();
+for(var d=Array(a.length),f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}e=null!=e?e:"data:image/png;base64,";d=e+Editor.base64Encode(d)}c(d)}}else null!=b&&(0==a.getStatus()?b({message:mxResources.get("accessDenied")},a):b({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=b&&b({message:mxResources.get("error")+" "+a.getStatus()})},n,this.timeout,function(){f&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:p})},k)});p()}catch(Z){null!=b&&b(Z)}};Editor.prototype.absoluteCssFonts=
+function(a){var c=null;if(null!=a){var b=a.split("url(");if(0<b.length){c=[b[0]];a=window.location.pathname;var d=null!=a?a.lastIndexOf("/"):-1;0<=d&&(a=a.substring(0,d+1));var d=document.getElementsByTagName("base"),f=null;null!=d&&0<d.length&&(f=d[0].getAttribute("href"));for(var e=1;e<b.length;e++)if(d=b[e].indexOf(")"),0<d){var g=Editor.trimCssUrl(b[e].substring(0,d));this.graph.isRelativeUrl(g)&&(g=null!=f?f+g:window.location.protocol+"//"+window.location.hostname+("/"==g.charAt(0)?"":a)+g);
+c.push('url("'+g+'"'+b[e].substring(d))}else c.push(b[e])}else c=[a]}return null!=c?c.join(""):null};Editor.prototype.embedCssFonts=function(a,c){var b=a.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});var f=mxUtils.bind(this,function(){if(0==d){for(var a=[b[0]],f=1;f<b.length;f++){var e=b[f].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(b[f].substring(0,e))]);a.push('"'+b[f].substring(e))}c(a.join(""))}});if(0<b.length){for(var e=1;e<b.length;e++){var g=b[e].indexOf(")"),
+k=null,n=b[e].indexOf("format(",g);0<n&&(k=Editor.trimCssUrl(b[e].substring(n+7,b[e].indexOf(")",n))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;d++;var c="application/x-font-ttf";if("svg"==k||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";
+else if("eot"==k||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){this.cachedFonts[a]=c;d--;f()}),mxUtils.bind(this,function(a){d--;f()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(Editor.trimCssUrl(b[e].substring(0,g)),k)}f()}else c(a)};Editor.prototype.loadFonts=
+function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(c){this.resolvedFontCss=c;a()})):a()};Editor.prototype.embedExtFonts=function(a){var c=this.graph.getCustomFonts();if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(b,a)}),e=0;e<c.length;e++)mxUtils.bind(this,function(a,c){Graph.isCssFontUrl(c)?null==this.cachedGoogleFonts[c]?(d++,this.loadUrl(c,
+mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;d--;f()}),mxUtils.bind(this,function(a){d--;b+="@import url("+c+");";f()}))):b+=this.cachedGoogleFonts[c]:b+='@font-face {font-family: "'+a+'";src: url("'+c+'")}'})(c[e].name,c[e].url);f()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var c=document.getElementsByTagName("style"),b=0;b<c.length;b++)0<mxUtils.getTextContent(c[b]).indexOf("MathJax")&&a[0].appendChild(c[b].cloneNode(!0))};
+Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);if(null!=c){var b=a.getElementsByTagName("defs"),d=a.ownerDocument;0==b.length?(b=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);b.appendChild(d)}};
+Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var d=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(d/a,d/c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,p,t,v,m,l,y,z,A,q,u){try{e=null!=e?e:!0;g=null!=g?g:!0;m=null!=m?m:this.graph;l=null!=l?l:0;var n=p?null:m.background;n==mxConstants.NONE&&(n=null);null==n&&(n=d);null==n&&0==p&&(n=A?this.graph.defaultPageBackgroundColor:"#ffffff");
+this.convertImages(m.getSvg(null,null,l,y,null,g,null,null,null,t,null,A,q,u),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){y.drawImage(d,0,0);a(p,b)},0):(y.drawImage(d,0,0),a(p,b))},p=document.createElement("canvas"),t=parseInt(b.getAttribute("width")),v=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*v),c/t)):c/t);k=this.getMaxCanvasScale(t,v,k);t=
+Math.ceil(k*t);v=Math.ceil(k*v);p.setAttribute("width",t);p.setAttribute("height",v);var y=p.getContext("2d");null!=n&&(y.beginPath(),y.rect(0,0,t,v),y.fillStyle=n,y.fill());1!=k&&y.scale(k,k);if(z){var A=m.view,q=A.scale;A.scale=1;var B=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));A.scale=q;var B="data:image/svg+xml;base64,"+B,C=m.gridSize*A.gridSteps*k,u=m.getGraphBounds(),I=A.translate.x*q,E=A.translate.y*q,F=I+(u.x-I)/q-l,D=E+(u.y-E)/q-l,G=new Image;G.onload=function(){try{for(var a=
+-Math.round(C-mxUtils.mod((I-F)*k,C)),c=-Math.round(C-mxUtils.mod((E-D)*k,C));a<t;a+=C)for(var b=c;b<v;b+=C)y.drawImage(G,a/k,b/k);g()}catch(ua){null!=f&&f(ua)}};G.onerror=function(a){null!=f&&f(a)};G.src=B}else g()}catch(xa){null!=f&&f(xa)}});d.onerror=function(a){null!=f&&f(a)};t&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(ra){null!=
+f&&f(ra)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(O){null!=f&&f(O)}}))}catch(ra){null!=f&&f(ra)}}),b,v)}catch(T){null!=f&&f(T)}};Editor.crcTable=[];for(var l=0;256>l;l++)for(var m=l,u=0;8>u;u++)m=1==(m&1)?3988292384^m>>>1:m>>>1,Editor.crcTable[l]=m;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^
+a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=n;n+=c;return a.substring(b,n)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,
+4),"IHDR"!=e(a,4))null!=f&&f();else{e(a,17);f=a.substring(0,n);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,n-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(n-8,a.length);break}f+=a.substring(n-8,n-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?
+btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var q=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){q.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&
+(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var f=Format.prototype.init;Format.prototype.init=function(){f.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?
+g.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var k=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=k.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),
+function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var p=DiagramFormatPanel.prototype.addOptions;
+DiagramFormatPanel.prototype.addOptions=function(a){a=p.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});
a.appendChild(f)}}if(this.isMathOptionVisible()&&b.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return b.mathEnabled},function(a){c.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(b.mathEnabled)};c.addListener("mathEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var e=c.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");
e.style.position="relative";e.style.marginLeft="6px";e.style.top="2px";f.appendChild(e)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=
[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",
@@ -3178,36 +3180,36 @@ stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79
stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=
0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&null!=f.shape&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded=!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),
-d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(U){}}};var p=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));p.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,f=0;f<b.length;f++)this.findCommonProperties(b[f],c,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],
-c,0==b.length&&0==f);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var u=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");
-c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return u.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=
-function(a,c,b){function d(a,c,b,d){l.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(l.setCellStyles(b.countProperty,g.length,l.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}l.setCellStyles(a,
-c,l.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var m=b.dependentPropsDefVal[a],p=b.dependentPropsVals[a];if(p.length>c)p=p.slice(0,c);else for(var n=p.length;n<c;n++)p.push(m);p=p.join(",");l.setCellStyles(b.dependentProps[a],p,l.getSelectionCells());f.push(b.dependentProps[a]);e.push(p)}if("function"==typeof b.onChange)b.onChange(l,c);u.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",l.getSelectionCells()))}finally{l.getModel().endUpdate()}}
-function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height="4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(u,
-function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),n.push({name:a,values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(u,function(c){for(var m=g,u=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==
-a)m=m.nextSibling,u++;else break;var l={type:b,parentRow:g,index:u,isDeletable:!0,defVal:f,countProperty:e},u=p(a,"",l,0==u%2,k);d(a,f,l);m.parentNode.insertBefore(u,m.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var m=0;m<f;m++)k[m]=null!=c[m]?c[m]:null!=d?d:"";n.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}
-function m(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function p(c,b,p,l,n){var x=p.dispName,z=p.type,y=document.createElement("tr");y.className="gePropRow"+(n?"Dark":"")+(l?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);l=!1;null!=p.index&&(y.setAttribute("data-index",p.index),x=(null!=x?x:"")+"["+p.index+"]",l=!0);var A=document.createElement("td");
-A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(x,null,x));l&&(A.style.textAlign="right");y.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==z)A.appendChild(e(c,b,p));else if("bool"==z||"boolean"==z)A.appendChild(m(c,b,p));else if("enum"==z){var q=p.enumList;for(n=0;n<q.length;n++)if(x=q[n],x.val==b){A.innerHTML=mxUtils.htmlEntities(mxResources.get(x.dispName,null,x.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(u,function(){var e=
-document.createElement("select");f(A,e);for(var g=0;g<q.length;g++){var k=q[g],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);m.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(m)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,p)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==z?A.appendChild(g(c,b,p.subType,p.subDefVal,p.countProperty,
-y,n)):"staticArr"==z?A.appendChild(k(c,b,p.subType,p.subDefVal,p.size,y,n)):"readOnly"==z?(n=document.createElement("input"),n.setAttribute("readonly",""),n.value=b,n.style.width="96px",n.style.borderWidth="0px",A.appendChild(n)):(A.innerHTML=b,mxEvent.addListener(A,"click",mxUtils.bind(u,function(){function e(){var a=g.value,a=0==a.length&&"string"!=z?0:a;p.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",z="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=p.min&&a<p.min?a=p.min:
-null!=p.max&&a>p.max&&(a=p.max);a=mxUtils.htmlEntities(("int"==z?parseInt(a):a)+"");d(c,a,p)}var g=document.createElement("input");f(A,g,!0);g.value=b;g.className="gePropEditor";"int"!=z&&"float"!=z||p.allowAuto||(g.type="number",g.step="int"==z?"1":"any",null!=p.min&&(g.min=parseFloat(p.min)),null!=p.max&&(g.max=parseFloat(p.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));p.isDeletable&&(n=mxUtils.button("-",
-mxUtils.bind(u,function(a){d(c,"",p,p.index);mxEvent.consume(a)})),n.style.height="16px",n.style.width="25px",n.style["float"]="right",n.className="geColorBtn",A.appendChild(n));y.appendChild(A);return y}var u=this,l=this.editorUi.editor.graph,n=[];a.style.position="relative";a.style.padding="0";var x=document.createElement("table");x.className="geProperties";x.style.whiteSpace="nowrap";x.style.width="100%";var z=document.createElement("tr");z.className="gePropHeader";var y=document.createElement("th");
-y.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;y.appendChild(A);mxUtils.write(y,mxResources.get("property"));z.style.cursor="pointer";var q=function(){var c=x.querySelectorAll(".gePropNonHeaderRow"),b;if(u.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(sa){}}else A.src=
-Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(z,"click",function(){u.editorUi.propertiesCollapsed=!u.editorUi.propertiesCollapsed;q()});z.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value");z.appendChild(y);x.appendChild(z);var t=!1,B=!1,z=null;1==b.vertices.length&&0==b.edges.length?z=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(z=b.edges[0].id);null!=z&&x.appendChild(p("id",
-mxUtils.htmlEntities(z),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in c)if(z=c[C],"function"!=typeof z.isVisible||z.isVisible(b,this)){var H=null!=b.style[C]?mxUtils.htmlEntities(b.style[C]+""):null!=z.getDefaultValue?z.getDefaultValue(b,this):z.defVal;if("separator"==z.type)B=!B;else{if("staticArr"==z.type)z.size=parseInt(b.style[z.sizeProperty]||c[z.sizeProperty].defVal)||0;else if(null!=z.dependentProps){for(var F=z.dependentProps,E=[],I=[],y=0;y<F.length;y++){var M=b.style[F[y]];I.push(c[F[y]].subDefVal);
-E.push(null!=M?M.split(","):[])}z.dependentPropsDefVal=I;z.dependentPropsVals=E}x.appendChild(p(C,H,z,t,B));t=!t}}for(y=0;y<n.length;y++)for(z=n[y],c=z.parentRow,b=0;b<z.values.length;b++)C=p(z.name,z.values[b],{type:z.type,parentRow:z.parentRow,isDeletable:z.isDeletable,index:b,defVal:z.defVal,countProperty:z.countProperty,size:z.size},0==b%2,z.flipBkg),c.parentNode.insertBefore(C,c.nextSibling),c=C;a.appendChild(x);q();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,
+d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(U){}}};var t=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));t.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,f=0;f<b.length;f++)this.findCommonProperties(b[f],c,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],
+c,0==b.length&&0==f);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");
+c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=
+function(a,c,b){function d(a,c,b,d){v.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(v.setCellStyles(b.countProperty,g.length,v.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}v.setCellStyles(a,
+c,v.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var p=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var m=n.length;m<c;m++)n.push(p);n=n.join(",");v.setCellStyles(b.dependentProps[a],n,v.getSelectionCells());f.push(b.dependentProps[a]);e.push(n)}if("function"==typeof b.onChange)b.onChange(v,c);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",v.getSelectionCells()))}finally{v.getModel().endUpdate()}}
+function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height="4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,
+function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),m.push({name:a,values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(t,function(c){for(var p=g,t=0;null!=p.nextSibling;)if(p.nextSibling.getAttribute("data-pName")==
+a)p=p.nextSibling,t++;else break;var v={type:b,parentRow:g,index:t,isDeletable:!0,defVal:f,countProperty:e},t=n(a,"",v,0==t%2,k);d(a,f,v);p.parentNode.insertBefore(t,p.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var p=0;p<f;p++)k[p]=null!=c[p]?c[p]:null!=d?d:"";m.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}
+function p(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,v,m){var l=n.dispName,y=n.type,z=document.createElement("tr");z.className="gePropRow"+(m?"Dark":"")+(v?"Alt":"")+" gePropNonHeaderRow";z.setAttribute("data-pName",c);z.setAttribute("data-pValue",b);v=!1;null!=n.index&&(z.setAttribute("data-index",n.index),l=(null!=l?l:"")+"["+n.index+"]",v=!0);var A=document.createElement("td");
+A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(l,null,l));v&&(A.style.textAlign="right");z.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==y)A.appendChild(e(c,b,n));else if("bool"==y||"boolean"==y)A.appendChild(p(c,b,n));else if("enum"==y){var q=n.enumList;for(m=0;m<q.length;m++)if(l=q[m],l.val==b){A.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(t,function(){var e=
+document.createElement("select");f(A,e);for(var g=0;g<q.length;g++){var k=q[g],p=document.createElement("option");p.value=mxUtils.htmlEntities(k.val);p.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(p)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==y?A.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,
+z,m)):"staticArr"==y?A.appendChild(k(c,b,n.subType,n.subDefVal,n.size,z,m)):"readOnly"==y?(m=document.createElement("input"),m.setAttribute("readonly",""),m.value=b,m.style.width="96px",m.style.borderWidth="0px",A.appendChild(m)):(A.innerHTML=b,mxEvent.addListener(A,"click",mxUtils.bind(t,function(){function e(){var a=g.value,a=0==a.length&&"string"!=y?0:a;n.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",y="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=n.min&&a<n.min?a=n.min:
+null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==y?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");f(A,g,!0);g.value=b;g.className="gePropEditor";"int"!=y&&"float"!=y||n.allowAuto||(g.type="number",g.step="int"==y?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));n.isDeletable&&(m=mxUtils.button("-",
+mxUtils.bind(t,function(a){d(c,"",n,n.index);mxEvent.consume(a)})),m.style.height="16px",m.style.width="25px",m.style["float"]="right",m.className="geColorBtn",A.appendChild(m));z.appendChild(A);return z}var t=this,v=this.editorUi.editor.graph,m=[];a.style.position="relative";a.style.padding="0";var l=document.createElement("table");l.className="geProperties";l.style.whiteSpace="nowrap";l.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var z=document.createElement("th");
+z.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;z.appendChild(A);mxUtils.write(z,mxResources.get("property"));y.style.cursor="pointer";var q=function(){var c=l.querySelectorAll(".gePropNonHeaderRow"),b;if(t.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(sa){}}else A.src=
+Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(y,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;q()});y.appendChild(z);z=document.createElement("th");z.className="gePropHeaderCell";z.innerHTML=mxResources.get("value");y.appendChild(z);l.appendChild(y);var u=!1,B=!1,y=null;1==b.vertices.length&&0==b.edges.length?y=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(y=b.edges[0].id);null!=y&&l.appendChild(n("id",
+mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in c)if(y=c[C],"function"!=typeof y.isVisible||y.isVisible(b,this)){var I=null!=b.style[C]?mxUtils.htmlEntities(b.style[C]+""):null!=y.getDefaultValue?y.getDefaultValue(b,this):y.defVal;if("separator"==y.type)B=!B;else{if("staticArr"==y.type)y.size=parseInt(b.style[y.sizeProperty]||c[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var F=y.dependentProps,D=[],G=[],z=0;z<F.length;z++){var N=b.style[F[z]];G.push(c[F[z]].subDefVal);
+D.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=G;y.dependentPropsVals=D}l.appendChild(n(C,I,y,u,B));u=!u}}for(z=0;z<m.length;z++)for(y=m[z],c=y.parentRow,b=0;b<y.values.length;b++)C=n(y.name,y.values[b],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:b,defVal:y.defVal,countProperty:y.countProperty,size:y.size},0==b%2,y.flipBkg),c.parentNode.insertBefore(C,c.nextSibling),c=C;a.appendChild(l);q();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,
"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var b=this.editorUi,d=b.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),
-g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";for(var k=[],m=0;m<this.defaultColorSchemes.length;m++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,
-"click",mxUtils.bind(this,function(){u(a)}))})(m);k.push(p);g.appendChild(p)}var u=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;l(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),l=mxUtils.bind(this,function(a){var c=mxUtils.bind(this,function(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),
-g=0;g<f.length;g++){for(var k=d.getModel().getStyle(f[g]),m=0;m<e.length;m++)k=mxUtils.removeStylename(k,e[m]);var p=d.getModel().isVertex(f[g])?b.initialDefaultVertexStyle:b.initialdefaultEdgeStyle;null!=a?(k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(c)||(k=""==a.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
+g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";for(var k=[],n=0;n<this.defaultColorSchemes.length;n++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,
+"click",mxUtils.bind(this,function(){t(a)}))})(n);k.push(p);g.appendChild(p)}var t=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;v(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),v=mxUtils.bind(this,function(a){var c=mxUtils.bind(this,function(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),
+g=0;g<f.length;g++){for(var k=d.getModel().getStyle(f[g]),n=0;n<e.length;n++)k=mxUtils.removeStylename(k,e[n]);var p=d.getModel().isVertex(f[g])?b.initialDefaultVertexStyle:b.initialdefaultEdgeStyle;null!=a?(k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(c)||(k=""==a.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
null))),mxEvent.isShiftDown(c)||(k=""==a.stroke?mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null))),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(f[g])||(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))):(k=mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
"#ffffff")),k=mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(f[g])&&(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(f[g],k)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height=
10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";if(null!=a){var g="1"==urlParams.sketch?"2px solid":"1px solid";null!=a.gradient?mxClient.IS_IE&&10>document.documentMode?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":
c.style.backgroundColor=""==a.fill?mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff");c.style.border=a.stroke==mxConstants.NONE?g+" transparent":""==a.stroke?g+" "+mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"):g+" "+(a.stroke||mxUtils.getValue(b.initialDefaultVertexStyle,
-mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"))}else{var g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=g;c.style.border="1px solid "+k}c.style.borderRadius="0";f.appendChild(c)});f.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(f),c(a[g])});null==this.format.currentScheme?u(Editor.isDarkMode()?1:"1"==urlParams.sketch?
-5:0):u(this.format.currentScheme);var m=10>=this.defaultColorSchemes.length?28:8,n=document.createElement("div");n.style.cssText="position:absolute;left:10px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(n,"click",mxUtils.bind(this,function(){u(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var z=document.createElement("div");z.style.cssText="position:absolute;left:202px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(a.appendChild(n),a.appendChild(z));mxEvent.addListener(z,"click",mxUtils.bind(this,function(){u(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));c(n);c(z);l(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&a.appendChild(g);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&(b=mxUtils.button(mxResources.get("editStyle"),
+mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"))}else{var g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=g;c.style.border="1px solid "+k}c.style.borderRadius="0";f.appendChild(c)});f.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(f),c(a[g])});null==this.format.currentScheme?t(Editor.isDarkMode()?1:"1"==urlParams.sketch?
+5:0):t(this.format.currentScheme);var n=10>=this.defaultColorSchemes.length?28:8,m=document.createElement("div");m.style.cssText="position:absolute;left:10px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
+mxEvent.addListener(m,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+1<this.defaultColorSchemes.length&&(a.appendChild(m),a.appendChild(l));mxEvent.addListener(l,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));c(m);c(l);v(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&a.appendChild(g);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&(b=mxUtils.button(mxResources.get("editStyle"),
mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),b.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),b.style.width="202px",b.style.marginBottom="2px",a.appendChild(b));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),
c.setAttribute("title",mxResources.get("editShape")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c)):c.image&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft=
"2px"),a.appendChild(c));return a}}Graph.customFontElements={};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(a){return a.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(a){return Graph.isGoogleFontUrl(a)};Graph.createFontElement=function(a,c){var b;Graph.isCssFontUrl(c)?(b=document.createElement("link"),b.setAttribute("rel","stylesheet"),b.setAttribute("type","text/css"),b.setAttribute("charset","UTF-8"),b.setAttribute("href",c)):(b=document.createElement("style"),
@@ -3218,22 +3220,22 @@ Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";
"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint;this.getInsertPoint=function(){return null!=c?this.getPointForEvent(c):b.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var c=this.graph.getCellStyle(a);if(null!=c){if("rack"==c.childLayout){var b=new mxStackLayout(this.graph,!1);b.gridSize=null!=c.rackUnitSize?parseFloat(c.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:
20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.allowGaps=c.allowGaps||0;b.horizontal="1"==mxUtils.getValue(c,"horizontalRack","0");b.resizeParent=!1;b.fill=!0;return b}if("undefined"!==typeof mxTableLayout&&"tableLayout"==c.childLayout)return b=new mxTableLayout(this.graph),b.rows=c.tableRows||2,b.columns=c.tableColumns||2,b.colPercentages=c.colPercentages,b.rowPercentages=c.rowPercentages,b.equalColumns="1"==mxUtils.getValue(c,
"equalColumns",b.colPercentages?"0":"1"),b.equalRows="1"==mxUtils.getValue(c,"equalRows",b.rowPercentages?"0":"1"),b.resizeParent="1"==mxUtils.getValue(c,"resizeParent","1"),b.border=c.tableBorder||b.border,b.marginLeft=c.marginLeft||0,b.marginRight=c.marginRight||0,b.marginTop=c.marginTop||0,b.marginBottom=c.marginBottom||0,b.autoAddCol="1"==mxUtils.getValue(c,"autoAddCol","0"),b.autoAddRow="1"==mxUtils.getValue(c,"autoAddRow",b.autoAddCol?"0":"1"),b.colWidths=c.colWidths||"100",b.rowHeights=c.rowHeights||
-"50",b}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};var F=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(a){return Graph.processFontStyle(F.apply(this,arguments))};var z=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(a,c,b,d,f,e,g,k,m,p,u){z.apply(this,arguments);Graph.processFontAttributes(u)};var y=mxText.prototype.redraw;mxText.prototype.redraw=function(){y.apply(this,arguments);null!=this.node&&"DIV"==
+"50",b}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};var F=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(a){return Graph.processFontStyle(F.apply(this,arguments))};var y=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(a,c,b,d,f,e,g,k,p,t,v){y.apply(this,arguments);Graph.processFontAttributes(v)};var z=mxText.prototype.redraw;mxText.prototype.redraw=function(){z.apply(this,arguments);null!=this.node&&"DIV"==
this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.getCustomFonts=function(){var a=this.extFonts,a=null!=a?a.slice():[],c;for(c in Graph.customFontElements){var b=Graph.customFontElements[c];a.push({name:b.name,url:b.url})}return a};Graph.prototype.setFont=function(a,c){Graph.addFont(a,c);document.execCommand("fontname",!1,a);if(null!=c){var b=this.cellEditor.textarea.getElementsByTagName("font");c=Graph.getFontUrl(a,c);for(var d=0;d<b.length;d++)b[d].getAttribute("face")==
-a&&b[d].getAttribute("data-font-src")!=c&&b[d].setAttribute("data-font-src",c)}};var M=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return M.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var a=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=a)for(var c in a)this.globalVars[c]=
-a[c]}catch(C){null!=window.console&&console.log("Error in vars URL parameter: "+C)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var L=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=L.apply(this,arguments);null==c&&null!=this.globalVars&&(c=this.globalVars[a]);return c};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var a=this.themes["default-style2"];this.defaultStylesheet=
-(new mxCodec(a.ownerDocument)).decode(a)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var I=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,c,b,d,f,e,g,k,m,p,u,l,n,z){var y=null,x=null;l||null==this.themes||"darkTheme"!=this.defaultThemeName||(y=this.stylesheet,x=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=
-I.apply(this,arguments),q=this.getCustomFonts();if(u&&0<q.length){var t=A.ownerDocument,H=null!=t.createElementNS?t.createElementNS(mxConstants.NS_SVG,"style"):t.createElement("style");null!=t.setAttributeNS?H.setAttributeNS("type","text/css"):H.setAttribute("type","text/css");for(var F="",E="",B=0;B<q.length;B++){var C=q[B].name,M=q[B].url;Graph.isCssFontUrl(M)?F+="@import url("+M+");\n":E+='@font-face {\nfont-family: "'+C+'";\nsrc: url("'+M+'");\n}\n'}H.appendChild(t.createTextNode(F+E));A.getElementsByTagName("defs")[0].appendChild(H)}null!=
-y&&(this.defaultPageBackgroundColor=x,this.stylesheet=y,this.refresh());return A};var G=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=G.apply(this,arguments);if(this.mathEnabled){var c=a.drawText;a.drawText=function(a,b){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var d=a.text.getContentNode();if(null!=d){d=d.cloneNode(!0);if(d.getElementsByTagNameNS)for(var f=
-d.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<f.length;)f[0].parentNode.removeChild(f[0]);null!=d.innerHTML&&(f=a.text.value,a.text.value=d.innerHTML,c.apply(this,arguments),a.text.value=f)}}else c.apply(this,arguments)}}return a};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
+a&&b[d].getAttribute("data-font-src")!=c&&b[d].setAttribute("data-font-src",c)}};var L=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return L.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var a=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=a)for(var c in a)this.globalVars[c]=
+a[c]}catch(C){null!=window.console&&console.log("Error in vars URL parameter: "+C)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var M=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=M.apply(this,arguments);null==c&&null!=this.globalVars&&(c=this.globalVars[a]);return c};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var a=this.themes["default-style2"];this.defaultStylesheet=
+(new mxCodec(a.ownerDocument)).decode(a)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var G=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,c,b,d,f,e,g,k,p,t,v,m,l,y){var n=null,z=null;m||null==this.themes||"darkTheme"!=this.defaultThemeName||(n=this.stylesheet,z=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=
+G.apply(this,arguments),q=this.getCustomFonts();if(v&&0<q.length){var u=A.ownerDocument,I=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"style"):u.createElement("style");null!=u.setAttributeNS?I.setAttributeNS("type","text/css"):I.setAttribute("type","text/css");for(var F="",D="",C=0;C<q.length;C++){var B=q[C].name,N=q[C].url;Graph.isCssFontUrl(N)?F+="@import url("+N+");\n":D+='@font-face {\nfont-family: "'+B+'";\nsrc: url("'+N+'");\n}\n'}I.appendChild(u.createTextNode(F+D));A.getElementsByTagName("defs")[0].appendChild(I)}null!=
+n&&(this.defaultPageBackgroundColor=z,this.stylesheet=n,this.refresh());return A};var J=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=J.apply(this,arguments);if(this.mathEnabled){var c=a.drawText;a.drawText=function(a,b){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var d=a.text.getContentNode();if(null!=d){d=d.cloneNode(!0);if(d.getElementsByTagNameNS)for(var f=
+d.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<f.length;)f[0].parentNode.removeChild(f[0]);null!=d.innerHTML&&(f=a.text.value,a.text.value=d.innerHTML,c.apply(this,arguments),a.text.value=f)}}else c.apply(this,arguments)}}return a};var H=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){H.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
-this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var E=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){E.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var c=0;c<a.actions.length;c++){var b=a.actions[c];if(null!=b.open)if(this.isCustomLink(b.open)){if(!this.customLinkClicked(b.open))return}else this.openLink(b.open)}this.model.beginUpdate();
+this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var D=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){D.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var c=0;c<a.actions.length;c++){var b=a.actions[c];if(null!=b.open)if(this.isCustomLink(b.open)){if(!this.customLinkClicked(b.open))return}else this.openLink(b.open)}this.model.beginUpdate();
try{for(c=0;c<a.actions.length;c++)b=a.actions[c],null!=b.toggle&&this.toggleCells(this.getCellsForAction(b.toggle,!0)),null!=b.show&&this.setCellsVisible(this.getCellsForAction(b.show,!0),!0),null!=b.hide&&this.setCellsVisible(this.getCellsForAction(b.hide,!0),!1)}finally{this.model.endUpdate()}for(c=0;c<a.actions.length;c++){var b=a.actions[c],d=[];null!=b.select&&this.isEnabled()&&(d=this.getCellsForAction(b.select),this.setSelectionCells(d));null!=b.highlight&&(d=this.getCellsForAction(b.highlight),
this.highlightCells(d,b.highlight.color,b.highlight.duration,b.highlight.opacity));null!=b.scroll&&(d=this.getCellsForAction(b.scroll));null!=b.viewbox&&this.fitWindow(b.viewbox,b.viewbox.border);0<d.length&&this.scrollCellToVisible(d[0])}}};Graph.prototype.updateCustomLinksForCell=function(a,c){var b=this.getLinkForCell(c);null!=b&&"data:action/json,"==b.substring(0,17)&&this.setLinkForCell(c,this.updateCustomLink(a,b));if(this.isHtmlLabel(c)){var d=document.createElement("div");d.innerHTML=this.sanitizeHtml(this.getLabel(c));
-for(var f=d.getElementsByTagName("a"),e=!1,g=0;g<f.length;g++)b=f[g].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(f[g].setAttribute("href",this.updateCustomLink(a,b)),e=!0);e&&this.labelChanged(c,d.innerHTML)}};Graph.prototype.updateCustomLink=function(a,c){if("data:action/json,"==c.substring(0,17))try{var b=JSON.parse(c.substring(17));null!=b.actions&&(this.updateCustomLinkActions(a,b.actions),c="data:action/json,"+JSON.stringify(b))}catch(ga){}return c};Graph.prototype.updateCustomLinkActions=
+for(var f=d.getElementsByTagName("a"),e=!1,g=0;g<f.length;g++)b=f[g].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(f[g].setAttribute("href",this.updateCustomLink(a,b)),e=!0);e&&this.labelChanged(c,d.innerHTML)}};Graph.prototype.updateCustomLink=function(a,c){if("data:action/json,"==c.substring(0,17))try{var b=JSON.parse(c.substring(17));null!=b.actions&&(this.updateCustomLinkActions(a,b.actions),c="data:action/json,"+JSON.stringify(b))}catch(ka){}return c};Graph.prototype.updateCustomLinkActions=
function(a,c){for(var b=0;b<c.length;b++){var d=c[b];this.updateCustomLinkAction(a,d.toggle);this.updateCustomLinkAction(a,d.show);this.updateCustomLinkAction(a,d.hide);this.updateCustomLinkAction(a,d.select);this.updateCustomLinkAction(a,d.highlight);this.updateCustomLinkAction(a,d.scroll)}};Graph.prototype.updateCustomLinkAction=function(a,c){if(null!=c&&null!=c.cells){for(var b=[],d=0;d<c.cells.length;d++)if("*"==c.cells[d])b.push(c.cells[d]);else{var f=a[c.cells[d]];null!=f?""!=f&&b.push(f):b.push(c.cells[d])}c.cells=
b}};Graph.prototype.getCellsForAction=function(a,c){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,null,c))};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var d=this.getDefaultParent(),c=c.concat(this.model.filterDescendants(function(a){return a!=d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b,d){var f=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());
-b=null!=b?b:"tags";for(var e=0,g={},k=0;k<a.length;k++)0<a[k].length&&(g[a[k].toLowerCase()]=!0,e++);for(k=0;k<c.length;k++)if(d&&this.model.getParent(c[k])==this.model.root||this.model.isVertex(c[k])||this.model.isEdge(c[k])){var m=null!=c[k].value&&"object"==typeof c[k].value?mxUtils.trim(c[k].value.getAttribute(b)||""):"",p=!1;if(0<m.length){if(m=m.toLowerCase().split(" "),m.length>=a.length){for(var u=p=0;u<m.length&&p<e;u++)null!=g[m[u]]&&p++;p=p==e}}else p=0==a.length;p&&f.push(c[k])}}return f};
+b=null!=b?b:"tags";for(var e=0,g={},k=0;k<a.length;k++)0<a[k].length&&(g[a[k].toLowerCase()]=!0,e++);for(k=0;k<c.length;k++)if(d&&this.model.getParent(c[k])==this.model.root||this.model.isVertex(c[k])||this.model.isEdge(c[k])){var p=null!=c[k].value&&"object"==typeof c[k].value?mxUtils.trim(c[k].value.getAttribute(b)||""):"",n=!1;if(0<p.length){if(p=p.toLowerCase().split(" "),p.length>=a.length){for(var t=n=0;t<p.length&&n<e;t++)null!=g[p[t]]&&n++;n=n==e}}else n=0==a.length;n&&f.push(c[k])}}return f};
Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f<a.length;f++)this.highlightCell(a[f],c,b,d)};Graph.prototype.highlightCell=function(a,c,
b,d){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var f=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),e=new mxCellHighlight(this,c,f,!1);null!=d&&(e.opacity=d);e.highlight(a);window.setTimeout(function(){null!=e.shape&&(mxUtils.setPrefixedStyle(e.shape.node.style,"transition","all 1200ms ease-in-out"),e.shape.node.style.opacity=0);window.setTimeout(function(){e.destroy()},1200)},b)}};Graph.prototype.addSvgShadow=function(a,
c,b){b=null!=b?b:!1;var d=a.ownerDocument,f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");f.setAttribute("id",this.shadowId);var e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");e.setAttribute("in","SourceAlpha");e.setAttribute("stdDeviation",this.svgShadowBlur);e.setAttribute("result","blur");f.appendChild(e);e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feOffset"):
@@ -3252,316 +3254,316 @@ mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupN
"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js",STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=
[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=
[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=
-[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var J=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,k,m,p){if(null!=b&&null==mxMarker.markers[b]){var u=this.getPackageForType(b);null!=u&&mxStencilRegistry.getStencil(u)}return J.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){z.value=Math.max(1,
-Math.min(k,Math.max(parseInt(z.value),parseInt(n.value))));n.value=Math.max(1,Math.min(k,Math.min(parseInt(z.value),parseInt(n.value))))}function d(c){function b(c,b,e){var g=c.useCssTransforms,k=c.currentTranslate,m=c.currentScale,p=c.view.translate,u=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,c.view.translate=new mxPoint(0,0),c.view.scale=1);var l=c.getGraphBounds(),n=0,z=0,y=K.get(),A=1/c.pageScale,t=x.checked;if(t)var A=parseInt(G.value),
-H=parseInt(B.value),A=Math.min(y.height*H/(l.height/c.view.scale),y.width*A/(l.width/c.view.scale));else A=parseInt(q.value)/(100*c.pageScale),isNaN(A)&&(d=1/c.pageScale,q.value="100 %");y=mxRectangle.fromRectangle(y);y.width=Math.ceil(y.width*d);y.height=Math.ceil(y.height*d);A*=d;!t&&c.pageVisible?(l=c.getPageLayout(),n-=l.x*y.width,z-=l.y*y.height):t=!0;if(null==b){b=PrintDialog.createPrintPreview(c,A,y,0,n,z,t);b.pageSelector=!1;b.mathEnabled=!1;n=a.getCurrentFile();null!=n&&(b.title=n.getTitle());
+[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var K=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,k,p,t){if(null!=b&&null==mxMarker.markers[b]){var n=this.getPackageForType(b);null!=n&&mxStencilRegistry.getStencil(n)}return K.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){l.value=Math.max(1,
+Math.min(k,Math.max(parseInt(l.value),parseInt(m.value))));m.value=Math.max(1,Math.min(k,Math.min(parseInt(l.value),parseInt(m.value))))}function d(c){function b(c,b,e){var g=c.useCssTransforms,k=c.currentTranslate,p=c.currentScale,n=c.view.translate,t=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,c.view.translate=new mxPoint(0,0),c.view.scale=1);var v=c.getGraphBounds(),m=0,l=0,y=K.get(),z=1/c.pageScale,u=q.checked;if(u)var z=parseInt(B.value),
+I=parseInt(R.value),z=Math.min(y.height*I/(v.height/c.view.scale),y.width*z/(v.width/c.view.scale));else z=parseInt(A.value)/(100*c.pageScale),isNaN(z)&&(d=1/c.pageScale,A.value="100 %");y=mxRectangle.fromRectangle(y);y.width=Math.ceil(y.width*d);y.height=Math.ceil(y.height*d);z*=d;!u&&c.pageVisible?(v=c.getPageLayout(),m-=v.x*y.width,l-=v.y*y.height):u=!0;if(null==b){b=PrintDialog.createPrintPreview(c,z,y,0,m,l,u);b.pageSelector=!1;b.mathEnabled=!1;m=a.getCurrentFile();null!=m&&(b.title=m.getTitle());
var F=b.writeHead;b.writeHead=function(b){F.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)b.writeln('<style type="text/css">'),b.writeln(Editor.mathJaxWebkitCss),b.writeln("</style>");mxClient.IS_GC&&(b.writeln('<style type="text/css">'),b.writeln("@media print {"),b.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),b.writeln("}"),b.writeln("</style>"));null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"));for(var d=
-c.getCustomFonts(),f=0;f<d.length;f++){var e=d[f].name,g=d[f].url;Graph.isCssFontUrl(g)?b.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(g)+'" charset="UTF-8" type="text/css">'):(b.writeln('<style type="text/css">'),b.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(e)+'";\nsrc: url("'+mxUtils.htmlEntities(g)+'");\n}'),b.writeln("</style>"))}};if("undefined"!==typeof MathJax){var E=b.renderPage;b.renderPage=function(c,b,d,f,e,g){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&
-!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var m=E.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}n=null;z=f.enableFlowAnimation;f.enableFlowAnimation=!1;null!=f.themes&&"darkTheme"==f.defaultThemeName&&(n=f.stylesheet,f.stylesheet=f.getDefaultStylesheet(),f.refresh());b.open(null,null,e,!0);f.enableFlowAnimation=z;null!=n&&(f.stylesheet=n,f.refresh())}else{y=c.background;if(null==
-y||""==y||y==mxConstants.NONE)y="#ffffff";b.backgroundColor=y;b.autoOrigin=t;b.appendGraph(c,A,n,z,e,!0);e=c.getCustomFonts();if(null!=b.wnd)for(n=0;n<e.length;n++)z=e[n].name,t=e[n].url,Graph.isCssFontUrl(t)?b.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(t)+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),b.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(z)+'";\nsrc: url("'+mxUtils.htmlEntities(t)+'");\n}'),
-b.wnd.document.writeln("</style>"))}g&&(c.useCssTransforms=g,c.currentTranslate=k,c.currentScale=m,c.view.translate=p,c.view.scale=u);return b}var d=parseInt(X.value)/100;isNaN(d)&&(d=1,X.value="100 %");var d=.75*d,e=null;null!=f.themes&&"darkTheme"==f.defaultThemeName&&(e=f.stylesheet,f.stylesheet=f.getDefaultStylesheet(),f.refresh());var g=n.value,k=z.value,p=!u.checked,l=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,u.checked,g,k,x.checked,G.value,B.value,parseInt(q.value)/100,parseInt(X.value)/
-100,K.get());else{p&&(p=g==m&&k==m);if(!p&&null!=a.pages&&a.pages.length){var y=0,p=a.pages.length-1;u.checked||(y=parseInt(g)-1,p=parseInt(k)-1);for(var A=y;A<=p;A++){var t=a.pages[A],g=t==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.stylesheet),k=!0,y=!1,H=null,F=null;null==t.viewState&&null==t.root&&a.updatePageRoot(t);null!=t.viewState&&(k=t.viewState.pageVisible,y=t.viewState.mathEnabled,H=t.viewState.background,F=t.viewState.backgroundImage,g.extFonts=t.viewState.extFonts);
-g.background=H;g.backgroundImage=null!=F?new mxImage(F.src,F.width,F.height):null;g.pageVisible=k;g.mathEnabled=y;var E=g.getGlobalVariable;g.getGlobalVariable=function(c){return"page"==c?t.getName():"pagenumber"==c?A+1:"pagecount"==c?null!=a.pages?a.pages.length:1:E.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(t);g.model.setRoot(t.root)}l=b(g,l,A!=p);g!=f&&g.container.parentNode.removeChild(g.container)}}else l=b(f);null==l?a.handleError({message:mxResources.get("errorUpdatingPreview")}):
-(l.mathEnabled&&(p=l.wnd.document,c&&(l.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),l.closeDocument(),!l.mathEnabled&&c&&PrintDialog.printPreview(l));null!=e&&(f.stylesheet=e,f.refresh())}}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var k=1,m=1,p=
-document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var u=document.createElement("input");u.style.cssText="margin-right:8px;margin-bottom:8px;";u.setAttribute("value","all");u.setAttribute("type","radio");u.setAttribute("name","pages-printdialog");p.appendChild(u);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));p.appendChild(g);mxUtils.br(p);var l=u.cloneNode(!0);u.setAttribute("checked","checked");
-l.setAttribute("value","range");p.appendChild(l);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");p.appendChild(g);var n=document.createElement("input");n.style.cssText="margin:0 8px 0 8px;";n.setAttribute("value","1");n.setAttribute("type","number");n.setAttribute("min","1");n.style.width="50px";p.appendChild(n);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));p.appendChild(g);var z=n.cloneNode(!0);p.appendChild(z);mxEvent.addListener(n,"focus",
-function(){l.checked=!0});mxEvent.addListener(z,"focus",function(){l.checked=!0});mxEvent.addListener(n,"change",b);mxEvent.addListener(z,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage==a.pages[g]){m=g+1;n.value=m;z.value=m;break}n.setAttribute("max",k);z.setAttribute("max",k);a.isPagesEnabled()?1<k&&(e.appendChild(p),l.checked=!0):l.checked=!0;var y=document.createElement("div");y.style.marginBottom="10px";var A=document.createElement("input");
-A.style.marginRight="8px";A.setAttribute("value","adjust");A.setAttribute("type","radio");A.setAttribute("name","printZoom");y.appendChild(A);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));y.appendChild(g);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","100 %");q.style.width="50px";y.appendChild(q);mxEvent.addListener(q,"focus",function(){A.checked=!0});e.appendChild(y);var p=p.cloneNode(!1),x=A.cloneNode(!0);x.setAttribute("value",
-"fit");A.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(x);p.appendChild(g);y=document.createElement("table");y.style.display="inline-block";var t=document.createElement("tbody"),H=document.createElement("tr"),F=H.cloneNode(!0),E=document.createElement("td"),I=E.cloneNode(!0),M=E.cloneNode(!0),Q=E.cloneNode(!0),L=E.cloneNode(!0),J=E.cloneNode(!0);E.style.textAlign="right";Q.style.textAlign=
-"right";mxUtils.write(E,mxResources.get("fitTo"));var G=document.createElement("input");G.style.cssText="margin:0 8px 0 8px;";G.setAttribute("value","1");G.setAttribute("min","1");G.setAttribute("type","number");G.style.width="40px";I.appendChild(G);g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(Q,mxResources.get("fitToBy"));var B=G.cloneNode(!0);L.appendChild(B);mxEvent.addListener(G,"focus",function(){x.checked=!0});mxEvent.addListener(B,
-"focus",function(){x.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));J.appendChild(g);H.appendChild(E);H.appendChild(I);H.appendChild(M);F.appendChild(Q);F.appendChild(L);F.appendChild(J);t.appendChild(H);t.appendChild(F);y.appendChild(t);p.appendChild(y);e.appendChild(p);p=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));p.appendChild(g);
-g=document.createElement("div");g.style.marginBottom="12px";var K=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));p.appendChild(g);var X=document.createElement("input");X.style.cssText="margin:0 8px 0 8px;";X.setAttribute("value","100 %");X.style.width="60px";p.appendChild(X);e.appendChild(p);g=document.createElement("div");g.style.cssText=
-"text-align:right;margin:48px 0 0 0;";p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});p.className="geBtn";a.editor.cancelFirst&&g.appendChild(p);a.isOffline()||(y=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),y.className="geBtn",g.appendChild(y));PrintDialog.previewEnabled&&(y=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),y.className="geBtn",g.appendChild(y));y=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?
-"print":"ok"),function(){a.hideDialog();d(!0)});y.className="geBtn gePrimaryBtn";g.appendChild(y);a.editor.cancelFirst||g.appendChild(p);e.appendChild(g);this.container=e};var H=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&
-(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(H.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),
-this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var X=document.createElement("canvas"),Q=new Image;Q.onload=function(){try{X.getContext("2d").drawImage(Q,0,0);var a=X.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(B){}};Q.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(x){}})();
+c.getCustomFonts(),f=0;f<d.length;f++){var e=d[f].name,g=d[f].url;Graph.isCssFontUrl(g)?b.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(g)+'" charset="UTF-8" type="text/css">'):(b.writeln('<style type="text/css">'),b.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(e)+'";\nsrc: url("'+mxUtils.htmlEntities(g)+'");\n}'),b.writeln("</style>"))}};if("undefined"!==typeof MathJax){var D=b.renderPage;b.renderPage=function(c,b,d,f,e,g){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&
+!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var p=D.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:p.className="geDisableMathJax";return p}}m=null;l=f.enableFlowAnimation;f.enableFlowAnimation=!1;null!=f.themes&&"darkTheme"==f.defaultThemeName&&(m=f.stylesheet,f.stylesheet=f.getDefaultStylesheet(),f.refresh());b.open(null,null,e,!0);f.enableFlowAnimation=l;null!=m&&(f.stylesheet=m,f.refresh())}else{y=c.background;if(null==
+y||""==y||y==mxConstants.NONE)y="#ffffff";b.backgroundColor=y;b.autoOrigin=u;b.appendGraph(c,z,m,l,e,!0);e=c.getCustomFonts();if(null!=b.wnd)for(m=0;m<e.length;m++)l=e[m].name,u=e[m].url,Graph.isCssFontUrl(u)?b.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(u)+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),b.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(l)+'";\nsrc: url("'+mxUtils.htmlEntities(u)+'");\n}'),
+b.wnd.document.writeln("</style>"))}g&&(c.useCssTransforms=g,c.currentTranslate=k,c.currentScale=p,c.view.translate=n,c.view.scale=t);return b}var d=parseInt(H.value)/100;isNaN(d)&&(d=1,H.value="100 %");var d=.75*d,e=null;null!=f.themes&&"darkTheme"==f.defaultThemeName&&(e=f.stylesheet,f.stylesheet=f.getDefaultStylesheet(),f.refresh());var g=m.value,k=l.value,n=!t.checked,v=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,t.checked,g,k,q.checked,B.value,R.value,parseInt(A.value)/100,parseInt(H.value)/
+100,K.get());else{n&&(n=g==p&&k==p);if(!n&&null!=a.pages&&a.pages.length){var y=0,n=a.pages.length-1;t.checked||(y=parseInt(g)-1,n=parseInt(k)-1);for(var z=y;z<=n;z++){var u=a.pages[z],g=u==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.stylesheet),k=!0,y=!1,I=null,F=null;null==u.viewState&&null==u.root&&a.updatePageRoot(u);null!=u.viewState&&(k=u.viewState.pageVisible,y=u.viewState.mathEnabled,I=u.viewState.background,F=u.viewState.backgroundImage,g.extFonts=u.viewState.extFonts);
+g.background=I;g.backgroundImage=null!=F?new mxImage(F.src,F.width,F.height):null;g.pageVisible=k;g.mathEnabled=y;var D=g.getGlobalVariable;g.getGlobalVariable=function(c){return"page"==c?u.getName():"pagenumber"==c?z+1:"pagecount"==c?null!=a.pages?a.pages.length:1:D.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(u);g.model.setRoot(u.root)}v=b(g,v,z!=n);g!=f&&g.container.parentNode.removeChild(g.container)}}else v=b(f);null==v?a.handleError({message:mxResources.get("errorUpdatingPreview")}):
+(v.mathEnabled&&(n=v.wnd.document,c&&(v.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),v.closeDocument(),!v.mathEnabled&&c&&PrintDialog.printPreview(v));null!=e&&(f.stylesheet=e,f.refresh())}}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var k=1,p=1,n=
+document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","all");t.setAttribute("type","radio");t.setAttribute("name","pages-printdialog");n.appendChild(t);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));n.appendChild(g);mxUtils.br(n);var v=t.cloneNode(!0);t.setAttribute("checked","checked");
+v.setAttribute("value","range");n.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");n.appendChild(g);var m=document.createElement("input");m.style.cssText="margin:0 8px 0 8px;";m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.style.width="50px";n.appendChild(m);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));n.appendChild(g);var l=m.cloneNode(!0);n.appendChild(l);mxEvent.addListener(m,"focus",
+function(){v.checked=!0});mxEvent.addListener(l,"focus",function(){v.checked=!0});mxEvent.addListener(m,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage==a.pages[g]){p=g+1;m.value=p;l.value=p;break}m.setAttribute("max",k);l.setAttribute("max",k);a.isPagesEnabled()?1<k&&(e.appendChild(n),v.checked=!0):v.checked=!0;var y=document.createElement("div");y.style.marginBottom="10px";var z=document.createElement("input");
+z.style.marginRight="8px";z.setAttribute("value","adjust");z.setAttribute("type","radio");z.setAttribute("name","printZoom");y.appendChild(z);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));y.appendChild(g);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";y.appendChild(A);mxEvent.addListener(A,"focus",function(){z.checked=!0});e.appendChild(y);var n=n.cloneNode(!1),q=z.cloneNode(!0);q.setAttribute("value",
+"fit");z.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(q);n.appendChild(g);y=document.createElement("table");y.style.display="inline-block";var u=document.createElement("tbody"),I=document.createElement("tr"),F=I.cloneNode(!0),D=document.createElement("td"),G=D.cloneNode(!0),N=D.cloneNode(!0),L=D.cloneNode(!0),M=D.cloneNode(!0),J=D.cloneNode(!0);D.style.textAlign="right";L.style.textAlign=
+"right";mxUtils.write(D,mxResources.get("fitTo"));var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","1");B.setAttribute("min","1");B.setAttribute("type","number");B.style.width="40px";G.appendChild(B);g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsAcross"));N.appendChild(g);mxUtils.write(L,mxResources.get("fitToBy"));var R=B.cloneNode(!0);M.appendChild(R);mxEvent.addListener(B,"focus",function(){q.checked=!0});mxEvent.addListener(R,
+"focus",function(){q.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));J.appendChild(g);I.appendChild(D);I.appendChild(G);I.appendChild(N);F.appendChild(L);F.appendChild(M);F.appendChild(J);u.appendChild(I);u.appendChild(F);y.appendChild(u);n.appendChild(y);e.appendChild(n);n=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));n.appendChild(g);
+g=document.createElement("div");g.style.marginBottom="12px";var K=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));n.appendChild(g);var H=document.createElement("input");H.style.cssText="margin:0 8px 0 8px;";H.setAttribute("value","100 %");H.style.width="60px";n.appendChild(H);e.appendChild(n);g=document.createElement("div");g.style.cssText=
+"text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&g.appendChild(n);a.isOffline()||(y=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),y.className="geBtn",g.appendChild(y));PrintDialog.previewEnabled&&(y=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),y.className="geBtn",g.appendChild(y));y=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?
+"print":"ok"),function(){a.hideDialog();d(!0)});y.className="geBtn gePrimaryBtn";g.appendChild(y);a.editor.cancelFirst||g.appendChild(n);e.appendChild(g);this.container=e};var I=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&
+(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(I.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),
+this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var R=document.createElement("canvas"),N=new Image;N.onload=function(){try{R.getContext("2d").drawImage(N,0,0);var a=R.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(B){}};N.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(n){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.9";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
-null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&
-!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,
-topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,d,e,k,p,u){p=null!=p?p:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&
-null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";k=null!=k?k:Error(a);(new Image).src=c+"/log?severity="+p+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=e?":colno:"+encodeURIComponent(e):"")+(null!=k&&null!=k.stack?"&stack="+encodeURIComponent(k.stack):"")}}catch(F){}try{u||null==window.console||
-console.error(p,a,b,d,e,k)}catch(F){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.sendReport=function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>
-b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(g){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)null!=arguments[b]&&a.push(arguments[b]);console.log.apply(console,a)}}catch(g){}};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,
-e)}function f(a){a=c(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.removeChildNodes=function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
-EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.10";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
+!mxClient.IS_OP&&!EditorUi.isElectronApp&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,
+messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,d,e,p,t,v){t=null!=t?t:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
+"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";p=null!=p?p:Error(a);(new Image).src=c+"/log?severity="+t+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=e?":colno:"+
+encodeURIComponent(e):"")+(null!=p&&null!=p.stack?"&stack="+encodeURIComponent(p.stack):"")}}catch(F){}try{v||null==window.console||console.error(t,a,b,d,e,p)}catch(F){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.sendReport=
+function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(g){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)null!=arguments[b]&&a.push(arguments[b]);
+console.log.apply(console,a)}}catch(g){}};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,e)}function f(a){a=c(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.removeChildNodes=
+function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.maxTextWidth=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.maxTextBytes=5E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.insertTemplateEnabled=!0;EditorUi.prototype.closableScratchpad=
-!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(k){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&6<a.length}catch(p){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(k){}try{b=
-document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(k){}})();EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);
+!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(p){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&6<a.length}catch(t){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(p){}try{b=
+document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(p){}})();EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);
b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(a){return this.isOfflineApp()||!navigator.onLine||!a&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};
EditorUi.prototype.createSpinner=function(a,b,d){var c=null==a||null==b;d=null!=d?d:24;var f=new Spinner({lines:12,length:d,width:Math.round(d/3),radius:Math.round(d/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=f.spin;f.spin=function(d,g){var k=!1;this.active||(e.call(this,d),this.active=!0,null!=g&&(c&&(b=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,a=document.body.clientWidth/2-2),k=document.createElement("div"),
k.style.position="absolute",k.style.whiteSpace="nowrap",k.style.background="#4B4243",k.style.color="white",k.style.fontFamily="Helvetica, Arial",k.style.fontSize="9pt",k.style.padding="6px",k.style.paddingLeft="10px",k.style.paddingRight="10px",k.style.zIndex=2E9,k.style.left=Math.max(0,a)+"px",k.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(k.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(k.style,
"boxShadow","2px 2px 3px 0px #ddd"),"..."!=g.substring(g.length-3,g.length)&&"!"!=g.charAt(g.length-1)&&(g+="..."),k.innerHTML=g,d.appendChild(k),f.status=k),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(d,g)}));this.stop();return a}),k=!0);return k};var g=f.stop;f.stop=function(){g.call(this);this.active=!1;null!=f.status&&null!=f.status.parentNode&&f.status.parentNode.removeChild(f.status);f.status=null};f.pause=function(){return function(){}};
-return f};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(m){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&
+return f};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(k){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&
3==a.charCodeAt(2)&&4==a.charCodeAt(3)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&3==a.charCodeAt(2)&&6==a.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||60==a.charCodeAt(0)&&63==a.charCodeAt(1)&&120==a.charCodeAt(2)&&109==a.charCodeAt(3)&&108==a.charCodeAt(3))};EditorUi.prototype.isPngData=
-function(a){return 8<a.length&&137==a.charCodeAt(0)&&80==a.charCodeAt(1)&&78==a.charCodeAt(2)&&71==a.charCodeAt(3)&&13==a.charCodeAt(4)&&10==a.charCodeAt(5)&&26==a.charCodeAt(6)&&10==a.charCodeAt(7)};var a=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(c){var b=a.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var d=b.getFunction,e=this.editor.graph,k=this;b.getFunction=function(a){if(e.isSelectionEmpty()&&null!=k.pages&&0<k.pages.length){var c=
-k.getSelectedPageIndex();if(mxEvent.isShiftDown(a)){if(37==a.keyCode)return function(){0<c&&k.movePage(c,c-1)};if(38==a.keyCode)return function(){0<c&&k.movePage(c,0)};if(39==a.keyCode)return function(){c<k.pages.length-1&&k.movePage(c,c+1)};if(40==a.keyCode)return function(){c<k.pages.length-1&&k.movePage(c,k.pages.length-1)}}else if(mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)){if(37==a.keyCode)return function(){0<c&&k.selectNextPage(!1)};if(38==a.keyCode)return function(){0<
-c&&k.selectPage(k.pages[0])};if(39==a.keyCode)return function(){c<k.pages.length-1&&k.selectNextPage(!0)};if(40==a.keyCode)return function(){c<k.pages.length-1&&k.selectPage(k.pages[k.pages.length-1])}}}return d.apply(this,arguments)}}return b};var b=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var c=b.apply(this,arguments);if(null==c)try{var d=a.indexOf("&lt;mxfile ");if(0<=d){var e=a.lastIndexOf("&lt;/mxfile&gt;");e>d&&(c=a.substring(d,e+
-15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var k=mxUtils.parseXml(a),p=this.editor.extractGraphModel(k.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=p?mxUtils.getXml(p):""}catch(u){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length));a=Graph.zapGremlins(a)}return a};
+function(a){return 8<a.length&&137==a.charCodeAt(0)&&80==a.charCodeAt(1)&&78==a.charCodeAt(2)&&71==a.charCodeAt(3)&&13==a.charCodeAt(4)&&10==a.charCodeAt(5)&&26==a.charCodeAt(6)&&10==a.charCodeAt(7)};var a=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(c){var b=a.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var d=b.getFunction,e=this.editor.graph,p=this;b.getFunction=function(a){if(e.isSelectionEmpty()&&null!=p.pages&&0<p.pages.length){var c=
+p.getSelectedPageIndex();if(mxEvent.isShiftDown(a)){if(37==a.keyCode)return function(){0<c&&p.movePage(c,c-1)};if(38==a.keyCode)return function(){0<c&&p.movePage(c,0)};if(39==a.keyCode)return function(){c<p.pages.length-1&&p.movePage(c,c+1)};if(40==a.keyCode)return function(){c<p.pages.length-1&&p.movePage(c,p.pages.length-1)}}else if(mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)){if(37==a.keyCode)return function(){0<c&&p.selectNextPage(!1)};if(38==a.keyCode)return function(){0<
+c&&p.selectPage(p.pages[0])};if(39==a.keyCode)return function(){c<p.pages.length-1&&p.selectNextPage(!0)};if(40==a.keyCode)return function(){c<p.pages.length-1&&p.selectPage(p.pages[p.pages.length-1])}}}return d.apply(this,arguments)}}return b};var b=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var c=b.apply(this,arguments);if(null==c)try{var d=a.indexOf("&lt;mxfile ");if(0<=d){var e=a.lastIndexOf("&lt;/mxfile&gt;");e>d&&(c=a.substring(d,e+
+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var p=mxUtils.parseXml(a),t=this.editor.extractGraphModel(p.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=t?mxUtils.getXml(t):""}catch(v){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length));a=Graph.zapGremlins(a)}return a};
EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate();try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-
-1;0<=e;e--){var p=this.updatePageRoot(new DiagramPage(d[e]));null==p.getName()&&p.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,p,0==e?p:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
-this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,k,p,u,l,n,z,y){b=null!=b?b:this.editor.graph;k=null!=k?k:!1;n=null!=n?n:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){if(y){var m=
-a.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());m.appendChild(a)}else{m=Graph.zapGremlins(mxUtils.getXml(a));g=Graph.compress(m);if(Graph.decompress(g)!=m)return m;m=a.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());mxUtils.setTextContent(m,g)}g=a.ownerDocument.createElement("mxfile");g.appendChild(m)}z?(g=g.cloneNode(!0),g.removeAttribute("modified"),g.removeAttribute("host"),g.removeAttribute("agent"),g.removeAttribute("etag"),g.removeAttribute("userAgent"),
+1;0<=e;e--){var t=this.updatePageRoot(new DiagramPage(d[e]));null==t.getName()&&t.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,t,0==e?t:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
+this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,p,t,v,m,l,y,z){b=null!=b?b:this.editor.graph;p=null!=p?p:!1;l=null!=l?l:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){if(z){var k=
+a.ownerDocument.createElement("diagram");k.setAttribute("id",Editor.guid());k.appendChild(a)}else{k=Graph.zapGremlins(mxUtils.getXml(a));g=Graph.compress(k);if(Graph.decompress(g)!=k)return k;k=a.ownerDocument.createElement("diagram");k.setAttribute("id",Editor.guid());mxUtils.setTextContent(k,g)}g=a.ownerDocument.createElement("mxfile");g.appendChild(k)}y?(g=g.cloneNode(!0),g.removeAttribute("modified"),g.removeAttribute("host"),g.removeAttribute("agent"),g.removeAttribute("etag"),g.removeAttribute("userAgent"),
g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.removeAttribute("userAgent"),g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("pages"),g.removeAttribute("type"),mxClient.IS_CHROMEAPP?g.setAttribute("host","Chrome"):EditorUi.isElectronApp?g.setAttribute("host","Electron"):g.setAttribute("host",window.location.hostname),g.setAttribute("modified",(new Date).toISOString()),g.setAttribute("agent",navigator.appVersion),g.setAttribute("version",
-EditorUi.VERSION),g.setAttribute("etag",Editor.guid()),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a),1<g.getElementsByTagName("diagram").length&&null!=this.pages&&g.setAttribute("pages",this.pages.length));y=y?mxUtils.getPrettyXml(g):mxUtils.getXml(g);if(!p&&!k&&(u||null!=d&&/(\.html)$/i.test(d.getTitle())))y=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(p||!k&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
-App.MODE_BROWSER||(e=null),y=this.getEmbeddedSvg(y,b,e,null,l,n,f);return y};EditorUi.prototype.getXmlFileData=function(a,b,d){a=null!=a?a:!0;b=null!=b?b:!1;d=null!=d?d:!Editor.compressXml;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=function(a){var b=a.getElementsByTagName("mxGraphModel"),b=0<b.length?b[0]:null;null==b&&d?(b=mxUtils.trim(mxUtils.getTextContent(a)),a=a.cloneNode(!1),0<b.length&&(b=Graph.decompress(b),null!=b&&0<b.length&&a.appendChild(mxUtils.parseXml(b).documentElement))):
+EditorUi.VERSION),g.setAttribute("etag",Editor.guid()),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a),1<g.getElementsByTagName("diagram").length&&null!=this.pages&&g.setAttribute("pages",this.pages.length));z=z?mxUtils.getPrettyXml(g):mxUtils.getXml(g);if(!t&&!p&&(v||null!=d&&/(\.html)$/i.test(d.getTitle())))z=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(t||!p&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
+App.MODE_BROWSER||(e=null),z=this.getEmbeddedSvg(z,b,e,null,m,l,f);return z};EditorUi.prototype.getXmlFileData=function(a,b,d){a=null!=a?a:!0;b=null!=b?b:!1;d=null!=d?d:!Editor.compressXml;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=function(a){var b=a.getElementsByTagName("mxGraphModel"),b=0<b.length?b[0]:null;null==b&&d?(b=mxUtils.trim(mxUtils.getTextContent(a)),a=a.cloneNode(!1),0<b.length&&(b=Graph.decompress(b),null!=b&&0<b.length&&a.appendChild(mxUtils.parseXml(b).documentElement))):
null==b||d?a=a.cloneNode(!0):(a=a.cloneNode(!1),mxUtils.setTextContent(a,Graph.compressNode(b)));c.appendChild(a)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(c)),c=this.fileNode.cloneNode(!1),b)a(this.currentPage.node);else for(b=0;b<this.pages.length;b++){if(this.currentPage!=this.pages[b]&&this.pages[b].needsUpdate){var f=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(this.pages[b].root));this.editor.graph.saveViewState(this.pages[b].viewState,
f);EditorUi.removeChildNodes(this.pages[b].node);mxUtils.setTextContent(this.pages[b].node,Graph.compressNode(f));delete this.pages[b].needsUpdate}a(this.pages[b].node)}return c};EditorUi.prototype.anonymizeString=function(a,b){for(var c=[],d=0;d<a.length;d++){var f=a.charAt(d);0<=EditorUi.ignoredAnonymizedChars.indexOf(f)?c.push(f):isNaN(parseInt(f))?f.toLowerCase()!=f?c.push(String.fromCharCode(65+Math.round(25*Math.random()))):f.toUpperCase()!=f?c.push(String.fromCharCode(97+Math.round(25*Math.random()))):
-/\s/.test(f)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var c=0;c<a[EditorUi.DIFF_INSERT].length;c++)try{var b=mxUtils.parseXml(a[EditorUi.DIFF_INSERT][c].data).documentElement.cloneNode(!1);null!=b.getAttribute("name")&&b.setAttribute("name",this.anonymizeString(b.getAttribute("name")));a[EditorUi.DIFF_INSERT][c].data=mxUtils.getXml(b)}catch(p){a[EditorUi.DIFF_INSERT][c].data=
-p.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var e=a[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(c=mxUtils.bind(this,function(a){var c=e.cells[a];if(null!=c){for(var b in c)null!=c[b].value&&(c[b].value="["+c[b].value.length+"]"),null!=c[b].xmlValue&&(c[b].xmlValue="["+c[b].xmlValue.length+"]"),null!=c[b].style&&(c[b].style="["+c[b].style.length+"]"),0==Object.keys(c[b]).length&&delete c[b];0==Object.keys(c).length&&
+/\s/.test(f)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var c=0;c<a[EditorUi.DIFF_INSERT].length;c++)try{var b=mxUtils.parseXml(a[EditorUi.DIFF_INSERT][c].data).documentElement.cloneNode(!1);null!=b.getAttribute("name")&&b.setAttribute("name",this.anonymizeString(b.getAttribute("name")));a[EditorUi.DIFF_INSERT][c].data=mxUtils.getXml(b)}catch(t){a[EditorUi.DIFF_INSERT][c].data=
+t.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var e=a[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(c=mxUtils.bind(this,function(a){var c=e.cells[a];if(null!=c){for(var b in c)null!=c[b].value&&(c[b].value="["+c[b].value.length+"]"),null!=c[b].xmlValue&&(c[b].xmlValue="["+c[b].xmlValue.length+"]"),null!=c[b].style&&(c[b].style="["+c[b].style.length+"]"),0==Object.keys(c[b]).length&&delete c[b];0==Object.keys(c).length&&
delete e.cells[a]}}),c(EditorUi.DIFF_INSERT),c(EditorUi.DIFF_UPDATE),0==Object.keys(e.cells).length&&delete e.cells);0==Object.keys(e).length&&delete a[EditorUi.DIFF_UPDATE][d]}0==Object.keys(a[EditorUi.DIFF_UPDATE]).length&&delete a[EditorUi.DIFF_UPDATE]}return a};EditorUi.prototype.anonymizeAttributes=function(a,b){if(null!=a.attributes)for(var c=0;c<a.attributes.length;c++)"as"!=a.attributes[c].name&&a.setAttribute(a.attributes[c].name,this.anonymizeString(a.attributes[c].value,b));if(null!=a.childNodes)for(c=
0;c<a.childNodes.length;c++)this.anonymizeAttributes(a.childNodes[c],b)};EditorUi.prototype.anonymizeNode=function(a,b){for(var c=a.getElementsByTagName("mxCell"),d=0;d<c.length;d++)null!=c[d].getAttribute("value")&&c[d].setAttribute("value","["+c[d].getAttribute("value").length+"]"),null!=c[d].getAttribute("xmlValue")&&c[d].setAttribute("xmlValue","["+c[d].getAttribute("xmlValue").length+"]"),null!=c[d].getAttribute("style")&&c[d].setAttribute("style","["+c[d].getAttribute("style").length+"]"),null!=
c[d].parentNode&&"root"!=c[d].parentNode.nodeName&&null!=c[d].parentNode.parentNode&&(c[d].setAttribute("id",c[d].parentNode.getAttribute("id")),c[d].parentNode.parentNode.replaceChild(c[d],c[d].parentNode));return a};EditorUi.prototype.synchronizeCurrentFile=function(a){var c=this.getCurrentFile();null!=c&&(c.savingFile?this.handleError({message:mxResources.get("busy")}):!a&&c.invalidChecksum?c.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(c.clearAutosave(),
-this.editor.setStatus(""),a?c.reloadFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)})):c.synchronizeFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,d,e,k,p,u,l,n,z){k=null!=k?k:!0;p=null!=p?p:!1;var c=this.editor.graph;if(b||!a&&null!=n&&/(\.svg)$/i.test(n.getTitle()))if(z=
-!1,null!=c.themes&&"darkTheme"==c.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var f=c.getGlobalVariable,c=this.createTemporaryGraph(c.getStylesheet()),g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}u=null!=u?u:this.getXmlFileData(k,p,z);n=null!=n?n:this.getCurrentFile();a=this.createFileData(u,c,n,window.location.href,a,b,d,e,k,l,z);c!=this.editor.graph&&
-c.container.parentNode.removeChild(c.container);return a};EditorUi.prototype.getHtml=function(a,b,d,e,k,p){p=null!=p?p:!0;var c=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var c=p?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;p=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==k&&(b=this.getBasenames().join(";"),0<b.length&&(f=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",p);a.setAttribute("y0",
-g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=k&&(k=k.replace(/&/g,"&amp;"));a=null!=a?Graph.zapGremlins(mxUtils.getXml(a)):"";e=Graph.compress(a);Graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+
-(null!=k?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==k?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=k?'<meta http-equiv="refresh" content="0;URL=\''+k+"'\"/>\n":"")+"</head>\n<body"+(null==k&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==k?'<script type="text/javascript" src="'+
-f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,d,e,k){b=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=k&&(k=k.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};
-null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=k?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==k?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=k?'<meta http-equiv="refresh" content="0;URL=\''+k+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
-mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==k?'<script type="text/javascript" src="'+b+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
+this.editor.setStatus(""),a?c.reloadFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)})):c.synchronizeFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,d,e,p,t,m,l,q,y){p=null!=p?p:!0;t=null!=t?t:!1;var c=this.editor.graph;if(b||!a&&null!=q&&/(\.svg)$/i.test(q.getTitle()))if(y=
+!1,null!=c.themes&&"darkTheme"==c.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var f=c.getGlobalVariable,c=this.createTemporaryGraph(c.getStylesheet()),g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}m=null!=m?m:this.getXmlFileData(p,t,y);q=null!=q?q:this.getCurrentFile();a=this.createFileData(m,c,q,window.location.href,a,b,d,e,p,l,y);c!=this.editor.graph&&
+c.container.parentNode.removeChild(c.container);return a};EditorUi.prototype.getHtml=function(a,b,d,e,p,t){t=null!=t?t:!0;var c=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var c=t?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;t=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==p&&(b=this.getBasenames().join(";"),0<b.length&&(f=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",t);a.setAttribute("y0",
+g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=p&&(p=p.replace(/&/g,"&amp;"));a=null!=a?Graph.zapGremlins(mxUtils.getXml(a)):"";e=Graph.compress(a);Graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==p?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+
+(null!=p?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==p?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=p?'<meta http-equiv="refresh" content="0;URL=\''+p+"'\"/>\n":"")+"</head>\n<body"+(null==p&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==p?'<script type="text/javascript" src="'+
+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+p+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,d,e,p){b=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=p&&(p=p.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};
+null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==p?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=p?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==p?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=p?'<meta http-equiv="refresh" content="0;URL=\''+p+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==p?'<script type="text/javascript" src="'+b+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+p+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
null;var c=Editor.extractParserError(a,mxResources.get("invalidOrMissingFile"));if(c)throw Error(mxResources.get("notADiagramFile")+" ("+c+")");c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a&&"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name"))){var b=null;this.fileNode=a;this.pages=[];for(var d=0;d<c.length;d++)null==c[d].getAttribute("id")&&c[d].setAttribute("id",d),a=new DiagramPage(c[d]),
null==a.getName()&&a.setName(mxResources.get("pageWithNumber",[d+1])),this.pages.push(a),null!=urlParams["page-id"]&&a.getId()==urlParams["page-id"]&&(b=a);this.currentPage=null!=b?b:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];a=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");a={};for(d=0;d<e.length;d++)a[e[d]]=!0;for(var p=this.editor.graph.getModel(),l=p.getChildren(p.root),d=0;d<l.length;d++){var n=l[d];p.setVisible(n,a[n.id]||!1)}}catch(F){}};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c)||/(\.drawio)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,k,p,l,n,q,z,y){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!k),
-f=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,e,k,null,null,null,b);this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d=this.editor.graph.pageVisible;
-null!=p&&(this.editor.graph.pageVisible=p);var f=this.createDownloadRequest(c,a,e,b,l,k,n,q,z,y);this.editor.graph.pageVisible=d;return f}catch(B){this.handleError(B)}}));else{var m=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var A=this.editor.graph.background;if(l||A==mxConstants.NONE)A=
-null;var t=this.editor.graph.getSvg(A,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(t);this.editor.convertImages(t,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();u('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),e)}}catch(H){this.handleError(H)}};EditorUi.prototype.createDownloadRequest=
-function(a,b,d,e,k,p,l,n,q,z){var c=this.editor.graph,f=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==p?!1:"xmlpng"!=b);var g="",m="";if(f.width*f.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};z=z?"1":"0";"pdf"==b&&0==p&&(m="&allPages=1");if("xmlpng"==b&&(z="1",b="png",null!=this.pages&&null!=this.currentPage))for(p=0;p<this.pages.length;p++)if(this.pages[p]==this.currentPage){g="&from="+p;break}p=c.background;"png"!=b&&"pdf"!=b||!k?k||
-null!=p&&p!=mxConstants.NONE||(p="#ffffff"):p=mxConstants.NONE;k={globalVars:c.getExportVariables()};q&&(k.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+m+"&bg="+(null!=p?p:mxConstants.NONE)+"&base64="+e+"&embedXml="+z+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=l?"&scale="+
-l:"")+(null!=n?"&border="+n:""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,
-mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),m()):this.handleError({message:mxResources.get("error")+
-" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)})):f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||e.warningImage,
-a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var e=this.editor.graph,p=e.getModel();p.beginUpdate();var l=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=p.getCell(a.getAttribute("id"));if(null!=n){try{var q=a.getAttribute("value");if(null!=q){var z=mxUtils.parseXml(q).documentElement;
-if(null!=z)if("1"==z.getAttribute("replace-value"))p.setValue(n,z);else for(var y=z.attributes,t=0;t<y.length;t++)e.setAttributeForCell(n,y[t].nodeName,0<y[t].nodeValue.length?y[t].nodeValue:null)}}catch(X){null!=window.console&&console.log("Error in value for "+n.id+": "+X)}try{var L=a.getAttribute("style");null!=L&&e.model.setStyle(n,L)}catch(X){null!=window.console&&console.log("Error in style for "+n.id+": "+X)}try{var I=a.getAttribute("icon");if(null!=I){var G=0<I.length?JSON.parse(I):null;null!=
-G&&G.append||e.removeCellOverlays(n);null!=G&&e.addCellOverlay(n,c(G))}}catch(X){null!=window.console&&console.log("Error in icon for "+n.id+": "+X)}try{var K=a.getAttribute("geometry");if(null!=K){var K=JSON.parse(K),E=e.getCellGeometry(n);if(null!=E){E=E.clone();for(key in K){var J=parseFloat(K[key]);"dx"==key?E.x+=J:"dy"==key?E.y+=J:"dw"==key?E.width+=J:"dh"==key?E.height+=J:E[key]=parseFloat(K[key])}e.model.setGeometry(n,E)}}}catch(X){null!=window.console&&console.log("Error in icon for "+n.id+
-": "+X)}}}else if("model"==a.nodeName){for(var H=a.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=H.nextSibling;null!=H&&(new mxCodec(a.firstChild)).decode(H,p)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(e.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(l=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
-1);a=a.nextSibling}}finally{p.endUpdate()}null!=l&&this.chromelessResize&&this.chromelessResize(!0,l)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),l=e.getMonth()+1,n=e.getDate(),q=e.getHours(),z=e.getMinutes(),e=e.getSeconds(),c=c+(" "+(f+"-"+l+"-"+n+"-"+q+"-"+z+"-"+e));return c=mxResources.get("copyOf",[c])+d};
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");a={};for(d=0;d<e.length;d++)a[e[d]]=!0;for(var t=this.editor.graph.getModel(),m=t.getChildren(t.root),d=0;d<m.length;d++){var l=m[d];t.setVisible(l,a[l.id]||!1)}}catch(F){}};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():
+this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c)||/(\.drawio)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,p,t,m,l,q,y,z){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!p),
+f=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,e,p,null,null,null,b);this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d=this.editor.graph.pageVisible;
+null!=t&&(this.editor.graph.pageVisible=t);var f=this.createDownloadRequest(c,a,e,b,m,p,l,q,y,z);this.editor.graph.pageVisible=d;return f}catch(B){this.handleError(B)}}));else{var k=null,v=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(k)}))});if("svg"==a){var A=this.editor.graph.background;if(m||A==mxConstants.NONE)A=
+null;var u=this.editor.graph.getSvg(A,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(u);this.editor.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();v('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",k=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();v(a)}),e)}}catch(I){this.handleError(I)}};EditorUi.prototype.createDownloadRequest=
+function(a,b,d,e,p,t,m,l,q,y){var c=this.editor.graph,f=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==t?!1:"xmlpng"!=b);var g="",k="";if(f.width*f.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};y=y?"1":"0";"pdf"==b&&0==t&&(k="&allPages=1");if("xmlpng"==b&&(y="1",b="png",null!=this.pages&&null!=this.currentPage))for(t=0;t<this.pages.length;t++)if(this.pages[t]==this.currentPage){g="&from="+t;break}t=c.background;"png"!=b&&"pdf"!=b||!p?p||
+null!=t&&t!=mxConstants.NONE||(t="#ffffff"):t=mxConstants.NONE;p={globalVars:c.getExportVariables()};q&&(p.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(p.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+k+"&bg="+(null!=t?t:mxConstants.NONE)+"&base64="+e+"&embedXml="+y+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(p))+(null!=m?"&scale="+
+m:"")+(null!=l?"&border="+l:""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,
+mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),p()):this.handleError({message:mxResources.get("error")+
+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),p=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){p();k()}));p();k()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)})):f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||e.warningImage,
+a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var e=this.editor.graph,t=e.getModel();t.beginUpdate();var m=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var l=t.getCell(a.getAttribute("id"));if(null!=l){try{var q=a.getAttribute("value");if(null!=q){var y=mxUtils.parseXml(q).documentElement;
+if(null!=y)if("1"==y.getAttribute("replace-value"))t.setValue(l,y);else for(var z=y.attributes,u=0;u<z.length;u++)e.setAttributeForCell(l,z[u].nodeName,0<z[u].nodeValue.length?z[u].nodeValue:null)}}catch(R){null!=window.console&&console.log("Error in value for "+l.id+": "+R)}try{var M=a.getAttribute("style");null!=M&&e.model.setStyle(l,M)}catch(R){null!=window.console&&console.log("Error in style for "+l.id+": "+R)}try{var G=a.getAttribute("icon");if(null!=G){var J=0<G.length?JSON.parse(G):null;null!=
+J&&J.append||e.removeCellOverlays(l);null!=J&&e.addCellOverlay(l,c(J))}}catch(R){null!=window.console&&console.log("Error in icon for "+l.id+": "+R)}try{var H=a.getAttribute("geometry");if(null!=H){var H=JSON.parse(H),D=e.getCellGeometry(l);if(null!=D){D=D.clone();for(key in H){var K=parseFloat(H[key]);"dx"==key?D.x+=K:"dy"==key?D.y+=K:"dw"==key?D.width+=K:"dh"==key?D.height+=K:D[key]=parseFloat(H[key])}e.model.setGeometry(l,D)}}}catch(R){null!=window.console&&console.log("Error in icon for "+l.id+
+": "+R)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=I&&(new mxCodec(a.firstChild)).decode(I,t)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(e.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(m=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
+1);a=a.nextSibling}}finally{t.endUpdate()}null!=m&&this.chromelessResize&&this.chromelessResize(!0,m)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),m=e.getMonth()+1,l=e.getDate(),q=e.getHours(),y=e.getMinutes(),e=e.getSeconds(),c=c+(" "+(f+"-"+m+"-"+l+"-"+q+"-"+y+"-"+e));return c=mxResources.get("copyOf",[c])+d};
EditorUi.prototype.fileLoaded=function(a,b){var c=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var d=!1;this.hideDialog();null!=c&&(EditorUi.debug("File.closed",[c]),c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var f=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
this.setBackgroundImage(null);!b&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();b||this.showSplash()});if(null!=a)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);
a.addListener("contentChanged",this.descriptorChangedListener);a.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();a.isEditable()?a.isModified()?(a.addUnsavedStatus(),null!=a.backupPatch&&a.patch([a.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+
"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||EditorUi.logEvent({category:a.getMode().toUpperCase()+"-OPEN-FILE-"+a.getHash(),action:"size_"+a.getSize(),
-label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[a]);if(this.editor.editable&&this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(u){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(u){}}catch(u){this.fileLoadedError=u;if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=a?a.getHash():
-"none"),action:"message_"+u.message,label:"stack_"+u.stack})}catch(A){}var e=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?this.fileLoaded(c):f()});b?e():this.handleError(u,mxResources.get("errorLoadingFile"),e,!0,null,null,!0)}else f();return d};EditorUi.prototype.getHashValueForPages=function(a,b){var c=0,d=new mxGraphModel,f=new mxCodec;null!=b&&(b.byteCount=0,b.attrCount=
-0,b.eltCount=0,b.nodeCount=0);for(var e=0;e<a.length;e++){this.updatePageRoot(a[e]);var l=a[e].node.cloneNode(!1);l.removeAttribute("name");d.root=a[e].root;var n=f.encode(d);this.editor.graph.saveViewState(a[e].viewState,n,!0);n.removeAttribute("pageWidth");n.removeAttribute("pageHeight");l.appendChild(n);null!=b&&(b.eltCount+=l.getElementsByTagName("*").length,b.nodeCount+=l.getElementsByTagName("mxCell").length);c=(c<<5)-c+this.hashValue(l,function(a,c,b,d){return!d||"mxGeometry"!=a.nodeName&&
+label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[a]);if(this.editor.editable&&this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(v){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(v){}}catch(v){this.fileLoadedError=v;if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=a?a.getHash():
+"none"),action:"message_"+v.message,label:"stack_"+v.stack})}catch(A){}var e=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?this.fileLoaded(c):f()});b?e():this.handleError(v,mxResources.get("errorLoadingFile"),e,!0,null,null,!0)}else f();return d};EditorUi.prototype.getHashValueForPages=function(a,b){var c=0,d=new mxGraphModel,f=new mxCodec;null!=b&&(b.byteCount=0,b.attrCount=
+0,b.eltCount=0,b.nodeCount=0);for(var e=0;e<a.length;e++){this.updatePageRoot(a[e]);var m=a[e].node.cloneNode(!1);m.removeAttribute("name");d.root=a[e].root;var l=f.encode(d);this.editor.graph.saveViewState(a[e].viewState,l,!0);l.removeAttribute("pageWidth");l.removeAttribute("pageHeight");m.appendChild(l);null!=b&&(b.eltCount+=m.getElementsByTagName("*").length,b.nodeCount+=m.getElementsByTagName("mxCell").length);c=(c<<5)-c+this.hashValue(m,function(a,c,b,d){return!d||"mxGeometry"!=a.nodeName&&
"mxPoint"!=a.nodeName||"x"!=c&&"y"!=c&&"width"!=c&&"height"!=c?d&&"mxCell"==a.nodeName&&"previous"==c?null:b:Math.round(b)},b)<<0}return c};EditorUi.prototype.hashValue=function(a,b,d){var c=0;if(null!=a&&"object"===typeof a&&"number"===typeof a.nodeType&&"string"===typeof a.nodeName&&"function"===typeof a.getAttribute){null!=a.nodeName&&(c^=this.hashValue(a.nodeName,b,d));if(null!=a.attributes){null!=d&&(d.attrCount+=a.attributes.length);for(var f=0;f<a.attributes.length;f++){var e=a.attributes[f].name,
g=null!=b?b(a,e,a.attributes[f].value,!0):a.attributes[f].value;null!=g&&(c^=this.hashValue(e,b,d)+this.hashValue(g,b,d))}}if(null!=a.childNodes)for(f=0;f<a.childNodes.length;f++)c=(c<<5)-c+this.hashValue(a.childNodes[f],b,d)<<0}else if(null!=a&&"function"!==typeof a){a=String(a);b=0;null!=d&&(d.byteCount+=a.length);for(f=0;f<a.length;f++)b=(b<<5)-b+a.charCodeAt(f)<<0;c^=b}return c};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=
-function(a,b,d,e,k,p,l){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),
+function(a,b,d,e,p,t,m){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),
b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};
EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a,b){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var d=JSON.parse(mxUtils.getTextContent(c.documentElement));
this.libraryLoaded(a,d,c.documentElement.getAttribute("title"),b)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,d,e){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=
-null,g=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);d=null!=d&&0<d.length?d:a.getTitle();var m=this.sidebar.addPalette(a.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(a){g(b,a)}));this.repositionLibrary(c);var l=m.parentNode.previousSibling;e=l.getAttribute("title");
-null!=e&&0<e.length&&".scratchpad"!=a.title&&l.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+e);var n=document.createElement("div");n.style.position="absolute";n.style.right="0px";n.style.top="0px";n.style.padding="8px";n.style.backgroundColor="inherit";l.style.position="relative";var y=document.createElement("img");y.setAttribute("src",Dialog.prototype.closeImage);y.setAttribute("title",mxResources.get("close"));y.setAttribute("valign","absmiddle");y.setAttribute("border","0");y.style.cursor=
-"pointer";y.style.margin="0 3px";var q=null;if(".scratchpad"!=a.title||this.closableScratchpad)n.appendChild(y),mxEvent.addListener(y,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var t=this.editor.graph,I=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
-m,b,a,a.getMode());mxEvent.consume(c)}),K=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=I&&null!=I.parentNode&&I.parentNode.removeChild(I),I=y.cloneNode(!1),I.setAttribute("src",Editor.spinImage),I.setAttribute("title",mxResources.get("saving")),I.style.cursor="default",I.style.marginRight="2px",I.style.marginTop="-2px",n.insertBefore(I,n.firstChild),l.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=I&&null!=
-I.parentNode&&(I.parentNode.removeChild(I),l.style.paddingRight=18*n.childNodes.length+"px")})):null==q&&(q=y.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",mxResources.get("save")),n.insertBefore(q,n.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||(l.style.paddingRight=18*n.childNodes.length+"px",q.parentNode.removeChild(q),
-q=null)});mxEvent.consume(c)})),l.style.paddingRight=18*n.childNodes.length+"px")}),E=mxUtils.bind(this,function(a,c,d,e){a=t.cloneCells(mxUtils.sortCells(t.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var k=t.getCellGeometry(a[g]);null!=k&&k.translate(-c.x,-c.y)}m.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);K(d);null!=
-f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),J=mxUtils.bind(this,function(a){if(t.isSelectionEmpty())t.getRubberband().isActive()?(t.getRubberband().execute(a),t.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=t.getSelectionCells(),b=t.view.getBounds(c),d=t.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=t.view.translate.x;b.y-=t.view.translate.y;E(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(m,
-function(){},mxUtils.bind(this,function(a){t.isMouseDown&&null!=t.panningManager&&null!=t.graphHandler.first&&(t.graphHandler.suspend(),null!=t.graphHandler.hint&&(t.graphHandler.hint.style.visibility="hidden"),m.style.backgroundColor="#f1f3f4",m.style.cursor="copy",t.panningManager.stop(),t.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){t.isMouseDown&&null!=t.panningManager&&null!=t.graphHandler&&(m.style.backgroundColor="",m.style.cursor="default",this.sidebar.showTooltips=!0,
-t.panningManager.stop(),t.graphHandler.reset(),t.isMouseDown=!1,t.autoScroll=!0,J(a),mxEvent.consume(a))}));mxEvent.addListener(m,"mouseleave",mxUtils.bind(this,function(a){t.isMouseDown&&null!=t.graphHandler.first&&(t.graphHandler.resume(),null!=t.graphHandler.hint&&(t.graphHandler.hint.style.visibility="visible"),m.style.backgroundColor="",m.style.cursor="",t.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(m,"dragover",mxUtils.bind(this,function(a){m.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
-"copy";m.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(m,"drop",mxUtils.bind(this,function(a){m.style.cursor="";m.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,e,k,p,l,n,u,y){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
-new mxGeometry(0,0,p,l),c)],c[0].vertex=!0,E(c,new mxRectangle(0,0,p,l),a,mxEvent.isAltDown(a)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var z=!1,q=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(c);null!=e&&0<e.length&&(c=e)}if(null!=c)if(e=mxUtils.parseXml(c),"mxlibrary"==e.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(e.documentElement));
-g(k,m);b=b.concat(k);K(a);this.spinner.stop();z=!0}catch(V){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),k=0;k<p.length;k++){var l=this.stringToCells(Editor.getDiagramNodeXml(p[k])),n=this.editor.graph.getBoundingBoxFromGeometry(l);E(l,new mxRectangle(0,0,n.width,n.height),a)}z=!0}catch(V){null!=window.console&&console.log("error in drop handler:",V)}z||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
-null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=y&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(y,function(a){q(a,"text/xml")},null,n):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,n)&&null!=y?this.parseFile(y,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?q(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?
-"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):q(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(m,"dragleave",function(a){m.style.cursor="";m.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));y=y.cloneNode(!1);y.setAttribute("src",Editor.editImage);y.setAttribute("title",mxResources.get("edit"));n.insertBefore(y,n.firstChild);mxEvent.addListener(y,"click",G);mxEvent.addListener(m,"dblclick",function(a){mxEvent.getSource(a)==
-m&&G(a)});e=y.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));n.insertBefore(e,n.firstChild);mxEvent.addListener(e,"click",J);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
-mxEvent.consume(a)})),n.insertBefore(e,n.firstChild))}l.appendChild(n);l.style.paddingRight=18*n.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+"image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(Graph.decompress(d.xml)),
+null,g=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);d=null!=d&&0<d.length?d:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(a){g(b,a)}));this.repositionLibrary(c);var m=k.parentNode.previousSibling;e=m.getAttribute("title");
+null!=e&&0<e.length&&".scratchpad"!=a.title&&m.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+e);var l=document.createElement("div");l.style.position="absolute";l.style.right="0px";l.style.top="0px";l.style.padding="8px";l.style.backgroundColor="inherit";m.style.position="relative";var z=document.createElement("img");z.setAttribute("src",Dialog.prototype.closeImage);z.setAttribute("title",mxResources.get("close"));z.setAttribute("valign","absmiddle");z.setAttribute("border","0");z.style.cursor=
+"pointer";z.style.margin="0 3px";var q=null;if(".scratchpad"!=a.title||this.closableScratchpad)l.appendChild(z),mxEvent.addListener(z,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var u=this.editor.graph,G=null,J=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
+k,b,a,a.getMode());mxEvent.consume(c)}),H=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=G&&null!=G.parentNode&&G.parentNode.removeChild(G),G=z.cloneNode(!1),G.setAttribute("src",Editor.spinImage),G.setAttribute("title",mxResources.get("saving")),G.style.cursor="default",G.style.marginRight="2px",G.style.marginTop="-2px",l.insertBefore(G,l.firstChild),m.style.paddingRight=18*l.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=G&&null!=
+G.parentNode&&(G.parentNode.removeChild(G),m.style.paddingRight=18*l.childNodes.length+"px")})):null==q&&(q=z.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",mxResources.get("save")),l.insertBefore(q,l.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||(m.style.paddingRight=18*l.childNodes.length+"px",q.parentNode.removeChild(q),
+q=null)});mxEvent.consume(c)})),m.style.paddingRight=18*l.childNodes.length+"px")}),D=mxUtils.bind(this,function(a,c,d,e){a=u.cloneCells(mxUtils.sortCells(u.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var p=u.getCellGeometry(a[g]);null!=p&&p.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);H(d);null!=
+f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=mxUtils.bind(this,function(a){if(u.isSelectionEmpty())u.getRubberband().isActive()?(u.getRubberband().execute(a),u.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=u.getSelectionCells(),b=u.view.getBounds(c),d=u.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=u.view.translate.x;b.y-=u.view.translate.y;D(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(k,
+function(){},mxUtils.bind(this,function(a){u.isMouseDown&&null!=u.panningManager&&null!=u.graphHandler.first&&(u.graphHandler.suspend(),null!=u.graphHandler.hint&&(u.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",u.panningManager.stop(),u.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){u.isMouseDown&&null!=u.panningManager&&null!=u.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,
+u.panningManager.stop(),u.graphHandler.reset(),u.isMouseDown=!1,u.autoScroll=!0,K(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){u.isMouseDown&&null!=u.graphHandler.first&&(u.graphHandler.resume(),null!=u.graphHandler.hint&&(u.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",u.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){k.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
+"copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.cursor="";k.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,e,p,t,m,l,v,y){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
+new mxGeometry(0,0,t,m),c)],c[0].vertex=!0,D(c,new mxRectangle(0,0,t,m),a,mxEvent.isAltDown(a)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var n=!1,z=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(c);null!=e&&0<e.length&&(c=e)}if(null!=c)if(e=mxUtils.parseXml(c),"mxlibrary"==e.documentElement.nodeName)try{var p=JSON.parse(mxUtils.getTextContent(e.documentElement));
+g(p,k);b=b.concat(p);H(a);this.spinner.stop();n=!0}catch(V){}else if("mxfile"==e.documentElement.nodeName)try{for(var t=e.documentElement.getElementsByTagName("diagram"),p=0;p<t.length;p++){var m=this.stringToCells(Editor.getDiagramNodeXml(t[p])),l=this.editor.graph.getBoundingBoxFromGeometry(m);D(m,new mxRectangle(0,0,l.width,l.height),a)}n=!0}catch(V){null!=window.console&&console.log("error in drop handler:",V)}n||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=y&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?this.importVisio(y,function(a){z(a,"text/xml")},null,l):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,l)&&null!=y?this.parseFile(y,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?z(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?
+"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):z(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){k.style.cursor="";k.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));z=z.cloneNode(!1);z.setAttribute("src",Editor.editImage);z.setAttribute("title",mxResources.get("edit"));l.insertBefore(z,l.firstChild);mxEvent.addListener(z,"click",J);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==
+k&&J(a)});e=z.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));l.insertBefore(e,l.firstChild);mxEvent.addListener(e,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
+mxEvent.consume(a)})),l.insertBefore(e,l.firstChild))}m.appendChild(l);m.style.paddingRight=18*l.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+"image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(Graph.decompress(d.xml)),
0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
"#2a2a2a",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";"1"==urlParams.sketch&&(Menus.prototype.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},
{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(Menus.prototype.defaultFonts),Graph.prototype.defaultVertexStyle={fontFamily:Editor.sketchFontFamily,fontSize:"20",fontSource:Editor.sketchFontSource,pointerEvents:"0",sketch:"0"==urlParams.rough?"0":"1",hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",endArrow:"open",startSize:"14",endSize:"14",fontFamily:Editor.sketchFontFamily,
-fontSize:"20",fontSource:Editor.sketchFontSource,sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8",sketch:"0"==urlParams.rough?"0":"1"},Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,k){a=new ImageDialog(this,a,b,d,e,k);
-this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,k){a=new LibraryDialog(this,a,b,d,e,k);this.showDialog(a.container,
+fontSize:"20",fontSource:Editor.sketchFontSource,sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8",sketch:"0"==urlParams.rough?"0":"1"},Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,p){a=new ImageDialog(this,a,b,d,e,p);
+this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,p){a=new LibraryDialog(this,a,b,d,e,p);this.showDialog(a.container,
640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var c=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&c.refresh()}));return c};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");
a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();
-mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,k,p,l){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&null!=a.message)try{l?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(I){}if(null!=f||null!=b){l=mxUtils.htmlEntities(mxResources.get("unknownError"));
-var g=mxResources.get("ok"),m=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),m=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){l=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=k?k:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var n=
-null!=k?null:null!=p?p:window.location.hash;if(null!=n&&("#G"==n.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==n.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){n="#U"==n.substring(0,2)?n.substring(45,n.lastIndexOf("%26ex")):n.substring(2);this.showError(b,l,mxResources.get("openInNewWindow"),
-mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+n);this.handleError(a,b,d,e,k)}),m,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=
+mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,p,t,m){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&null!=a.message)try{m?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(G){}if(null!=f||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));
+var g=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),k=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){m=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=p?p:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var l=
+null!=p?null:null!=t?t:window.location.hash;if(null!=l&&("#G"==l.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==l.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){l="#U"==l.substring(0,2)?l.substring(45,l.lastIndexOf("%26ex")):l.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),
+mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+l);this.handleError(a,b,d,e,p)}),k,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=
document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=c.length;f.appendChild(b)}var c=this.drive.getUsersList(),b=document.createElement("div"),d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+": ");b.appendChild(d);var f=document.createElement("select");f.style.width="200px";a();mxEvent.addListener(f,"change",mxUtils.bind(this,function(){var b=f.value,d=c.length!=b;d&&this.drive.setUser(c[b]);this.drive.authorize(d,
-mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?l=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):
-null!=f.response&&null!=f.response.error?l=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?l=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?l=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(l=mxUtils.htmlEntities(f)))}var u=p=null;null!=f&&null!=f.helpLink&&(p=mxResources.get("help"),u=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,l,g,d,m,null,
-null,p,u,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,k,p){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,k,null,null,null,null,f);this.showDialog(a.container,
-340,46+f,!0,p);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");
+mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?m=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):
+null!=f.response&&null!=f.response.error?m=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(m=mxUtils.htmlEntities(f)))}var v=t=null;null!=f&&null!=f.helpLink&&(t=mxResources.get("help"),v=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,m,g,d,k,null,
+null,t,v,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,p,t){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,p,null,null,null,null,f);this.showDialog(a.container,
+340,46+f,!0,t);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");
mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";c=document.createElement("img");c.setAttribute("src",IMAGE_PATH+"/logo.png");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(c);c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",
mxResources.get(e?"doNotShowAgain":"close"));c.setAttribute("border","0");c.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";f.appendChild(c);mxUtils.write(f,b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight=
-"6px";if(!e){b.appendChild(g);var m=document.createElement("label");m.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(m,mxResources.get("doNotShowAgain"));b.appendChild(m);f.style.paddingBottom="30px";f.appendChild(b)}var l=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,
-"click",mxUtils.bind(this,function(a){mxEvent.consume(a);l()}));var n=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){l()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=m?(null!=d&&d(),l(),mxEvent.consume(a)):n()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(n,
+"6px";if(!e){b.appendChild(g);var k=document.createElement("label");k.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(k,mxResources.get("doNotShowAgain"));b.appendChild(k);f.style.paddingBottom="30px";f.appendChild(b)}var m=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,
+"click",mxUtils.bind(this,function(a){mxEvent.consume(a);m()}));var l=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){m()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=k?(null!=d&&d(),m(),mxEvent.consume(a)):l()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(l,
3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,d,e){a=a.toDataURL("image/"+d);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<e&&(a=Editor.writeGraphModelToPng(a,"pHYs",
-"dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,k){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,k);this.saveData(e,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||
-this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,k,p){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+
-"."+(null!=p?p:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");
-p=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);p=65==(f?parseInt(f[2],10):!1)?!1:p}if(p||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));p?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),
-c.parentNode.removeChild(c)}catch(F){}}else this.createEchoRequest(a,b,d,e,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,k,p){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=k?"&format="+k:"")+(null!=p?"&base64="+p:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),l=0;l<f;++l){for(var n=
-1024*l,q=Math.min(n+1024,d),z=Array(q-n),y=0;n<q;++y,++n)z[y]=c[n].charCodeAt(0);e[l]=new Uint8Array(z)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,k,p,l,n){p=null!=p?p:!1;l=null!=l?l:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(p);isLocalStorage&&k++;var c=4>=k?2:6<k?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==
-d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,n):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(G){this.handleError(G)}}))}catch(I){this.handleError(I)}}),mxUtils.bind(this,
-function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,p,l,null,1<k,c,a,d,e);p=this.isServices(k)?k>c?390:270:160;this.showDialog(b.container,400,p,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+
+"dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,p){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,p);this.saveData(e,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||
+this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,p,t){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+
+"."+(null!=t?t:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");
+t=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);t=65==(f?parseInt(f[2],10):!1)?!1:t}if(t||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));t?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),
+c.parentNode.removeChild(c)}catch(F){}}else this.createEchoRequest(a,b,d,e,p).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,p,t){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=p?"&format="+p:"")+(null!=t?"&base64="+t:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var l=
+1024*m,q=Math.min(l+1024,d),y=Array(q-l),z=0;l<q;++z,++l)y[z]=c[l].charCodeAt(0);e[m]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,p,m,l,q){m=null!=m?m:!1;l=null!=l?l:"vsdx"!=p&&(!mxClient.IS_IOS||!navigator.standalone);p=this.getServiceCount(m);isLocalStorage&&p++;var c=4>=p?2:6<p?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==
+d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,q):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(J){this.handleError(J)}}))}catch(G){this.handleError(G)}}),mxUtils.bind(this,
+function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,m,l,null,1<p,c,a,d,e);m=this.isServices(p)?p>c?390:270:160;this.showDialog(b.container,400,m,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+
b+";base64,"+a+'"/></html>')):c.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
"4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
this.editor.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,
-arguments)};EditorUi.prototype.saveData=function(a,b,d,e,k){this.isLocalFileSave()?this.saveLocalFile(d,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,k,b,c)}),d,k,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,k,p,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
-c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){p=null!=p?p:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,p,!0,c,d)}catch(I){this.handleError(I)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),
-a,p,!0,c,d)}catch(I){this.handleError(I)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,l,null,1<c,f,e,p,k);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,d,e,k,p){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,k,p,l,n,q,z,y,t){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=y?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,l,n,null,d,null,null,"blank"==
-z?"_blank":"self"==z?"_top":null,null,!0,y,t);e&&this.editor.graph.addSvgShadow(g);var m=this.getBaseFilename()+".svg",u=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,q,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",c,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);p?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,u,this.thumbImageCache)):u(g)}catch(J){this.handleError(J)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,k,p,l){return this.addCheckbox(a,d,e,k,p,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,
-b,d,e,k,p,l,n){p=null!=p?p:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");l="geCheckbox-"+Editor.guid();c.id=l;null!=n&&c.setAttribute("name",n);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");p&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",l),a.appendChild(d),k||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
+arguments)};EditorUi.prototype.saveData=function(a,b,d,e,p){this.isLocalFileSave()?this.saveLocalFile(d,a,e,p,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,p,b,c)}),d,p,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,p,m,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
+c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){m=null!=m?m:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,m,!0,c,d)}catch(G){this.handleError(G)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),
+a,m,!0,c,d)}catch(G){this.handleError(G)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,l,null,1<c,f,e,m,p);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
+EditorUi.prototype.exportFile=function(a,b,d,e,p,m){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,p,m,l,q,u,y,z,L){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=z?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,l,q,null,d,null,null,"blank"==
+y?"_blank":"self"==y?"_top":null,null,!0,z,L);e&&this.editor.graph.addSvgShadow(g);var k=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();p&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,u,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",c,"image/svg+xml"):
+this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(K){this.handleError(K)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,p,m,l){return this.addCheckbox(a,d,e,p,m,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,
+b,d,e,p,m,l,q){m=null!=m?m:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");l="geCheckbox-"+Editor.guid();c.id=l;null!=q&&c.setAttribute("name",q);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");m&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",l),a.appendChild(d),p||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");
d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
-b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){l.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
+b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",l=null,l=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();l.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";l.style.marginLeft="4px";l.style.height="22px";l.style.width="22px";l.style.position="relative";l.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";l.className="geColorBtn";a.appendChild(l);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,k,p,l){l=null!=l?l:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||l.push("lightbox=1"),"auto"!=a&&l.push("target="+a),null!=b&&b!=mxConstants.NONE&&l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=k&&0<k.length&&l.push("edit="+encodeURIComponent(k)),p&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&l.push("page-id="+this.currentPage.getId());return l};EditorUi.prototype.createLink=function(a,b,d,e,k,p,l,n,q,z){q=this.createUrlParameters(a,
-b,d,e,k,p,q);a=this.getCurrentFile();b=!0;null!=l?d="#U"+encodeURIComponent(l):(a=this.getCurrentFile(),n||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&q.push("title="+encodeURIComponent(a.getTitle()));z&&1<d.length&&(q.push("open="+d.substring(1)),d="");return(e&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<q.length?"?"+q.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,k,p,l,n,q,z,y){this.getBasenames();var c={};""!=k&&k!=mxConstants.NONE&&(c.highlight=k);"auto"!==e&&(c.target=e);q||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),
-c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);n&&d.push("layers");0<d.length&&(q&&d.push("lightbox"),c.toolbar=d.join(" "));null!=z&&0<z.length&&(c.edit=z);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(p?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
-encodeURIComponent(a):"";y(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
-mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","type-embedhtmldialog");f=m.cloneNode(!0);f.setAttribute("value",
-"copy");g.appendChild(f);var l=document.createElement("span");mxUtils.write(l,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(l);mxUtils.br(g);g.appendChild(m);l=document.createElement("span");mxUtils.write(l,mxResources.get("publicDiagramUrl"));g.appendChild(l);var n=this.getCurrentFile();null==d&&null!=n&&n.constructor==window.DriveFile&&(l=document.createElement("a"),l.style.paddingLeft="12px",l.style.color="gray",l.style.cursor="pointer",mxUtils.write(l,mxResources.get("share")),g.appendChild(l),
-mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));f.setAttribute("checked","checked");null==d&&m.setAttribute("disabled","disabled");c.appendChild(g);var y=this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value=
-"100%";c.appendChild(t);var I=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),K=this.addCheckbox(c,mxResources.get("layers"),!0),E=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,E),H=J.getEditInput();H.style.marginBottom="16px";mxEvent.addListener(E,"change",function(){E.checked?H.removeAttribute("disabled"):H.setAttribute("disabled","disabled");H.checked&&E.checked?J.getEditSelect().removeAttribute("disabled"):
-J.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(m.checked?d:null,q.checked,t.value,y.getTarget(),y.getColor(),I.checked,G.checked,K.checked,E.checked,J.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,k,l){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var p=document.createElement("div");
-p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));m.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));p.style.marginTop="12px";p.className="geBtn";m.appendChild(p);c.appendChild(m);p=document.createElement("a");p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));m.appendChild(p);mxEvent.addListener(p,"click",
-mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var n=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),n=document.createElement("input"),n.setAttribute("type","text"),
-n.style.marginRight="16px",n.style.width="50px",n.style.marginLeft="6px",n.style.marginRight="16px",n.style.marginBottom="10px",n.value="100%",c.appendChild(n),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var t=this.addLinkSection(c,l);d=null!=this.pages&&1<this.pages.length;var G=null;if(null==g||g.constructor!=window.DriveFile||
-b)G=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var K=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!l),E=this.addEditButton(c,K),J=E.getEditInput();l&&(J.style.marginLeft=K.style.marginLeft,K.style.display="none",a-=30);var H=this.addCheckbox(c,mxResources.get("layers"),!0);H.style.marginLeft=J.style.marginLeft;H.style.marginBottom="16px";H.style.marginTop="8px";mxEvent.addListener(K,"change",function(){K.checked?(H.removeAttribute("disabled"),J.removeAttribute("disabled")):
-(H.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"));J.checked&&K.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(t.getTarget(),t.getColor(),null==G?!0:G.checked,K.checked,E.getLink(),H.checked,null!=n?n.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||
-5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)):t.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,k){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(k?"10":"4")+"px";c.appendChild(f);if(k){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
-"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.value=this.lastExportBorder||"0";c.appendChild(m);mxUtils.br(c)}var l=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
-n=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,q=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=q&&(q.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(m.value)||0;d(!l.checked,null!=n?n.checked:!1,null!=q?q.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(k?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,d,e,k,l,n,q,t){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==q?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(m);mxUtils.write(c,mxResources.get("zoom")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight=
-"12px";p.value=this.lastExportZoom||"100%";c.appendChild(p);mxUtils.write(c,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";c.appendChild(u);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),E=document.createElement("input");E.style.marginTop="16px";E.style.marginRight="8px";E.style.marginLeft=
-"24px";E.setAttribute("disabled","disabled");E.setAttribute("type","checkbox");var J=document.createElement("select");J.style.marginTop="16px";J.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(m=0;m<a.length;m++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[m]){var H=document.createElement("option");mxUtils.write(H,mxResources.get(a[m]));H.setAttribute("value",a[m]);J.appendChild(H)}t?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(J),mxUtils.br(c),g+=26,mxEvent.addListener(J,
-"change",function(){"selectionOnly"==J.value&&(A.checked=!0)})):l&&(c.appendChild(E),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?t&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(J.value="diagram",E.setAttribute("checked","checked"),E.defaultChecked=!0,mxEvent.addListener(A,
-"change",function(){J.value=A.checked?"selectionOnly":"diagram"}));var F=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=q),Q=null;Editor.isDarkMode()&&(Q=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var x=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");
-b&&(c.appendChild(B),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==q||"jpeg"==q)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var ga=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=q);ga.style.marginBottom="16px";var D=document.createElement("select");D.style.maxWidth="260px";D.style.marginLeft="8px";D.style.marginRight="10px";D.className="geBtn";b=document.createElement("option");
-b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));D.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));D.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));D.appendChild(b);"svg"==q&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(D),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
-mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,F.checked,!A.checked,x.checked,ga.checked,B.checked,u.value,E.checked,!1,D.value,null!=C?C.checked:null,null!=Q?Q.checked:null,J.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,k){var c=document.createElement("div");
-c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var m=this.addCheckbox(c,mxResources.get("fit"),!0),l=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),n=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),t=this.addEditButton(c,q),I=t.getEditInput(),G=1<f.model.getChildCount(f.model.getRoot()),
-K=this.addCheckbox(c,mxResources.get("layers"),G,!G);K.style.marginLeft=I.style.marginLeft;K.style.marginBottom="12px";K.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(G&&K.removeAttribute("disabled"),I.removeAttribute("disabled")):(K.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"));I.checked&&q.checked?t.getEditSelect().removeAttribute("disabled"):t.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
-function(){a(m.checked,l.checked,n.checked,q.checked,t.getLink(),K.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,k,l,n,q){function c(c){var b=" ",m="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(k?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");a&&(m+="max-width:100%;");var p="";d&&(p=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+p+(""!=m?' style="'+m+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
-this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){q({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var m="";d&&(m="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+m+"&xml="+encodeURIComponent(b));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&
-299>=p.getStatus()?c("data:image/png;base64,"+p.getText()):q({message:mxResources.get("unknownError")})}))}else q({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,k,l,n){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var m=f[g].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
-c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var p=" ",u="";e&&(p="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(k?"&edit=_blank":"")+(l?"&layers=1":
-"")+"');}})(this);\"",u+="cursor:pointer;");a&&(u+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){n('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=u?' style="'+u+'"':"")+p+"/>")}))}else u="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(k?"&edit=_blank":"")+(l?"&layers=1":"")+"');}}})(this);"),u+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),k=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+k),u+="max-width:100%;max-height:"+k+"px;",c.removeAttribute("height")),""!=u&&c.setAttribute("style",u),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
+f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=
+mxClient.IS_FF?"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width="22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,p,m,l){l=null!=l?l:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
+"1"!=urlParams.dev||l.push("lightbox=1"),"auto"!=a&&l.push("target="+a),null!=b&&b!=mxConstants.NONE&&l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=p&&0<p.length&&l.push("edit="+encodeURIComponent(p)),m&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&l.push("page-id="+this.currentPage.getId());return l};EditorUi.prototype.createLink=function(a,b,d,e,p,m,l,q,u,y){u=this.createUrlParameters(a,
+b,d,e,p,m,u);a=this.getCurrentFile();b=!0;null!=l?d="#U"+encodeURIComponent(l):(a=this.getCurrentFile(),q||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&u.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(u.push("open="+d.substring(1)),d="");return(e&&
+"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<u.length?"?"+u.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,p,m,l,q,u,y,z){this.getBasenames();var c={};""!=p&&p!=mxConstants.NONE&&(c.highlight=p);"auto"!==e&&(c.target=e);u||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),
+c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);q&&d.push("layers");0<d.length&&(u&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(m?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
+encodeURIComponent(a):"";z(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
+mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value",
+"copy");g.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(m);mxUtils.br(g);g.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));g.appendChild(m);var l=this.getCurrentFile();null==d&&null!=l&&l.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),g.appendChild(m),
+mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var z=this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value=
+"100%";c.appendChild(u);var G=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,J=J=this.addCheckbox(c,mxResources.get("allPages"),g,!g),H=this.addCheckbox(c,mxResources.get("layers"),!0),D=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,D),I=K.getEditInput();I.style.marginBottom="16px";mxEvent.addListener(D,"change",function(){D.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled");I.checked&&D.checked?K.getEditSelect().removeAttribute("disabled"):
+K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,q.checked,u.value,z.getTarget(),z.getColor(),G.checked,J.checked,H.checked,D.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,p,m){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
+"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var l=document.createElement("div");
+l.style.whiteSpace="normal";mxUtils.write(l,mxResources.get("linkAccountRequired"));k.appendChild(l);l=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));l.style.marginTop="12px";l.className="geBtn";k.appendChild(l);c.appendChild(k);l=document.createElement("a");l.style.paddingLeft="12px";l.style.color="gray";l.style.fontSize="11px";l.style.cursor="pointer";mxUtils.write(l,mxResources.get("check"));k.appendChild(l);mxEvent.addListener(l,"click",
+mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var t=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"),t.setAttribute("type","text"),
+t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var u=this.addLinkSection(c,m);d=null!=this.pages&&1<this.pages.length;var J=null;if(null==g||g.constructor!=window.DriveFile||
+b)J=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var H=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),D=this.addEditButton(c,H),K=D.getEditInput();m&&(K.style.marginLeft=H.style.marginLeft,H.style.display="none",a-=30);var I=this.addCheckbox(c,mxResources.get("layers"),!0);I.style.marginLeft=K.style.marginLeft;I.style.marginBottom="16px";I.style.marginTop="8px";mxEvent.addListener(H,"change",function(){H.checked?(I.removeAttribute("disabled"),K.removeAttribute("disabled")):
+(I.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&H.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){p(u.getTarget(),u.getColor(),null==J?!0:J.checked,H.checked,D.getLink(),I.checked,null!=t?t.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||
+5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,p){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(p?"10":"4")+"px";c.appendChild(f);if(p){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
+"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";c.appendChild(k);mxUtils.br(c)}var m=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
+l=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,q=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=q&&(q.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(k.value)||0;d(!m.checked,null!=l?l.checked:!1,null!=q?q.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(p?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
+function(a,b,d,e,p,m,l,q,u){l=null!=l?l:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==q?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
+"12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";c.appendChild(v);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),D=document.createElement("input");D.style.marginTop="16px";D.style.marginRight="8px";D.style.marginLeft=
+"24px";D.setAttribute("disabled","disabled");D.setAttribute("type","checkbox");var F=document.createElement("select");F.style.marginTop="16px";F.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(k=0;k<a.length;k++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[k]){var I=document.createElement("option");mxUtils.write(I,mxResources.get(a[k]));I.setAttribute("value",a[k]);F.appendChild(I)}u?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(F),mxUtils.br(c),g+=26,mxEvent.addListener(F,
+"change",function(){"selectionOnly"==F.value&&(A.checked=!0)})):m&&(c.appendChild(D),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?D.removeAttribute("disabled"):D.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?u&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(F.value="diagram",D.setAttribute("checked","checked"),D.defaultChecked=!0,mxEvent.addListener(A,
+"change",function(){F.value=A.checked?"selectionOnly":"diagram"}));var R=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=q),N=null;Editor.isDarkMode()&&(N=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");
+b&&(c.appendChild(B),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==q||"jpeg"==q)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var ka=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=q);ka.style.marginBottom="16px";var E=document.createElement("select");E.style.maxWidth="260px";E.style.marginLeft="8px";E.style.marginRight="10px";E.className="geBtn";b=document.createElement("option");
+b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));E.appendChild(b);"svg"==q&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(E),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
+mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=t.value;p(t.value,R.checked,!A.checked,n.checked,ka.checked,B.checked,v.value,D.checked,!1,E.value,null!=C?C.checked:null,null!=N?N.checked:null,F.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,p){var c=document.createElement("div");
+c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),m=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),u=this.addEditButton(c,q),G=u.getEditInput(),J=1<f.model.getChildCount(f.model.getRoot()),
+H=this.addCheckbox(c,mxResources.get("layers"),J,!J);H.style.marginLeft=G.style.marginLeft;H.style.marginBottom="12px";H.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(J&&H.removeAttribute("disabled"),G.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&q.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
+function(){a(k.checked,m.checked,l.checked,q.checked,u.getLink(),H.checked)}),null,mxResources.get("embed"),p);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,p,m,l,q){function c(c){var b=" ",k="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}})(this);\"",k+="cursor:pointer;");a&&(k+="max-width:100%;");var t="";d&&(t=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');l('<img src="'+c+'"'+t+(""!=k?' style="'+k+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
+this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){q({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";d&&(k="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+k+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
+299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):q({message:mxResources.get("unknownError")})}))}else q({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,p,m,l){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
+c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var t=" ",v="";e&&(t="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(p?"&edit=_blank":"")+(m?"&layers=1":
+"")+"');}})(this);\"",v+="cursor:pointer;");a&&(v+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){l('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=v?' style="'+v+'"':"")+t+"/>")}))}else v="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}}})(this);"),v+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),p=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+p),v+="max-width:100%;max-height:"+p+"px;",c.removeAttribute("height")),""!=v&&c.setAttribute("style",v),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),l(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+" "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=
-a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(p){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
-a){if(a.hasAttribute("scale")){var d=parseFloat(a.getAttribute("scale"));!isNaN(d)&&0<d&&(c=d)}a.hasAttribute("border")&&(d=parseInt(a.getAttribute("border")),!isNaN(d)&&0<d&&(b=d))}return{scale:c,border:b}};EditorUi.prototype.getEmbeddedPng=function(a,b,d,e,k){try{var c=this.editor.graph,f=null!=c.themes&&"darkTheme"==c.defaultThemeName,g=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,
-!0),c),g=d;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),m=c.getGlobalVariable,l=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?1:m.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(l.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(d){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=d.toDataURL("image/png"),e=Editor.writeGraphModelToPng(e,
-"tEXt","mxfile",encodeURIComponent(g));a(e.substring(e.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(L){null!=b&&b(L)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,e,null,c.shadowVisible,null,c,k)}catch(y){null!=b&&b(y)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,k,l,n,q,t,z,y,M,L){q=null!=q?q:!0;n=null!=t?t:b.background;n==mxConstants.NONE&&(n=null);l=b.getSvg(n,z,y,null,null,l,null,null,null,b.shadowVisible||
-M,null,L);(b.shadowVisible||M)&&b.addSvgShadow(l);null!=a&&l.setAttribute("content",a);null!=d&&l.setAttribute("resource",d);if(null!=k)this.embedFonts(l,mxUtils.bind(this,function(a){q?this.editor.convertImages(a,mxUtils.bind(this,function(a){k((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))})):k((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
-mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(l)};EditorUi.prototype.embedFonts=function(a,b){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(m){b(a)}}))}catch(g){b(a)}}))};
-EditorUi.prototype.exportImage=function(a,b,d,e,k,l,n,q,t,z,y,M,L){t=null!=t?t:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,k?this.getFileData(!0,null,null,null,d,q):null,t,null==this.pages||0==this.pages.length,y)}catch(K){this.handleError(K)}}),null,this.thumbImageCache,
-null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,l,n,z,M,L)}catch(G){this.spinner.stop(),this.handleError(G)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,e,k,l){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){f.model.beginUpdate();try{var g=mxUtils.parseXml(a);a={};var m=this.editor.extractGraphModel(g.documentElement,
-null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var p=m.getElementsByTagName("diagram");if(1==p.length&&!l){if(m=Editor.parseDiagramNode(p[0]),null!=this.currentPage&&(a[p[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var n=p[0].getAttribute("name");null!=n&&""!=n&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,n))}}else if(0<
-p.length){l=[];var q=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[p[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(p[0]),e=!1,q=1);for(;q<p.length;q++){var t=p[q].getAttribute("id");p[q].removeAttribute("id");var G=this.updatePageRoot(new DiagramPage(p[q]));a[t]=p[q].getAttribute("id");var K=this.pages.length;null==G.getName()&&G.setName(mxResources.get("pageWithNumber",[K+1]));f.model.execute(new ChangePage(this,G,G,K,!0));l.push(G)}this.updatePageLinks(a,
-l)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(c=f.importGraphModel(m,b,d,e),null!=c))for(q=0;q<c.length;q++)this.updatePageLinksForCell(a,c[q])}finally{f.model.endUpdate()}}}catch(E){if(k)throw E;this.handleError(E)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,
-this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.sanitizeHtml(d.getLabel(b));for(var f=c.getElementsByTagName("a"),l=!1,n=0;n<f.length;n++)e=f[n].getAttribute("href"),null!=e&&(f[n].setAttribute("href",this.updatePageLink(a,e)),l=!0);l&&d.labelChanged(b,c.innerHTML)}for(n=0;n<d.model.getChildCount(b);n++)this.updatePageLinksForCell(a,d.model.getChildAt(b,n))};EditorUi.prototype.updatePageLink=function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=
-null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var f=d.actions[e];if(null!=f.open&&"data:page/id,"==f.open.substring(0,13)){var l=f.open.substring(f.open.indexOf(",")+1),c=a[l];null!=c?f.open="data:page/id,"+c:null==this.getPageById(l)&&delete f.open}}b="data:action/json,"+JSON.stringify(d)}}catch(A){}return b};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||
-/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var c=this.isRemoteVisioFormat(e);try{var f="UNKNOWN-VISIO",g=e.lastIndexOf(".");if(0<=g&&g<e.length)f=e.substring(g+1).toUpperCase();else{var k=e.lastIndexOf("/");0<=k&&k<e.length&&(e=e.substring(k+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+
-e,label:c?"remote":"local"})}catch(y){}if(c)if(null==VSD_CONVERT_URL||this.isOffline())d({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{c=new FormData;c.append("file1",a,e);var m=new XMLHttpRequest;m.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));m.responseType="blob";this.addRemoteServiceSecurityCheck(m);m.onreadystatechange=mxUtils.bind(this,function(){if(4==m.readyState)if(200<=m.status&&299>=
-m.status)try{var a=m.response;if("text/xml"==a.type){var c=new FileReader;c.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(I){d({message:mxResources.get("errorLoadingFile")})}});c.readAsText(a)}else this.doImportVisio(a,b,d,e)}catch(L){d(L)}else try{""==m.responseType||"text"==m.responseType?d({message:m.responseText}):(c=new FileReader,c.onload=function(){d({message:JSON.parse(c.result).Message})},c.readAsText(m.response))}catch(L){d({})}});m.send(c)}else try{this.doImportVisio(a,
-b,d,e)}catch(y){d(y)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.importGraphML=function(a,b,d){d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,d)}catch(k){d(k)}else this.spinner.stop(),
-this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(a){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(a)||this.handleError({message:mxResources.get("unknownError")})}catch(g){this.handleError(g)}else this.spinner.stop(),
-this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+a.length}),EditorUi.debug("convertLucidChart",a)}catch(k){}try{b(LucidImporter.importState(JSON.parse(a)))}catch(k){null!=
-window.console&&console.error(k),d(k)}}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",
+a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(t){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
+a){if(a.hasAttribute("scale")){var d=parseFloat(a.getAttribute("scale"));!isNaN(d)&&0<d&&(c=d)}a.hasAttribute("border")&&(d=parseInt(a.getAttribute("border")),!isNaN(d)&&0<d&&(b=d))}return{scale:c,border:b}};EditorUi.prototype.getEmbeddedPng=function(a,b,d,e,p){try{var c=this.editor.graph,f=null!=c.themes&&"darkTheme"==c.defaultThemeName,g=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,
+!0),c),g=d;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),k=c.getGlobalVariable,m=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?1:k.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(m.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(d){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=d.toDataURL("image/png"),e=Editor.writeGraphModelToPng(e,
+"tEXt","mxfile",encodeURIComponent(g));a(e.substring(e.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(M){null!=b&&b(M)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,e,null,c.shadowVisible,null,c,p)}catch(z){null!=b&&b(z)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,p,m,l,q,u,y,z,L,M){q=null!=q?q:!0;l=null!=u?u:b.background;l==mxConstants.NONE&&(l=null);m=b.getSvg(l,y,z,null,null,m,null,null,null,b.shadowVisible||
+L,null,M);(b.shadowVisible||L)&&b.addSvgShadow(m);null!=a&&m.setAttribute("content",a);null!=d&&m.setAttribute("resource",d);if(null!=p)this.embedFonts(m,mxUtils.bind(this,function(a){q?this.editor.convertImages(a,mxUtils.bind(this,function(a){p((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))})):p((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
+mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(m)};EditorUi.prototype.embedFonts=function(a,b){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(k){b(a)}}))}catch(g){b(a)}}))};
+EditorUi.prototype.exportImage=function(a,b,d,e,p,m,l,q,u,y,z,L,M){u=null!=u?u:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,p?this.getFileData(!0,null,null,null,d,q):null,u,null==this.pages||0==this.pages.length,z)}catch(H){this.handleError(H)}}),null,this.thumbImageCache,
+null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,m,l,y,L,M)}catch(J){this.spinner.stop(),this.handleError(J)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,e,p,m,l){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){f.model.beginUpdate();try{var g=mxUtils.parseXml(a);a={};var k=this.editor.extractGraphModel(g.documentElement,
+null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var t=k.getElementsByTagName("diagram");if(1==t.length&&!m){if(k=Editor.parseDiagramNode(t[0]),null!=this.currentPage&&(a[t[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var v=t[0].getAttribute("name");null!=v&&""!=v&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,v))}}else if(0<
+t.length){m=[];var q=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[t[0].getAttribute("id")]=this.pages[0].getId(),k=Editor.parseDiagramNode(t[0]),e=!1,q=1);for(;q<t.length;q++){var u=t[q].getAttribute("id");t[q].removeAttribute("id");var H=this.updatePageRoot(new DiagramPage(t[q]));a[u]=t[q].getAttribute("id");var D=this.pages.length;null==H.getName()&&H.setName(mxResources.get("pageWithNumber",[D+1]));f.model.execute(new ChangePage(this,H,H,D,!0));m.push(H)}this.updatePageLinks(a,
+m)}}if(null!=k&&"mxGraphModel"===k.nodeName&&(c=f.importGraphModel(k,b,d,e),null!=c))for(q=0;q<c.length;q++)this.updatePageLinksForCell(a,c[q]);l&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{f.model.endUpdate()}}}catch(K){if(p)throw K;this.handleError(K)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,
+b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.sanitizeHtml(d.getLabel(b));for(var f=c.getElementsByTagName("a"),m=!1,l=0;l<f.length;l++)e=f[l].getAttribute("href"),null!=e&&(f[l].setAttribute("href",this.updatePageLink(a,e)),m=!0);m&&d.labelChanged(b,c.innerHTML)}for(l=0;l<d.model.getChildCount(b);l++)this.updatePageLinksForCell(a,d.model.getChildAt(b,l))};EditorUi.prototype.updatePageLink=
+function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var f=d.actions[e];if(null!=f.open&&"data:page/id,"==f.open.substring(0,13)){var m=f.open.substring(f.open.indexOf(",")+1),c=a[m];null!=c?f.open="data:page/id,"+c:null==this.getPageById(m)&&delete f.open}}b="data:action/json,"+JSON.stringify(d)}}catch(A){}return b};
+EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var c=this.isRemoteVisioFormat(e);try{var f="UNKNOWN-VISIO",g=e.lastIndexOf(".");if(0<=g&&g<e.length)f=e.substring(g+1).toUpperCase();else{var k=e.lastIndexOf("/");0<=
+k&&k<e.length&&(e=e.substring(k+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+e,label:c?"remote":"local"})}catch(z){}if(c)if(null==VSD_CONVERT_URL||this.isOffline())d({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{c=new FormData;c.append("file1",a,e);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);
+p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var a=p.response;if("text/xml"==a.type){var c=new FileReader;c.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(G){d({message:mxResources.get("errorLoadingFile")})}});c.readAsText(a)}else this.doImportVisio(a,b,d,e)}catch(M){d(M)}else try{""==p.responseType||"text"==p.responseType?d({message:p.responseText}):(c=new FileReader,c.onload=function(){d({message:JSON.parse(c.result).Message})},
+c.readAsText(p.response))}catch(M){d({})}});p.send(c)}else try{this.doImportVisio(a,b,d,e)}catch(z){d(z)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.importGraphML=function(a,b,d){d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=
+!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,d)}catch(p){d(p)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(a){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(a)||this.handleError({message:mxResources.get("unknownError")})}catch(g){this.handleError(g)}else this.spinner.stop(),
+this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+a.length}),EditorUi.debug("convertLucidChart",a)}catch(p){}try{b(LucidImporter.importState(JSON.parse(a)))}catch(p){null!=
+window.console&&console.error(p),d(p)}}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",
c)})})})}):mxscript("js/extensions.min.js",c))};EditorUi.prototype.generateMermaidImage=function(a,b,d,e){var c=this,f=function(){try{this.loadingMermaid=!1,b=null!=b?b:EditorUi.defaultMermaidConfig,b.securityLevel="strict",b.startOnLoad=!1,mermaid.mermaidAPI.initialize(b),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),a,function(a){try{if(mxClient.IS_IE||mxClient.IS_IE11)a=a.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,
-' xml:space="preserve"');var b=mxUtils.parseXml(a).getElementsByTagName("svg");if(0<b.length){var f=parseFloat(b[0].getAttribute("width")),g=parseFloat(b[0].getAttribute("height"));if(isNaN(f)||isNaN(g))try{var k=b[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),g=parseFloat(k[3])}catch(M){f=f||100,g=g||100}d(c.convertDataUri(Editor.createSvgDataUri(a)),f,g)}else e({message:mxResources.get("invalidInput")})}catch(M){e(M)}})}catch(u){e(u)}};"undefined"!==typeof mermaid||this.loadingMermaid||
+' xml:space="preserve"');var b=mxUtils.parseXml(a).getElementsByTagName("svg");if(0<b.length){var f=parseFloat(b[0].getAttribute("width")),g=parseFloat(b[0].getAttribute("height"));if(isNaN(f)||isNaN(g))try{var k=b[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),g=parseFloat(k[3])}catch(L){f=f||100,g=g||100}d(c.convertDataUri(Editor.createSvgDataUri(a)),f,g)}else e({message:mxResources.get("invalidInput")})}catch(L){e(L)}})}catch(v){e(v)}};"undefined"!==typeof mermaid||this.loadingMermaid||
this.isOffline(!0)?f():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generatePlantUmlImage=function(a,b,d,e){function c(a,c,b){c1=a>>2;c2=(a&3)<<4|c>>4;c3=(c&15)<<2|b>>6;c4=b&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":
1==a?"_":"?"}var g=new XMLHttpRequest;g.open("GET",("txt"==b?PLANT_URL+"/txt/":"png"==b?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(a){r="";for(i=0;i<a.length;i+=3)r=i+2==a.length?r+c(a.charCodeAt(i),a.charCodeAt(i+1),0):i+1==a.length?r+c(a.charCodeAt(i),0,0):r+c(a.charCodeAt(i),a.charCodeAt(i+1),a.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(a))),!0);"txt"!=b&&(g.responseType="blob");g.onload=function(a){if(200<=this.status&&300>this.status)if("txt"==b)d(this.response);
-else{var c=new FileReader;c.readAsDataURL(this.response);c.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,f=b.height;if(0==a&&0==f){var g=c.result,k=g.indexOf(","),m=decodeURIComponent(escape(atob(g.substring(k+1)))),l=mxUtils.parseXml(m).getElementsByTagName("svg");0<l.length&&(a=parseFloat(l[0].getAttribute("width")),f=parseFloat(l[0].getAttribute("height")))}d(c.result,a,f)}catch(J){e(J)}};b.src=c.result};c.onerror=function(a){e(a)}}else e(a)};g.onerror=function(a){e(a)};
-g.send()};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,k,l,n,q){l=null!=l?l:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
-" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var f=Editor.extractGraphModelFromPdf(a);if(null!=f&&0<f.length)return this.importXml(f,b,d,l,!0,q)}if("data:image/png;base64,"==
-a.substring(0,22)&&(f=this.extractGraphModelFromPng(a),null!=f&&0<f.length))return this.importXml(f,b,d,l,!0,q);if("data:image/svg+xml;"==a.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1));var g=this.importXml(f,b,d,l,!0,q);if(0<g.length)return g}catch(L){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
-5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),
+else{var c=new FileReader;c.readAsDataURL(this.response);c.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,f=b.height;if(0==a&&0==f){var g=c.result,k=g.indexOf(","),p=decodeURIComponent(escape(atob(g.substring(k+1)))),m=mxUtils.parseXml(p).getElementsByTagName("svg");0<m.length&&(a=parseFloat(m[0].getAttribute("width")),f=parseFloat(m[0].getAttribute("height")))}d(c.result,a,f)}catch(K){e(K)}};b.src=c.result};c.onerror=function(a){e(a)}}else e(a)};g.onerror=function(a){e(a)};
+g.send()};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,p,m,l,q){m=null!=m?m:!0;l=null!=l?l:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
+" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(p||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var f=Editor.extractGraphModelFromPdf(a);if(null!=f&&0<f.length)return this.importXml(f,b,d,m,!0,q)}if("data:image/png;base64,"==
+a.substring(0,22)&&(f=this.extractGraphModelFromPng(a),null!=f&&0<f.length))return this.importXml(f,b,d,m,!0,q);if("data:image/svg+xml;"==a.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1));var g=this.importXml(f,b,d,m,!0,q);if(0<g.length)return g}catch(M){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
+5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),l,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),
g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=Graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,
-b,d,l,null,q);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,l,null,q))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;k=null;c.getModel().beginUpdate();try{k=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;whiteSpace=wrap;"+(e?"html=1;":""));c.fireEvent(new mxEventObject("textInserted","cells",[k]));"<"==a.charAt(0)&&a.indexOf(">")==
-a.length-1&&(a=mxUtils.htmlEntities(a));a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"...");k.value=a;c.updateCellSize(k);if(0<this.maxTextWidth&&k.geometry.width>this.maxTextWidth){var m=c.getPreferredSizeForCell(k,this.maxTextWidth);k.geometry.width=m.width;k.geometry.height=m.height}Graph.isLink(k.value)&&c.setLinkForCell(k,k.value);k.geometry.width+=c.gridSize;k.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[k]}}return[]};EditorUi.prototype.formatFileSize=
+b,d,m,null,q);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,m,null,q))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;p=null;c.getModel().beginUpdate();try{p=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;whiteSpace=wrap;"+(e?"html=1;":""));c.fireEvent(new mxEventObject("textInserted","cells",[p]));"<"==a.charAt(0)&&a.indexOf(">")==
+a.length-1&&(a=mxUtils.htmlEntities(a));a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"...");p.value=a;c.updateCellSize(p);if(0<this.maxTextWidth&&p.geometry.width>this.maxTextWidth){var k=c.getPreferredSizeForCell(p,this.maxTextWidth);p.geometry.width=k.width;p.geometry.height=k.height}Graph.isLink(p.value)&&c.setLinkForCell(p,p.value);p.geometry.width+=c.gridSize;p.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[p]}}return[]};EditorUi.prototype.formatFileSize=
function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&('{"state":"{\\"Properties\\":'==
a.substring(0,26)||'{"Properties":'==a.substring(0,14))};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport){if(null==this.importFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.importFiles(c.files,null,null,this.maxImageSize),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.importFileInputElt=c}this.importFileInputElt.click()}else{window.openNew=
!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(a,c){StorageFile.listFiles(this,"F",a,c)});window.openBrowserFile=mxUtils.bind(this,function(a,c,b){StorageFile.getFileContent(this,a,c,b)});window.deleteBrowserFile=mxUtils.bind(this,function(a,c,b){StorageFile.deleteFile(this,a,c,b)});if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,
function(a,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var b=new Blob([a],{type:"application/octet-stream"});this.importVisio(b,mxUtils.bind(this,function(a){this.importXml(a,0,0,!0)}),null,c)}else this.editor.graph.setSelectionCells(this.importXml(a,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,
function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(a,b,d){var c=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(a).then(function(e){if(0==Object.keys(e.files).length)d();else{var f=0,g,k=!1;e.forEach(function(a,c){var e=c.name.toLowerCase();"diagram/diagram.xml"==e?(k=!0,c.async("string").then(function(a){0==a.indexOf("<mxfile ")?
b(a):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,g=c))});0<f?g.async("string").then(function(e){!c.isOffline()&&(new XMLHttpRequest).upload&&c.isRemoteFileFormat(e,a.name)?c.parseFile(new Blob([e],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?b(a.responseText):d())}),a.name):d()}):k||d()}},function(a){d(a)}):d()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=
-!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,e,k,l,n,q,t,z,y,M){z=null!=z?z:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,z,null,null!=M?mxEvent.isControlDown(M):null);null!=q&&q(c)});"image"==b.substring(0,5)?(t=!1,"image/png"==b.substring(0,9)&&(b=y?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,z,
-null,null!=M?mxEvent.isControlDown(M):null),t=!0)),t||(b=this.editor.graph,y=a.indexOf(";"),0<y&&(a=a.substring(0,y)+a.substring(a.indexOf(",",y+1))),z&&b.isGridEnabled()&&(d=b.snap(d),e=b.snap(e)),f=[b.insertVertex(null,null,"",d,e,k,l,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=t&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?
-(c=!0,this.importVisio(t,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,n)?(c=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=q&&q(null))}),n)):0==a.indexOf("PK")&&null!=t?(c=!0,this.importZipFile(t,g,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,z);q(f)}))):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||
-(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,z,null,null!=M?mxEvent.isControlDown(M):null));c||null==q||q(f);return f};EditorUi.prototype.importFiles=function(a,b,d,e,k,l,n,q,t,z,y,M,L){e=null!=e?e:this.maxImageSize;z=null!=z?z:this.maxImageBytes;var c=null!=b&&null!=d,f=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var m=y||this.resampleThreshold,p=0;p<a.length;p++)if("image/"==a[p].type.substring(0,6)&&a[p].size>m){g=!0;break}var u=mxUtils.bind(this,
-function(){var g=this.editor.graph,m=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,d,e,f,g,k,m,l){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,m,l,c,M,L)}catch(ca){return this.handleError(ca),null}});l=null!=l?l:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,u=p,t=[],E=mxUtils.bind(this,function(a,
-c){t[a]=c;if(0==--u){this.spinner.stop();if(null!=q)q(t);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<t.length;d++){var e=t[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}l(b)}}),A=0;A<p;A++)mxUtils.bind(this,function(c){var l=a[c];if(null!=l){var p=new FileReader;p.onload=mxUtils.bind(this,function(a){if(null==n||n(l))if("image/"==l.type.substring(0,6))if("image/svg"==l.type.substring(0,9)){var p=Graph.clipSvgDataUri(a.target.result),q=p.indexOf(","),u=decodeURIComponent(escape(atob(p.substring(q+
-1)))),t=mxUtils.parseXml(u),u=t.getElementsByTagName("svg");if(0<u.length){var u=u[0],x=M?null:u.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?E(c,mxUtils.bind(this,function(){try{if(p.substring(0,q+1),null!=t){var a=t.getElementsByTagName("svg");if(0<a.length){var f=a[0],n=f.getAttribute("width"),
-u=f.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,u=null!=u&&"%"!=u.charAt(u.length-1)?parseFloat(u):NaN,y=f.getAttribute("viewBox");if(null==y||0==y.length)f.setAttribute("viewBox","0 0 "+n+" "+u);else if(isNaN(n)||isNaN(u)){var z=y.split(" ");3<z.length&&(n=parseFloat(z[2]),u=parseFloat(z[3]))}p=Editor.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,u)),E=k(p,l.type,b+c*m,d+c*m,Math.max(1,Math.round(n*x)),Math.max(1,Math.round(u*
-x)),l.name);if(isNaN(n)||isNaN(u)){var A=new Image;A.onload=mxUtils.bind(this,function(){n=Math.max(1,A.width);u=Math.max(1,A.height);E[0].geometry.width=n;E[0].geometry.height=u;f.setAttribute("viewBox","0 0 "+n+" "+u);p=Editor.createSvgDataUri(mxUtils.getXml(f));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));g.setCellStyles("image",p,[E[0]])});A.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return E}}}catch(fa){}return null})):E(c,mxUtils.bind(this,function(){return k(x,
-"text/xml",b+c*m,d+c*m,0,0,l.name)}))}else E(c,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==l.type){var A=M?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var H=new Image;H.src=a.target.result;E(c,mxUtils.bind(this,function(){return k(A,"text/xml",b+c*m,d+c*m,H.width,H.height,l.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
-mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,n){E(c,mxUtils.bind(this,function(){if(null!=a&&a.length<z){var p=f&&this.isResampleImageSize(l.size,y)?Math.min(1,Math.min(e/g,e/n)):1;return k(a,l.type,b+c*m,d+c*m,Math.round(g*p),Math.round(n*p),l.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),f,e,y,l.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else p=a.target.result,k(p,l.type,b+c*m,d+c*m,240,160,l.name,function(a){E(c,function(){return a})},l)});/(\.v(dx|sdx?))($|\?)/i.test(l.name)||/(\.vs(x|sx?))($|\?)/i.test(l.name)?k(null,l.type,b+c*m,d+c*m,240,160,l.name,function(a){E(c,function(){return a})},l):"image"==l.type.substring(0,5)||"application/pdf"==l.type?p.readAsDataURL(l):p.readAsText(l)}})(A)});if(g){g=
-[];for(p=0;p<a.length;p++)g.push(a[p]);a=g;this.confirmImageResize(function(a){f=a;u()},t)}else u()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
+!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,e,p,m,l,q,u,y,z,L){y=null!=y?y:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,l)):c=this.importXml(a,d,e,y,null,null!=L?mxEvent.isControlDown(L):null);null!=q&&q(c)});"image"==b.substring(0,5)?(u=!1,"image/png"==b.substring(0,9)&&(b=z?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,y,
+null,null!=L?mxEvent.isControlDown(L):null),u=!0)),u||(b=this.editor.graph,z=a.indexOf(";"),0<z&&(a=a.substring(0,z)+a.substring(a.indexOf(",",z+1))),y&&b.isGridEnabled()&&(d=b.snap(d),e=b.snap(e)),f=[b.insertVertex(null,null,"",d,e,p,m,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=u&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?
+(c=!0,this.importVisio(u,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,l)?(c=!0,this.parseFile(null!=u?u:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=q&&q(null))}),l)):0==a.indexOf("PK")&&null!=u?(c=!0,this.importZipFile(u,g,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y);q(f)}))):/(\.v(sd|dx))($|\?)/i.test(l)||/(\.vs(s|x))($|\?)/i.test(l)||
+(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y,null,null!=L?mxEvent.isControlDown(L):null));c||null==q||q(f);return f};EditorUi.prototype.importFiles=function(a,b,d,e,p,m,l,q,u,y,z,L,M){e=null!=e?e:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var c=null!=b&&null!=d,f=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var k=z||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0,6)&&a[t].size>k){g=!0;break}var v=mxUtils.bind(this,
+function(){var g=this.editor.graph,k=g.gridSize;p=null!=p?p:mxUtils.bind(this,function(a,b,d,e,f,g,k,n,p){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,n,p,c,L,M)}catch(ba){return this.handleError(ba),null}});m=null!=m?m:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var n=a.length,t=n,v=[],u=mxUtils.bind(this,function(a,
+c){v[a]=c;if(0==--t){this.spinner.stop();if(null!=q)q(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}m(b)}}),D=0;D<n;D++)mxUtils.bind(this,function(c){var n=a[c];if(null!=n){var m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==l||l(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.type.substring(0,9)){var m=Graph.clipSvgDataUri(a.target.result),t=m.indexOf(","),q=decodeURIComponent(escape(atob(m.substring(t+
+1)))),v=mxUtils.parseXml(q),q=v.getElementsByTagName("svg");if(0<q.length){var q=q[0],D=L?null:q.getAttribute("content");null!=D&&"<"!=D.charAt(0)&&"%"!=D.charAt(0)&&(D=unescape(window.atob?atob(D):Base64.decode(D,!0)));null!=D&&"%"==D.charAt(0)&&(D=decodeURIComponent(D));null==D||"<mxfile "!==D.substring(0,8)&&"<mxGraphModel "!==D.substring(0,14)?u(c,mxUtils.bind(this,function(){try{if(m.substring(0,t+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],l=f.getAttribute("width"),
+q=f.getAttribute("height"),l=null!=l&&"%"!=l.charAt(l.length-1)?parseFloat(l):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox","0 0 "+l+" "+q);else if(isNaN(l)||isNaN(q)){var y=u.split(" ");3<y.length&&(l=parseFloat(y[2]),q=parseFloat(y[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(f));var z=Math.min(1,Math.min(e/Math.max(1,l)),e/Math.max(1,q)),D=p(m,n.type,b+c*k,d+c*k,Math.max(1,Math.round(l*z)),Math.max(1,Math.round(q*
+z)),n.name);if(isNaN(l)||isNaN(q)){var A=new Image;A.onload=mxUtils.bind(this,function(){l=Math.max(1,A.width);q=Math.max(1,A.height);D[0].geometry.width=l;D[0].geometry.height=q;f.setAttribute("viewBox","0 0 "+l+" "+q);m=Editor.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[D[0]])});A.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return D}}}catch(ea){}return null})):u(c,mxUtils.bind(this,function(){return p(D,
+"text/xml",b+c*k,d+c*k,0,0,n.name)}))}else u(c,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==n.type){var A=L?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var I=new Image;I.src=a.target.result;u(c,mxUtils.bind(this,function(){return p(A,"text/xml",b+c*k,d+c*k,I.width,I.height,n.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
+mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,m){u(c,mxUtils.bind(this,function(){if(null!=a&&a.length<y){var l=f&&this.isResampleImageSize(n.size,z)?Math.min(1,Math.min(e/g,e/m)):1;return p(a,n.type,b+c*k,d+c*k,Math.round(g*l),Math.round(m*l),n.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),f,e,z,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,p(m,n.type,b+c*k,d+c*k,240,160,n.name,function(a){u(c,function(){return a})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?p(null,n.type,b+c*k,d+c*k,240,160,n.name,function(a){u(c,function(){return a})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?m.readAsDataURL(n):m.readAsText(n)}})(D)});if(g){g=
+[];for(t=0;t<a.length;t++)g.push(a[t]);a=g;this.confirmImageResize(function(a){f=a;v()},u)}else v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",
-OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(p){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,e,k,l,n){k=null!=k?k:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImageSize(null!=n?n:b.length,l))try{var g=Math.max(c/k,f/k);if(1<g){var m=Math.round(c/g),p=Math.round(f/
-g),q=document.createElement("canvas");q.width=m;q.height=p;q.getContext("2d").drawImage(a,0,0,m,p);var u=q.toDataURL();if(u.length<b.length){var t=document.createElement("canvas");t.width=m;t.height=p;var K=t.toDataURL();u!==K&&(b=u,c=m,f=p)}}}catch(E){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
-120;b(c)};null!=d&&(c.onerror=d);c.src=a}catch(k){if(null!=d)d(k);else throw k;}};var n=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;Editor.isDarkMode()&&(b.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);b.cellEditor.editPlantUmlData=function(c,d,e){var f=JSON.parse(e);d=
-new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var m=b.model.getGeometry(c);null!=m&&(m=m.clone(),m.width=g,m.height=k,b.cellsResized([c],[m],!1))}b.setAttributeForCell(c,"plantUmlData",
-JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
-e,[c]);var m=b.model.getGeometry(c);null!=m&&(m=m.clone(),m.width=Math.max(m.width,g),m.height=Math.max(m.height,k),b.cellsResized([c],[m],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
-f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(J){a.handleError(J)}};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(K){a.handleError(K)}return c};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.apply(this,
-arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var k=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return k.apply(this,arguments)};
-var l=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};l.call(this,a,c,d)};n.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var q=Menus.prototype.addPopupMenuEditItems;
-this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?q.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var t=b.getExportVariables;b.getExportVariables=function(){var c=t.apply(this,arguments),b=a.getCurrentFile();null!=
+OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(t){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,e,m,l,q){m=null!=m?m:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImageSize(null!=q?q:b.length,l))try{var g=Math.max(c/m,f/m);if(1<g){var k=Math.round(c/g),p=Math.round(f/
+g),t=document.createElement("canvas");t.width=k;t.height=p;t.getContext("2d").drawImage(a,0,0,k,p);var u=t.toDataURL();if(u.length<b.length){var v=document.createElement("canvas");v.width=k;v.height=p;var H=v.toDataURL();u!==H&&(b=u,c=k,f=p)}}}catch(D){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
+120;b(c)};null!=d&&(c.onerror=d);c.src=a}catch(p){if(null!=d)d(p);else throw p;}};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;Editor.isDarkMode()&&(b.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);b.cellEditor.editPlantUmlData=function(c,d,e){var f=JSON.parse(e);d=
+new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=g,n.height=k,b.cellsResized([c],[n],!1))}b.setAttributeForCell(c,"plantUmlData",
+JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
+e,[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=Math.max(n.width,g),n.height=Math.max(n.height,k),b.cellsResized([c],[n],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
+f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(K){a.handleError(K)}};b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(H){a.handleError(H)}return b};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.apply(this,
+arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var m=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return m.apply(this,arguments)};
+var t=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};t.call(this,a,c,d)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var q=Menus.prototype.addPopupMenuEditItems;
+this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?q.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var u=b.getExportVariables;b.getExportVariables=function(){var c=u.apply(this,arguments),b=a.getCurrentFile();null!=
b&&(c.filename=b.getTitle());c.pagecount=null!=a.pages?a.pages.length:1;c.page=null!=a.currentPage?a.currentPage.getName():"";c.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return c};var F=b.getGlobalVariable;b.getGlobalVariable=function(c){var b=a.getCurrentFile();return"filename"==c&&null!=b?b.getTitle():"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:
-"pagecount"==c?null!=a.pages?a.pages.length:1:F.apply(this,arguments)};var z=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))z.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?
-b.getTitle():c);return c};var y=this.actions.get("print");y.setEnabled(!mxClient.IS_IOS||!navigator.standalone);y.visible=y.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,
+"pagecount"==c?null!=a.pages?a.pages.length:1:F.apply(this,arguments)};var y=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))y.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?
+b.getTitle():c);return c};var z=this.actions.get("print");z.setEnabled(!mxClient.IS_IOS||!navigator.standalone);z.visible=z.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,
!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&b.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==
d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=0;c<a.length;c++)a[c]()},mxEvent.isControlDown(a));else if(0<=
mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(y=this.editor.graph.view,y.setUnit(mxSettings.getUnit()),y.addListener("unitChanged",function(a,c){mxSettings.setUnit(c.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==
-document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,y.unit),this.refresh());if("1"==urlParams.styledev){y=document.getElementById("geFooter");null!=y&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility=
-"hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),y.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||
-"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var M=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:M.apply(this,arguments)}}y=document.getElementById("geInfo");null!=y&&y.parentNode.removeChild(y);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var L=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=L&&(L.parentNode.removeChild(L),
-L=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==L&&(!mxClient.IS_IE||10<document.documentMode)&&(L=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=L&&(L.parentNode.removeChild(L),L=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
+"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(z=this.editor.graph.view,z.setUnit(mxSettings.getUnit()),z.addListener("unitChanged",function(a,c){mxSettings.setUnit(c.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==
+document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,z.unit),this.refresh());if("1"==urlParams.styledev){z=document.getElementById("geFooter");null!=z&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility=
+"hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),z.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||
+"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var L=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:L.apply(this,arguments)}}z=document.getElementById("geInfo");null!=z&&z.parentNode.removeChild(z);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var M=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=M&&(M.parentNode.removeChild(M),
+M=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==M&&(!mxClient.IS_IE||10<document.documentMode)&&(M=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=M&&(M.parentNode.removeChild(M),M=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;if(0<a.dataTransfer.files.length)mxEvent.isShiftDown(a)?this.openFiles(a.dataTransfer.files,!0):(mxEvent.isAltDown(a)&&(g=f=null),this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a),a));else{mxEvent.isAltDown(a)&&(g=f=0);var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,
-null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var m=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=b.sanitizeHtml(m);var l=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(m=d[0].getAttribute("src"),null==m&&(m=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(l=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?m=d[0].getAttribute("href"):
-(c=c.getElementsByTagName("pre"),null!=c&&1==c.length&&(m=mxUtils.getTextContent(c[0]))));var n=!0,p=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(m,f,g,!0,l,null,n,mxEvent.isControlDown(a)))});l&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;p()},mxEvent.isControlDown(a)):p()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);
+null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var m=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=b.sanitizeHtml(m);var n=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(m=d[0].getAttribute("src"),null==m&&(m=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?m=d[0].getAttribute("href"):
+(c=c.getElementsByTagName("pre"),null!=c&&1==c.length&&(m=mxUtils.getTextContent(c[0]))));var p=!0,l=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(m,f,g,!0,n,null,p,mxEvent.isControlDown(a)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(a){p=a;l()},mxEvent.isControlDown(a)):l()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);
var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),f,g,!0))}}a.stopPropagation();
-a.preventDefault()}),!1)}b.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c))try{for(var b=c.clipboardData||c.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var l=
-f[index];if("file"===l.kind){if(a.isEditing())this.importFiles([l.getAsFile()],0,0,this.maxImageSize,function(c,b,d,e,f,g){a.insertImage(c,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var n=this.editor.graph.getInsertPoint();this.importFiles([l.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(c)}break}}}}catch(F){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML=
+a.preventDefault()}),!1)}b.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c))try{for(var b=c.clipboardData||c.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var m=
+f[index];if("file"===m.kind){if(a.isEditing())this.importFiles([m.getAsFile()],0,0,this.maxImageSize,function(c,b,d,e,f,g){a.insertImage(c,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var l=this.editor.graph.getInsertPoint();this.importFiles([m.getAsFile()],l.x,l.y,this.maxImageSize);mxEvent.consume(c)}break}}}}catch(F){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML=
"&nbsp;";d.focus();document.execCommand("selectAll",!1,null)},0)}var b=this.editor.graph,d=document.createElement("div");d.setAttribute("autocomplete","off");d.setAttribute("autocorrect","off");d.setAttribute("autocapitalize","off");d.setAttribute("spellcheck","false");d.style.textRendering="optimizeSpeed";d.style.fontFamily="monospace";d.style.wordBreak="break-all";d.style.background="transparent";d.style.color="transparent";d.style.position="absolute";d.style.whiteSpace="nowrap";d.style.overflow=
"hidden";d.style.display="block";d.style.fontSize="1";d.style.zIndex="-1";d.style.resize="none";d.style.outline="none";d.style.width="1px";d.style.height="1px";mxUtils.setOpacity(d,0);d.contentEditable=!0;d.innerHTML="&nbsp;";var e=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||
b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||224!=a.keyCode&&(mxClient.IS_MAC||17!=a.keyCode)&&(!mxClient.IS_MAC||91!=a.keyCode&&93!=a.keyCode)||e||(d.style.left=b.container.scrollLeft+10+"px",d.style.top=b.container.scrollTop+10+"px",b.container.appendChild(d),e=!0,d.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!e||224!=c&&17!=
-c&&91!=c&&93!=c||(e=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),d.parentNode.removeChild(d),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(d,"copy",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d),a()}catch(u){this.handleError(u)}}));mxEvent.addListener(d,"cut",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d,!0),a()}catch(u){this.handleError(u)}}));mxEvent.addListener(d,
-"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(d.innerHTML="&nbsp;",d.focus(),null!=a.clipboardData&&this.pasteCells(a,d,!0,!0),mxEvent.isConsumed(a)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,d,!1,!0)}),0))}),!0);var k=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==d?!0:k.apply(this,arguments)}};EditorUi.prototype.getLinkTitle=function(a){var c=Graph.prototype.getLinkTitle.apply(this,arguments);
+c&&91!=c&&93!=c||(e=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),d.parentNode.removeChild(d),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(d,"copy",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d),a()}catch(v){this.handleError(v)}}));mxEvent.addListener(d,"cut",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d,!0),a()}catch(v){this.handleError(v)}}));mxEvent.addListener(d,
+"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(d.innerHTML="&nbsp;",d.focus(),null!=a.clipboardData&&this.pasteCells(a,d,!0,!0),mxEvent.isConsumed(a)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,d,!1,!0)}),0))}),!0);var m=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==d?!0:m.apply(this,arguments)}};EditorUi.prototype.getLinkTitle=function(a){var c=Graph.prototype.getLinkTitle.apply(this,arguments);
if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");0<b&&(c=this.getPageById(a.substring(b+1)),c=null!=c?c.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(c=mxResources.get("action"));return c};EditorUi.prototype.handleCustomLink=function(a){if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");if(a=this.getPageById(a.substring(c+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};
EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(a){a.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(c){}this.fireEvent(new mxEventObject("styleChanged",
"keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",mxUtils.bind(this,function(a,b){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);else{var c=b.getProperty("customFonts");this.menus.customFonts=c;mxSettings.setCustomFonts(c)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",
mxUtils.bind(this,function(a,b){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor,
Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",
mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(a,b,d){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(a,
-c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(F){this.handleError(F)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(m){this.handleError(m)}};
+c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(F){this.handleError(F)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(k){this.handleError(k)}};
EditorUi.prototype.writeImageToClipboard=function(a,b,d,e){var c=this.base64ToBlob(a.substring(a.indexOf(",")+1),"image/png");a=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="'+a+'" width="'+b+'" height="'+d+'">'],{type:"text/html"})});navigator.clipboard.write([a])["catch"](e)};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(c.encodeCells(d));
mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var a=null;if(Editor.enableNativeCipboard){var b=this.editor.graph;b.isSelectionEmpty()||(a=mxUtils.sortCells(b.getExportableCells(b.model.getTopmostCells(b.getSelectionCells()))),b=mxUtils.getXml(b.encodeCells(a)),navigator.clipboard.writeText(b))}return a};EditorUi.prototype.pasteXml=
function(a,b,d,e){var c=this.editor.graph,f=null;c.lastPasteXml==a?c.pasteCounter++:(c.lastPasteXml=a,c.pasteCounter=0);var g=c.pasteCounter*c.gridSize;if(d||this.isCompatibleString(a))f=this.importXml(a,g,g),c.setSelectionCells(f);else if(b&&1==c.getSelectionCount()){g=c.getStartEditingCell(c.getSelectionCell(),e);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a)&&"image"==c.getCurrentCellStyle(g)[mxConstants.STYLE_SHAPE])c.setCellStyles(mxConstants.STYLE_IMAGE,a,[g]);else{c.model.beginUpdate();try{c.labelChanged(g,
a),Graph.isLink(a)&&c.setLinkForCell(g,a)}finally{c.model.endUpdate()}}c.setSelectionCell(g)}else f=c.getInsertPoint(),c.isMouseInsertPoint()&&(g=0,c.lastPasteXml==a&&0<c.pasteCounter&&c.pasteCounter--),f=this.insertTextAt(a,f.x+g,f.y+g,!0),c.setSelectionCells(f);c.isSelectionEmpty()||(c.scrollCellToVisible(c.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell())));return f};EditorUi.prototype.pasteCells=function(a,b,d,e){if(!mxEvent.isConsumed(a)){var c=
-b,f=!1;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var g=a.clipboardData.getData("text/plain"),m=!1;if(null!=g&&0<g.length&&"%3CmxGraphModel%3E"==g.substring(0,18)){var l=decodeURIComponent(g);this.isCompatibleString(l)&&(m=!0,g=l)}m=m?null:a.clipboardData.getData("text/html");null!=m&&0<m.length?(c=this.parseHtmlData(m),f="text/plain"!=c.getAttribute("data-type")):null!=g&&0<g.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,m))}g=c.getElementsByTagName("span");if(null!=
+b,f=!1;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var g=a.clipboardData.getData("text/plain"),k=!1;if(null!=g&&0<g.length&&"%3CmxGraphModel%3E"==g.substring(0,18)){var m=decodeURIComponent(g);this.isCompatibleString(m)&&(k=!0,g=m)}k=k?null:a.clipboardData.getData("text/html");null!=k&&0<k.length?(c=this.parseHtmlData(k),f="text/plain"!=c.getAttribute("data-type")):null!=g&&0<g.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,k))}g=c.getElementsByTagName("span");if(null!=
g&&0<g.length&&"application/vnd.lucid.chart.objects"===g[0].getAttribute("data-lucid-type"))d=g[0].getAttribute("data-lucid-content"),null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){var c=this.editor.graph;c.lastPasteXml==a?c.pasteCounter++:(c.lastPasteXml=a,c.pasteCounter=0);var b=c.pasteCounter*c.gridSize;c.setSelectionCells(this.importXml(a,b,b));c.scrollCellToVisible(c.getSelectionCell())}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a));else{f=
-f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText);m=!1;try{var n=f.lastIndexOf("%3E");0<=n&&n<f.length-3&&(f=f.substring(0,n+3))}catch(M){}try{g=c.getElementsByTagName("span"),l=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[0].textContent)):decodeURIComponent(f),this.isCompatibleString(l)&&(m=!0,f=l)}catch(M){}try{if(null!=f&&0<f.length){this.pasteXml(f,e,m,a);try{mxEvent.consume(a)}catch(M){}}else if(!d){var q=this.editor.graph;q.lastPasteXml=null;q.pasteCounter=
-0}}catch(M){this.handleError(M)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var c=null,b=0;b<a.length;b++)mxEvent.addListener(a[b],"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[b],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=
+f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText);k=!1;try{var l=f.lastIndexOf("%3E");0<=l&&l<f.length-3&&(f=f.substring(0,l+3))}catch(L){}try{g=c.getElementsByTagName("span"),m=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&(k=!0,f=m)}catch(L){}try{if(null!=f&&0<f.length){this.pasteXml(f,e,k,a);try{mxEvent.consume(a)}catch(L){}}else if(!d){var q=this.editor.graph;q.lastPasteXml=null;q.pasteCounter=
+0}}catch(L){this.handleError(L)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var c=null,b=0;b<a.length;b++)mxEvent.addListener(a[b],"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[b],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=
this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[b],"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var b=this.extractGraphModelFromEvent(a);
if(null==b){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?b=d.getData("Text"):(b=null,b=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=b&&0<b.length?(d=document.createElement("div"),d.innerHTML=this.editor.graph.sanitizeHtml(b),d=d.getElementsByTagName("img"),0<d.length&&(b=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,
"text/plain")&&(b=d.getData("text/plain"))),null!=b&&("data:image/png;base64,"==b.substring(0,22)?(b=this.extractGraphModelFromPng(b),null!=b&&0<b.length&&this.openLocalFile(b,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(b)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(b))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(b)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):
-window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var l=document.documentElement;d=(e.clientWidth||l.clientWidth)-3;e=Math.max(e.clientHeight||0,l.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;l=document.createElement("div");
-l.style.zIndex=mxPopupMenu.prototype.zIndex+2;l.style.border="3px dotted rgb(254, 137, 12)";l.style.pointerEvents="none";l.style.position="absolute";l.style.top=b+"px";l.style.left=c+"px";l.style.width=Math.max(0,d-3)+"px";l.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(l):document.body.appendChild(l);return l};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);
-a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,k){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
+window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var c=0,b=0,d,e;if(null==a){e=document.body;var m=document.documentElement;d=(e.clientWidth||m.clientWidth)-3;e=Math.max(e.clientHeight||0,m.clientHeight)-3}else c=a.offsetTop,b=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;m=document.createElement("div");
+m.style.zIndex=mxPopupMenu.prototype.zIndex+2;m.style.border="3px dotted rgb(254, 137, 12)";m.style.pointerEvents="none";m.style.position="absolute";m.style.top=c+"px";m.style.left=b+"px";m.style.width=Math.max(0,d-3)+"px";m.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(m):document.body.appendChild(m);return m};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var c=this.editor.extractGraphModel(a.documentElement);
+a=[];if(null!=c){var b=new mxCodec(c.ownerDocument),d=new mxGraphModel;b.decode(c,d);c=d.getChildAt(d.getRoot(),0);for(b=0;b<d.getChildCount(c);b++)a.push(d.getChildAt(c,b))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,m){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
".drawio":b+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,b))}catch(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,b,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(b)||/(\.vs(x|sx?))($|\?)/i.test(b))this.importVisio(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(/(\.*<graphml )/.test(a))this.importGraphML(a,
mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,b))this.parseFile(d,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?c(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(a))/(\.json)$/i.test(b)&&(b=b.substring(0,
b.length-5)+".drawio"),this.convertLucidChart(a,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,b,e)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==a.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,d.name))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else if(0==
-a.indexOf("PK"))this.importZipFile(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(a,b,e)}));else{if("image/png"==d.type.substring(0,9))a=this.extractGraphModelFromPng(a);else if("application/pdf"==d.type){var f=Editor.extractGraphModelFromPdf(a);null!=f&&(k=null,e=!0,a=f)}this.spinner.stop();this.openLocalFile(a,b,e,k,null!=k?d:null)}}};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=
-0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){try{this.openFileHandle(c.target.result,a.name,a,b)}catch(u){this.handleError(u)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"!==a.type.substring(0,5)&&"application/pdf"!==a.type||"image/svg"===a.type.substring(0,9)?c.readAsText(a):c.readAsDataURL(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,d,e,k){var c=this.getCurrentFile(),
-f=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d,e,k))});if(null!=a&&0<a.length)null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)?f():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)&&null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),
+a.indexOf("PK"))this.importZipFile(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(a,b,e)}));else{if("image/png"==d.type.substring(0,9))a=this.extractGraphModelFromPng(a);else if("application/pdf"==d.type){var f=Editor.extractGraphModelFromPdf(a);null!=f&&(m=null,e=!0,a=f)}this.spinner.stop();this.openLocalFile(a,b,e,m,null!=m?d:null)}}};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=
+0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){try{this.openFileHandle(c.target.result,a.name,a,b)}catch(v){this.handleError(v)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"!==a.type.substring(0,5)&&"application/pdf"!==a.type||"image/svg"===a.type.substring(0,9)?c.readAsText(a):c.readAsDataURL(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,d,e,m){var c=this.getCurrentFile(),
+f=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d,e,m))});if(null!=a&&0<a.length)null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)?f():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)&&null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),
null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=
0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],d;for(d in a)b.push(d);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&
(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.setGraphEnabled=function(a){this.diagramContainer.style.visibility=a?"":"hidden";this.formatContainer.style.visibility=a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebarContainer.style.display=a?"":"none";this.hsplit.style.display=
@@ -3569,219 +3571,219 @@ a?"":"none";this.editor.graph.setEnabled(a);null!=this.ruler&&(this.ruler.hRuler
this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);(window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,d){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);if(null==a||0==a.length)a=
this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,a,{}));this.mode=App.MODE_EMBED;this.setFileData(a);this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&
(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=
-function(a){var b=null,c=!1,d=!1,e=null,l=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,l);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&
-"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(na){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(ca){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):
-g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?n.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",
-message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==g.action){var l=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),l,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",
-message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(ca){n.postMessage(JSON.stringify({event:"draft",error:ca.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
-var p=1==g.enableRecent,q=1==g.enableSearch,t=1==g.enableCustomTemp,m=new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(b,c,d,e){b=b||this.emptyDiagramXml;null!=g.callback?n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d,libs:e,builtIn:!0,message:g}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,p?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",
-null,null,a,function(){a(null,"Network Error!")})}):null,q?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",[a],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){n.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,t?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null);this.showDialog(m.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
-m.init();return}if("textContent"==g.action){var u=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:u,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var A=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==
-g.show||g.show?this.spinner.spin(document.body,A):this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var H=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var F=this.editor.graph,Q=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;
-b.message=g;b.data=a;b.xml=H;n.postMessage(JSON.stringify(b),"*")}),x=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(H)));F!=this.editor.graph&&F.container.parentNode.removeChild(F.container);Q(a)}),B=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(H),c=!1);if(null!=this.pages&&
-this.currentPage.getId()!=B){for(var C=F.getGlobalVariable,F=this.createTemporaryGraph(F.getStylesheet()),ga,D=0;D<this.pages.length;D++)if(this.pages[D].getId()==B){ga=this.updatePageRoot(this.pages[D]);break}null==ga&&(ga=this.currentPage);F.getGlobalVariable=function(a){return"page"==a?ga.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(F.container);F.model.setRoot(ga.root)}if(null!=g.layerIds){for(var U=F.model,Z=U.getChildCells(U.getRoot()),m={},D=0;D<g.layerIds.length;D++)m[g.layerIds[D]]=
-!0;for(D=0;D<Z.length;D++)U.setVisible(Z[D],m[Z[D].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){x(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){x(null)}),null,null,g.scale,g.transparent,g.shadow,null,F,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):
-"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(H))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?Q("data:image/png;base64,"+a.getText()):x(null)}),mxUtils.bind(this,function(){x(null)}))}}else{null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(g.xml),c=!1);A=this.createLoadMessage("export");A.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var Y=this.getXmlFileData();A.xml=
-mxUtils.getXml(Y);A.data=this.getFileData(null,null,!0,null,null,null,Y);A.format=g.format}else if("html"==g.format)H=this.editor.getGraphXml(),A.data=this.getHtml(H,this.editor.graph),A.xml=mxUtils.getXml(H),A.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ma=null!=g.background?g.background:this.editor.graph.background;ma==mxConstants.NONE&&(ma=null);A.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);A.format="svg";var pa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();A.data=Editor.createSvgDataUri(a);n.postMessage(JSON.stringify(A),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(A.xml,this.editor.graph,null,!0,pa,null,null,g.embedImages,ma,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);
-var aa=this.editor.graph.getSvg(ma,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(aa);this.embedFonts(aa,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){pa(mxUtils.getXml(a))})):pa(mxUtils.getXml(a))}))}return}n.postMessage(JSON.stringify(A),"*")}return}if("load"==g.action){d=1==g.autosave;
-this.hideDialog();null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified);null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit);null!=g.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(l=document.createElement("span"),mxUtils.write(l,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight=
-"12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(l),this.embedFilenameSpan=l);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(ca){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):
-null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==g.action){var ja=this.getCurrentFile();null!=ja&&(l=k(g.xml),null!=l&&""!=l&&ja.mergeFile(new LocalFile(this,l),function(){n.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){n.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):
-n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}catch(ca){this.handleError(ca)}}var ka=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),ha=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(P){this.handleError(P)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");e=ka();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=ka();if(d!=e&&
-!c){var f=this.createLoadMessage("autosave");f.xml=d;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",
-b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=f;n.postMessage(JSON.stringify(k),"*")}});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){ha(a,
-f)},mxUtils.bind(this,function(a){this.handleError(a)}),k)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&ha(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,
-function(a){ha(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):null==g||"object"!==typeof g||null==g.format||null==g.data&&null==g.url?(g=k(g),ha(g,f)):this.loadDescriptor(g,mxUtils.bind(this,function(a){ha(ka(),f)}),mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,l="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(l,"*");if("json"==urlParams.proto){var q=this.editor.graph.openLink;
-this.editor.graph.openLink=function(a,b,c){q.apply(this,arguments);n.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";var d=b;if("1"==
-urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(b,e);b.setAttribute("title",e);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));a.appendChild(b)}}else mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),
-a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b),d=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),
-mxUtils.write(b,d),b.setAttribute("title",d),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,
-mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);
-if(null!=a[e].config)for(var l in a[e].config)f[l]=a[e].config[l];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var l={},n=null,q=null,t=null,y=null,M=null,L=null,I=null,G=null,K=null,E="",J="auto",H="auto",X=null,Q=null,x=40,B=40,C=100,ga=0,D=this.editor.graph;D.getGraphBounds();for(var U=function(){null!=b?b(sa):(D.setSelectionCells(sa),D.scrollCellToVisible(D.getSelectionCell()))},
-Z=D.getFreeInsertPoint(),Y=Z.x,ma=Z.y,Z=ma,pa=null,aa="auto",K=null,ja=[],ka=null,ha=null,ca=0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var na=a.indexOf(":");if(0<na){var V=mxUtils.trim(a.substring(1,na)),P=mxUtils.trim(a.substring(na+1));"label"==V?pa=D.sanitizeHtml(P):"labelname"==V&&0<P.length&&"-"!=P?M=P:"labels"==V&&0<P.length&&"-"!=
-P?L=JSON.parse(P):"style"==V?q=P:"parentstyle"==V?I=P:"stylename"==V&&0<P.length&&"-"!=P?y=P:"styles"==V&&0<P.length&&"-"!=P?t=JSON.parse(P):"vars"==V&&0<P.length&&"-"!=P?n=JSON.parse(P):"identity"==V&&0<P.length&&"-"!=P?G=P:"parent"==V&&0<P.length&&"-"!=P?K=P:"namespace"==V&&0<P.length&&"-"!=P?E=P:"width"==V?J=P:"height"==V?H=P:"left"==V&&0<P.length?X=P:"top"==V&&0<P.length?Q=P:"ignore"==V?ha=P.split(","):"connect"==V?ja.push(JSON.parse(P)):"link"==V?ka=P:"padding"==V?ga=parseFloat(P):"edgespacing"==
-V?x=parseFloat(P):"nodespacing"==V?B=parseFloat(P):"levelspacing"==V?C=parseFloat(P):"layout"==V&&(aa=P)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var oa=this.editor.csvToArray(c[ca]),V=na=null,P=[],T=0;T<oa.length;T++)G==oa[T]&&(na=T),K==oa[T]&&(V=T),P.push(mxUtils.trim(oa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+P[0]+"%");if(null!=ja)for(var da=0;da<ja.length;da++)null==l[ja[da].to]&&(l[ja[da].to]={});G=[];for(T=ca+1;T<
-c.length;T++){var la=this.editor.csvToArray(c[T]);if(null==la){var ra=40<c[T].length?c[T].substring(0,40)+"...":c[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<la.length&&G.push(la)}D.model.beginUpdate();try{for(T=0;T<G.length;T++){var la=G[T],O=null,ia=null!=na?E+la[na]:null;null!=ia&&(O=D.model.getCell(ia));var c=null!=O,fa=new mxCell(pa,new mxGeometry(Y,Z,0,0),q||"whiteSpace=wrap;html=1;");fa.vertex=!0;fa.id=ia;for(var R=0;R<la.length;R++)D.setAttributeForCell(fa,
-P[R],la[R]);if(null!=M&&null!=L){var ya=L[fa.getAttribute(M)];null!=ya&&D.labelChanged(fa,ya)}if(null!=y&&null!=t){var N=t[fa.getAttribute(y)];null!=N&&(fa.style=N)}D.setAttributeForCell(fa,"placeholders","1");fa.style=D.replacePlaceholders(fa,fa.style,n);c&&(D.model.setGeometry(O,fa.geometry),D.model.setStyle(O,fa.style),0>mxUtils.indexOf(e,O)&&e.push(O));O=fa;if(!c)for(da=0;da<ja.length;da++)l[ja[da].to][O.getAttribute(ja[da].to)]=O;null!=ka&&"link"!=ka&&(D.setLinkForCell(O,O.getAttribute(ka)),
-D.setAttributeForCell(O,ka,null));D.fireEvent(new mxEventObject("cellsInserted","cells",[O]));var ba=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=X&&null!=O.getAttribute(X)&&(O.geometry.x=Y+parseFloat(O.getAttribute(X))),null!=Q&&null!=O.getAttribute(Q)&&(O.geometry.y=ma+parseFloat(O.getAttribute(Q))),"@"==J.charAt(0)&&null!=O.getAttribute(J.substring(1))?O.geometry.width=parseFloat(O.getAttribute(J.substring(1))):O.geometry.width="auto"==J?ba.width+ga:parseFloat(J),"@"==H.charAt(0)&&
-null!=O.getAttribute(H.substring(1))?O.geometry.height=parseFloat(O.getAttribute(H.substring(1))):O.geometry.height="auto"==H?ba.height+ga:parseFloat(H),Z+=O.geometry.height+B);c?(null==f[ia]&&(f[ia]=[]),f[ia].push(O)):(K=null!=V?D.model.getCell(E+la[V]):null,d.push(O),null!=K?(K.style=D.replacePlaceholders(K,I,n),D.addCell(O,K)):e.push(D.addCell(O)))}for(var qa=e.slice(),sa=e.slice(),da=0;da<ja.length;da++)for(var ta=ja[da],T=0;T<d.length;T++){var O=d[T],Fa=mxUtils.bind(this,function(a,b,c){var d=
-b.getAttribute(c.from);if(null!=d&&(D.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),e=0;e<d.length;e++){var f=l[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.sourcelabel&&(g=D.replacePlaceholders(b,c.sourcelabel,n)+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(g=(g||"")+D.replacePlaceholders(f,c.targetlabel,n));var k="target"==c.placeholders==!c.invert?f:a,k=null!=c.style?
-D.replacePlaceholders(k,c.style,n):D.createCurrentEdgeStyle(),g=D.insertEdge(null,null,g||"",c.invert?f:a,c.invert?a:f,k);if(null!=c.labels)for(k=0;k<c.labels.length;k++){var m=c.labels[k],p=new mxCell(m.label||k,new mxGeometry(null!=m.x?m.x:0,null!=m.y?m.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=m.placeholders&&(p.value=D.replacePlaceholders("target"==m.placeholders==!c.invert?f:a,p.value,n));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=
-m.dx?m.dx:0,null!=m.dy?m.dy:0);g.insert(p)}sa.push(g);mxUtils.remove(c.invert?a:f,qa)}}});Fa(O,O,ta);if(null!=f[O.id])for(R=0;R<f[O.id].length;R++)Fa(O,f[O.id][R],ta)}if(null!=ha)for(T=0;T<d.length;T++)for(O=d[T],R=0;R<ha.length;R++)D.setAttributeForCell(O,mxUtils.trim(ha[R]),null);if(0<e.length){var Da=new mxParallelEdgeLayout(D);Da.spacing=x;Da.checkOverlap=!0;var Ga=function(){0<Da.spacing&&Da.execute(D.getDefaultParent());for(var a=0;a<e.length;a++){var b=D.getCellGeometry(e[a]);b.x=Math.round(D.snap(b.x));
-b.y=Math.round(D.snap(b.y));"auto"==J&&(b.width=Math.round(D.snap(b.width)));"auto"==H&&(b.height=Math.round(D.snap(b.height)))}};if("["==aa.charAt(0)){var Ja=U;D.view.validate();this.executeLayoutList(JSON.parse(aa),function(){Ga();Ja()});U=null}else if("circle"==aa){var xa=new mxCircleLayout(D);xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Ia=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Ia.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){xa.execute(D.getDefaultParent());
-Ga()},!0,U);U=null}else if("horizontaltree"==aa||"verticaltree"==aa||"auto"==aa&&sa.length==2*e.length-1&&1==qa.length){D.view.validate();var za=new mxCompactTreeLayout(D,"horizontaltree"==aa);za.levelDistance=B;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(D.getDefaultParent(),0<qa.length?qa[0]:null)},!0,U);U=null}else if("horizontalflow"==aa||"verticalflow"==aa||"auto"==aa&&1==qa.length){D.view.validate();var ua=new mxHierarchicalLayout(D,"horizontalflow"==aa?mxConstants.DIRECTION_WEST:
-mxConstants.DIRECTION_NORTH);ua.intraCellSpacing=B;ua.parallelEdgeSpacing=x;ua.interRankCellSpacing=C;ua.disableEdgeStyle=!1;this.executeLayout(function(){ua.execute(D.getDefaultParent(),sa);D.moveCells(sa,Y,ma)},!0,U);U=null}else if("organic"==aa||"auto"==aa&&sa.length>e.length){D.view.validate();var va=new mxFastOrganicLayout(D);va.forceConstant=3*B;va.disableEdgeStyle=!1;va.resetEdges=!1;var W=va.isVertexIgnored;va.isVertexIgnored=function(a){return W.apply(this,arguments)||0>mxUtils.indexOf(e,
-a)};this.executeLayout(function(){va.execute(D.getDefaultParent());Ga()},!0,U);U=null}}this.hideDialog()}finally{D.model.endUpdate()}null!=U&&U()}}catch(Aa){this.handleError(Aa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=
-null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d,e,k){a=new LinkDialog(this,a,b,d,!0,e,k);this.showDialog(a.container,560,130,!0,!0);a.init()};var l=EditorUi.prototype.createOutline;
-EditorUi.prototype.createOutline=function(a){var b=l.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;
-b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,
-(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/a,8/a)};var n=b.init;b.init=function(){n.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*
-b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;f.background=e.background;var g=mxUtils.getCurrentStyle(e.container);f.container.style.backgroundColor=g.backgroundColor;null!=e.view.backgroundPageShape&&null!=f.view.backgroundPageShape&&(f.view.backgroundPageShape.fill=
-e.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,!0);b.outline.view.validate()});return b};EditorUi.prototype.getServiceCount=function(a){var b=1;null==this.drive&&"function"!==typeof window.DriveClient||b++;null==this.dropbox&&"function"!==typeof window.DropboxClient||b++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||b++;null!=this.gitHub&&b++;null!=this.gitLab&&b++;a&&isLocalStorage&&"1"==urlParams.browser&&b++;return b};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();
-this.updateActionStates();var a=this.getCurrentFile(),b=null!=a||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(b);this.menus.get("viewZoom").setEnabled(b);var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();
-this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));a="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.actions.get("undo").setEnabled(this.canUndo()&&a);this.actions.get("redo").setEnabled(this.canRedo()&&
-a);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=
-function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var t=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){t.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),d=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=d&&
-d.isEditable()&&d.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b);this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);
-this.actions.get("createRevision").setEnabled(b);this.actions.get("moveToFolder").setEnabled(null!=d);this.actions.get("makeCopy").setEnabled(null!=d&&!d.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==d||!d.isRestricted()));this.actions.get("publishLink").setEnabled(null!=d&&!d.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=
-this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=d&&d.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=d);this.menus.get("publish").setEnabled(null!=d&&!d.isRestricted());d=this.actions.get("findReplace");d.setEnabled("hidden"!=this.diagramContainer.style.visibility);d.label=mxResources.get("find")+(a.isEnabled()?"/"+mxResources.get("replace"):"")+"...";a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&
-null!=a&&null!=a.shape&&null!=a.shape.stencil)};var q=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,k,l,n,q){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");
-else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,k,l)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),m=Math.floor(g.width*k/c.view.scale),p=Math.floor(g.height*k/c.view.scale);if(f.length<=MAX_REQUEST_SIZE&&m*p<MAX_AREA)if(a.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!a.isExportToCanvas()){var t={globalVars:c.getExportVariables()};q&&(t.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});a.saveRequest(b,d,function(a,
-b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<n?"&dpi="+n:"")+"&bg="+(null!=e?e:"none")+"&w="+m+"&h="+p+"&border="+l+"&xml="+encodeURIComponent(f))})}else"png"==d?a.exportImage(k,null==e||"none"==e,!0,!1,!1,l,!0,!1,null,q,n):a.exportImage(k,!1,!0,!1,!1,l,!0,!1,"jpeg",q);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);
-var a=this.editor.graph,b="";if(null!=this.pages)for(var d=0;d<this.pages.length;d++){var e=a;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(a.getStylesheet()),this.updatePageRoot(this.pages[d]),e.model.setRoot(this.pages[d].root));b+=this.pages[d].getName()+" "+e.getIndexableText()+" "}else b=a.getIndexableText();this.editor.graph.setEnabled(!0);return b};EditorUi.prototype.showRemotelyStoredLibrary=function(a){var b={},c=document.createElement("div");c.style.whiteSpace="nowrap";var d=
-document.createElement("h3");mxUtils.write(d,mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var l={};try{var n=mxSettings.getCustomLibraries();for(a=0;a<n.length;a++){var q=n[a];if("R"==q.substring(0,1)){var t=JSON.parse(decodeURIComponent(q.substring(1)));
-l[t[0]]={id:t[0],title:t[1],downloadUrl:t[2]}}}}catch(z){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML="";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];l[d.id]&&(b[d.id]=d);var f=this.addCheckbox(e,d.title,l[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,f)}},mxUtils.bind(this,
-function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));e.appendChild(b)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==l[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],
-null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(I){this.handleError(I,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in l)b[c]||this.closeLibrary(new RemoteLibrary(this,null,l[c]));0==a&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.container,
+function(a){var b=null,c=!1,d=!1,e=null,m=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,m);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&
+"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(na){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(ba){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):
+g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?l.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):l.postMessage(JSON.stringify({event:"prompt-cancel",
+message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"discard",
+message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(ba){l.postMessage(JSON.stringify({event:"draft",error:ba.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
+var q=1==g.enableRecent,t=1==g.enableSearch,u=1==g.enableCustomTemp,m=new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(b,c,d,e){b=b||this.emptyDiagramXml;null!=g.callback?l.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d,libs:e,builtIn:!0,message:g}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,q?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",
+null,null,a,function(){a(null,"Network Error!")})}):null,t?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",[a],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){l.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null);this.showDialog(m.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
+m.init();return}if("textContent"==g.action){var v=this.getDiagramTextContent();l.postMessage(JSON.stringify({event:"textContent",data:v,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var A=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==
+g.show||g.show?this.spinner.spin(document.body,A):this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var I=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var R=this.editor.graph,N=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;
+b.message=g;b.data=a;b.xml=I;l.postMessage(JSON.stringify(b),"*")}),n=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(I)));R!=this.editor.graph&&R.container.parentNode.removeChild(R.container);N(a)}),B=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(I),c=!1);if(null!=this.pages&&
+this.currentPage.getId()!=B){for(var C=R.getGlobalVariable,R=this.createTemporaryGraph(R.getStylesheet()),F,E=0;E<this.pages.length;E++)if(this.pages[E].getId()==B){F=this.updatePageRoot(this.pages[E]);break}null==F&&(F=this.currentPage);R.getGlobalVariable=function(a){return"page"==a?F.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(R.container);R.model.setRoot(F.root)}if(null!=g.layerIds){for(var U=R.model,Y=U.getChildCells(U.getRoot()),m={},E=0;E<g.layerIds.length;E++)m[g.layerIds[E]]=
+!0;for(E=0;E<Y.length;E++)U.setVisible(Y[E],m[Y[E].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){n(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){n(null)}),null,null,g.scale,g.transparent,g.shadow,null,R,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):
+"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(I))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?N("data:image/png;base64,"+a.getText()):n(null)}),mxUtils.bind(this,function(){n(null)}))}}else{null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(g.xml),c=!1);A=this.createLoadMessage("export");A.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var X=this.getXmlFileData();A.xml=
+mxUtils.getXml(X);A.data=this.getFileData(null,null,!0,null,null,null,X);A.format=g.format}else if("html"==g.format)I=this.editor.getGraphXml(),A.data=this.getHtml(I,this.editor.graph),A.xml=mxUtils.getXml(I),A.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ma=null!=g.background?g.background:this.editor.graph.background;ma==mxConstants.NONE&&(ma=null);A.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);A.format="svg";var pa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();A.data=Editor.createSvgDataUri(a);l.postMessage(JSON.stringify(A),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(A.xml,this.editor.graph,null,!0,pa,null,null,g.embedImages,ma,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);
+var Z=this.editor.graph.getSvg(ma,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(Z);this.embedFonts(Z,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){pa(mxUtils.getXml(a))})):pa(mxUtils.getXml(a))}))}return}l.postMessage(JSON.stringify(A),"*")}return}if("load"==g.action){d=1==g.autosave;this.hideDialog();
+null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified);null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit);null!=g.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop=
+"6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(p),this.embedFilenameSpan=p);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(ba){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==
+g.action){var ha=this.getCurrentFile();null!=ha&&(p=k(g.xml),null!=p&&""!=p&&ha.mergeFile(new LocalFile(this,p),function(){l.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){l.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(l):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):l.postMessage(JSON.stringify({error:"unknownMessage",
+data:JSON.stringify(g)}),"*");return}}catch(ba){this.handleError(ba)}}var ia=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),fa=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(Q){this.handleError(Q)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");e=ia();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=ia();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;
+(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",
+b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=f;l.postMessage(JSON.stringify(k),"*")}});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){fa(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),
+k)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&fa(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){fa(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):
+null==g||"object"!==typeof g||null==g.format||null==g.data&&null==g.url?(g=k(g),fa(g,f)):this.loadDescriptor(g,mxUtils.bind(this,function(a){fa(ia(),f)}),mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}}));var l=window.opener||window.parent,m="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";l.postMessage(m,"*");if("json"==urlParams.proto){var q=this.editor.graph.openLink;this.editor.graph.openLink=function(a,b,c){q.apply(this,
+arguments);l.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";var d=b;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e=
+"1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(b,e);b.setAttribute("title",e);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));a.appendChild(b)}}else mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&
+(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b),d=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(b,d),b.setAttribute("title",
+d),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,
+mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var m in a[e].config)f[m]=
+a[e].config[m];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var m={},l=null,q=null,u=null,z=null,L=null,M=null,G=null,J=null,H=null,D="",K="auto",I="auto",R=null,N=null,n=40,B=40,C=100,ka=0,E=this.editor.graph;E.getGraphBounds();for(var U=function(){null!=b?b(sa):(E.setSelectionCells(sa),E.scrollCellToVisible(E.getSelectionCell()))},Y=E.getFreeInsertPoint(),
+X=Y.x,ma=Y.y,Y=ma,pa=null,Z="auto",H=null,ha=[],ia=null,fa=null,ba=0;ba<c.length&&"#"==c[ba].charAt(0);){a=c[ba];for(ba++;ba<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ba].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ba].substring(1)),ba++;if("#"!=a.charAt(1)){var na=a.indexOf(":");if(0<na){var V=mxUtils.trim(a.substring(1,na)),Q=mxUtils.trim(a.substring(na+1));"label"==V?pa=E.sanitizeHtml(Q):"labelname"==V&&0<Q.length&&"-"!=Q?L=Q:"labels"==V&&0<Q.length&&"-"!=Q?M=JSON.parse(Q):"style"==
+V?q=Q:"parentstyle"==V?G=Q:"stylename"==V&&0<Q.length&&"-"!=Q?z=Q:"styles"==V&&0<Q.length&&"-"!=Q?u=JSON.parse(Q):"vars"==V&&0<Q.length&&"-"!=Q?l=JSON.parse(Q):"identity"==V&&0<Q.length&&"-"!=Q?J=Q:"parent"==V&&0<Q.length&&"-"!=Q?H=Q:"namespace"==V&&0<Q.length&&"-"!=Q?D=Q:"width"==V?K=Q:"height"==V?I=Q:"left"==V&&0<Q.length?R=Q:"top"==V&&0<Q.length?N=Q:"ignore"==V?fa=Q.split(","):"connect"==V?ha.push(JSON.parse(Q)):"link"==V?ia=Q:"padding"==V?ka=parseFloat(Q):"edgespacing"==V?n=parseFloat(Q):"nodespacing"==
+V?B=parseFloat(Q):"levelspacing"==V?C=parseFloat(Q):"layout"==V&&(Z=Q)}}}if(null==c[ba])throw Error(mxResources.get("invalidOrMissingFile"));for(var oa=this.editor.csvToArray(c[ba]),V=na=null,Q=[],T=0;T<oa.length;T++)J==oa[T]&&(na=T),H==oa[T]&&(V=T),Q.push(mxUtils.trim(oa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+Q[0]+"%");if(null!=ha)for(var ca=0;ca<ha.length;ca++)null==m[ha[ca].to]&&(m[ha[ca].to]={});J=[];for(T=ba+1;T<c.length;T++){var ja=this.editor.csvToArray(c[T]);
+if(null==ja){var ra=40<c[T].length?c[T].substring(0,40)+"...":c[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ja.length&&J.push(ja)}E.model.beginUpdate();try{for(T=0;T<J.length;T++){var ja=J[T],O=null,ga=null!=na?D+ja[na]:null;null!=ga&&(O=E.model.getCell(ga));var c=null!=O,ea=new mxCell(pa,new mxGeometry(X,Y,0,0),q||"whiteSpace=wrap;html=1;");ea.vertex=!0;ea.id=ga;for(var S=0;S<ja.length;S++)E.setAttributeForCell(ea,Q[S],ja[S]);if(null!=L&&null!=M){var ya=M[ea.getAttribute(L)];
+null!=ya&&E.labelChanged(ea,ya)}if(null!=z&&null!=u){var P=u[ea.getAttribute(z)];null!=P&&(ea.style=P)}E.setAttributeForCell(ea,"placeholders","1");ea.style=E.replacePlaceholders(ea,ea.style,l);c&&(E.model.setGeometry(O,ea.geometry),E.model.setStyle(O,ea.style),0>mxUtils.indexOf(e,O)&&e.push(O));O=ea;if(!c)for(ca=0;ca<ha.length;ca++)m[ha[ca].to][O.getAttribute(ha[ca].to)]=O;null!=ia&&"link"!=ia&&(E.setLinkForCell(O,O.getAttribute(ia)),E.setAttributeForCell(O,ia,null));E.fireEvent(new mxEventObject("cellsInserted",
+"cells",[O]));var aa=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=R&&null!=O.getAttribute(R)&&(O.geometry.x=X+parseFloat(O.getAttribute(R))),null!=N&&null!=O.getAttribute(N)&&(O.geometry.y=ma+parseFloat(O.getAttribute(N))),"@"==K.charAt(0)&&null!=O.getAttribute(K.substring(1))?O.geometry.width=parseFloat(O.getAttribute(K.substring(1))):O.geometry.width="auto"==K?aa.width+ka:parseFloat(K),"@"==I.charAt(0)&&null!=O.getAttribute(I.substring(1))?O.geometry.height=parseFloat(O.getAttribute(I.substring(1))):
+O.geometry.height="auto"==I?aa.height+ka:parseFloat(I),Y+=O.geometry.height+B);c?(null==f[ga]&&(f[ga]=[]),f[ga].push(O)):(H=null!=V?E.model.getCell(D+ja[V]):null,d.push(O),null!=H?(H.style=E.replacePlaceholders(H,G,l),E.addCell(O,H)):e.push(E.addCell(O)))}for(var qa=e.slice(),sa=e.slice(),ca=0;ca<ha.length;ca++)for(var ta=ha[ca],T=0;T<d.length;T++){var O=d[T],Fa=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(E.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
+e=0;e<d.length;e++){var f=m[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.sourcelabel&&(g=E.replacePlaceholders(b,c.sourcelabel,l)+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(g=(g||"")+E.replacePlaceholders(f,c.targetlabel,l));var k="target"==c.placeholders==!c.invert?f:a,k=null!=c.style?E.replacePlaceholders(k,c.style,l):E.createCurrentEdgeStyle(),g=E.insertEdge(null,null,g||"",c.invert?
+f:a,c.invert?a:f,k);if(null!=c.labels)for(k=0;k<c.labels.length;k++){var n=c.labels[k],p=new mxCell(n.label||k,new mxGeometry(null!=n.x?n.x:0,null!=n.y?n.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=n.placeholders&&(p.value=E.replacePlaceholders("target"==n.placeholders==!c.invert?f:a,p.value,l));if(null!=n.dx||null!=n.dy)p.geometry.offset=new mxPoint(null!=n.dx?n.dx:0,null!=n.dy?n.dy:0);g.insert(p)}sa.push(g);mxUtils.remove(c.invert?a:f,qa)}}});Fa(O,O,
+ta);if(null!=f[O.id])for(S=0;S<f[O.id].length;S++)Fa(O,f[O.id][S],ta)}if(null!=fa)for(T=0;T<d.length;T++)for(O=d[T],S=0;S<fa.length;S++)E.setAttributeForCell(O,mxUtils.trim(fa[S]),null);if(0<e.length){var Da=new mxParallelEdgeLayout(E);Da.spacing=n;Da.checkOverlap=!0;var Ga=function(){0<Da.spacing&&Da.execute(E.getDefaultParent());for(var a=0;a<e.length;a++){var b=E.getCellGeometry(e[a]);b.x=Math.round(E.snap(b.x));b.y=Math.round(E.snap(b.y));"auto"==K&&(b.width=Math.round(E.snap(b.width)));"auto"==
+I&&(b.height=Math.round(E.snap(b.height)))}};if("["==Z.charAt(0)){var Ja=U;E.view.validate();this.executeLayoutList(JSON.parse(Z),function(){Ga();Ja()});U=null}else if("circle"==Z){var xa=new mxCircleLayout(E);xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Ia=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Ia.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){xa.execute(E.getDefaultParent());Ga()},!0,U);U=null}else if("horizontaltree"==Z||"verticaltree"==Z||"auto"==
+Z&&sa.length==2*e.length-1&&1==qa.length){E.view.validate();var za=new mxCompactTreeLayout(E,"horizontaltree"==Z);za.levelDistance=B;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(E.getDefaultParent(),0<qa.length?qa[0]:null)},!0,U);U=null}else if("horizontalflow"==Z||"verticalflow"==Z||"auto"==Z&&1==qa.length){E.view.validate();var ua=new mxHierarchicalLayout(E,"horizontalflow"==Z?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ua.intraCellSpacing=B;ua.parallelEdgeSpacing=
+n;ua.interRankCellSpacing=C;ua.disableEdgeStyle=!1;this.executeLayout(function(){ua.execute(E.getDefaultParent(),sa);E.moveCells(sa,X,ma)},!0,U);U=null}else if("organic"==Z||"auto"==Z&&sa.length>e.length){E.view.validate();var wa=new mxFastOrganicLayout(E);wa.forceConstant=3*B;wa.disableEdgeStyle=!1;wa.resetEdges=!1;var W=wa.isVertexIgnored;wa.isVertexIgnored=function(a){return W.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){wa.execute(E.getDefaultParent());Ga()},!0,
+U);U=null}}this.hideDialog()}finally{E.model.endUpdate()}null!=U&&U()}}catch(Aa){this.handleError(Aa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==
+urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d,e,m){a=new LinkDialog(this,a,b,d,!0,e,m);this.showDialog(a.container,560,130,!0,!0);a.init()};var m=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=
+m.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
+null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-
+2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/a,8/a)};var l=b.init;b.init=function(){l.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
+this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;f.background=e.background;var g=mxUtils.getCurrentStyle(e.container);f.container.style.backgroundColor=g.backgroundColor;null!=e.view.backgroundPageShape&&null!=f.view.backgroundPageShape&&(f.view.backgroundPageShape.fill=e.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,
+!0);b.outline.view.validate()});return b};EditorUi.prototype.getServiceCount=function(a){var b=1;null==this.drive&&"function"!==typeof window.DriveClient||b++;null==this.dropbox&&"function"!==typeof window.DropboxClient||b++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||b++;null!=this.gitHub&&b++;null!=this.gitLab&&b++;a&&isLocalStorage&&"1"==urlParams.browser&&b++;return b};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var a=this.getCurrentFile(),
+b=null!=a||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(b);this.menus.get("viewZoom").setEnabled(b);var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&
+(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));a="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.actions.get("undo").setEnabled(this.canUndo()&&a);this.actions.get("redo").setEnabled(this.canRedo()&&a);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);
+this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=
+function(){var a=this.getCurrentFile();return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var u=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){u.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),d=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=d&&d.isEditable()&&d.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);
+this.actions.get("shadowVisible").setEnabled(b);this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);this.actions.get("createRevision").setEnabled(b);this.actions.get("moveToFolder").setEnabled(null!=
+d);this.actions.get("makeCopy").setEnabled(null!=d&&!d.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==d||!d.isRestricted()));this.actions.get("publishLink").setEnabled(null!=d&&!d.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=
+d&&d.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=d);this.menus.get("publish").setEnabled(null!=d&&!d.isRestricted());d=this.actions.get("findReplace");d.setEnabled("hidden"!=this.diagramContainer.style.visibility);d.label=mxResources.get("find")+(a.isEnabled()?"/"+mxResources.get("replace"):"")+"...";a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var q=EditorUi.prototype.destroy;
+EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,m,l,q,u){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,
+m,l)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),k=Math.floor(g.width*m/c.view.scale),p=Math.floor(g.height*m/c.view.scale);if(f.length<=MAX_REQUEST_SIZE&&k*p<MAX_AREA)if(a.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!a.isExportToCanvas()){var t={globalVars:c.getExportVariables()};u&&(t.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+
+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<q?"&dpi="+q:"")+"&bg="+(null!=e?e:"none")+"&w="+k+"&h="+p+"&border="+l+"&xml="+encodeURIComponent(f))})}else"png"==d?a.exportImage(m,null==e||"none"==e,!0,!1,!1,l,!0,!1,null,u,q):a.exportImage(m,!1,!0,!1,!1,l,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var a=this.editor.graph,b="";if(null!=
+this.pages)for(var d=0;d<this.pages.length;d++){var e=a;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(a.getStylesheet()),this.updatePageRoot(this.pages[d]),e.model.setRoot(this.pages[d].root));b+=this.pages[d].getName()+" "+e.getIndexableText()+" "}else b=a.getIndexableText();this.editor.graph.setEnabled(!0);return b};EditorUi.prototype.showRemotelyStoredLibrary=function(a){var b={},c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,
+mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var m={};try{var l=mxSettings.getCustomLibraries();for(a=0;a<l.length;a++){var q=l[a];if("R"==q.substring(0,1)){var u=JSON.parse(decodeURIComponent(q.substring(1)));m[u[0]]=
+{id:u[0],title:u[1],downloadUrl:u[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML="";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];m[d.id]&&(b[d.id]=d);var f=this.addCheckbox(e,d.title,m[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,f)}},mxUtils.bind(this,
+function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));e.appendChild(b)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==m[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],
+null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(G){this.handleError(G,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in m)b[c]||this.closeLibrary(new RemoteLibrary(this,null,m[c]));0==a&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.container,
340,375,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(a){this.remoteWin=a;for(var b=0;b<this.remoteInvokeQueue.length;b++)a.postMessage(this.remoteInvokeQueue[b],
-"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(a){var b=a.msgMarkers,c=this.remoteInvokeCallbacks[b.callbackId];if(null==c)throw Error("No callback for "+(null!=b?b.callbackId:"null"));a.error?c.error&&c.error(a.error.errResp):c.callback&&c.callback.apply(this,a.resp);this.remoteInvokeCallbacks[b.callbackId]=null};EditorUi.prototype.remoteInvoke=function(a,b,d,e,k){var c=!0,f=window.setTimeout(mxUtils.bind(this,function(){c=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
-this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(f);c&&e.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(f);c&&k.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:m});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
-b){var c=mxUtils.bind(this,function(b,c){var d={event:"remoteInvokeResponse",msgMarkers:a.msgMarkers};null!=c?d.error={errResp:c}:null!=b&&(d.resp=b);this.remoteWin.postMessage(JSON.stringify(d),"*")});try{var d=a.funtionName,e=this.remoteInvokableFns[d];if(null!=e&&"function"===typeof this[d]){if(e.allowedDomains){for(var f=!1,l=0;l<e.allowedDomains.length;l++)if(b=="https://"+e.allowedDomains[l]){f=!0;break}if(!f){c(null,"Invalid Call: "+d+" is not allowed.");return}}var n=a.functionArgs;Array.isArray(n)||
-(n=[]);if(e.isAsync)n.push(function(){c(Array.prototype.slice.apply(arguments))}),n.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,n);else{var q=this[d].apply(this,n);c([q])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(z){c(null,"Invalid Call: An error occured, "+z.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
-function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=b&&b(u)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
+"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(a){var b=a.msgMarkers,c=this.remoteInvokeCallbacks[b.callbackId];if(null==c)throw Error("No callback for "+(null!=b?b.callbackId:"null"));a.error?c.error&&c.error(a.error.errResp):c.callback&&c.callback.apply(this,a.resp);this.remoteInvokeCallbacks[b.callbackId]=null};EditorUi.prototype.remoteInvoke=function(a,b,d,e,m){var c=!0,f=window.setTimeout(mxUtils.bind(this,function(){c=!1;m({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
+this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(f);c&&e.apply(this,arguments)}),k=mxUtils.bind(this,function(){window.clearTimeout(f);c&&m.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:k});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
+b){var c=mxUtils.bind(this,function(b,c){var d={event:"remoteInvokeResponse",msgMarkers:a.msgMarkers};null!=c?d.error={errResp:c}:null!=b&&(d.resp=b);this.remoteWin.postMessage(JSON.stringify(d),"*")});try{var d=a.funtionName,e=this.remoteInvokableFns[d];if(null!=e&&"function"===typeof this[d]){if(e.allowedDomains){for(var f=!1,m=0;m<e.allowedDomains.length;m++)if(b=="https://"+e.allowedDomains[m]){f=!0;break}if(!f){c(null,"Invalid Call: "+d+" is not allowed.");return}}var l=a.functionArgs;Array.isArray(l)||
+(l=[]);if(e.isAsync)l.push(function(){c(Array.prototype.slice.apply(arguments))}),l.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,l);else{var q=this[d].apply(this,l);c([q])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(y){c(null,"Invalid Call: An error occured, "+y.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
+function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(v){null!=b&&b(v)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(a){if(!a||"1"==urlParams.forceMigration){var b=document.createElement("iframe");b.style.display="none";b.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(b);var c=!0,d=!1,e,f=0,g=mxUtils.bind(this,function(){d=!0;this.setDatabaseItem(".drawioMigrated3",!0);b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;m()}),m=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(J){console.log(J)}}),l=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
-size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(J){console.log(J)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(H){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
-(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,m()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?l(f.resp[0]):k())}}catch(H){console.log(H)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(k){null!=b&&b(k)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,d,e,k){this.openDatabase(mxUtils.bind(this,function(c){try{k=k||"objects";Array.isArray(k)||(k=
-[k],a=[a],b=[b]);var f=c.transaction(k,"readwrite");f.oncomplete=d;f.onerror=e;for(c=0;c<k.length;c++)f.objectStore(k[c]).put(null!=a&&null!=a[c]?{key:a[c],data:b[c]}:b[c])}catch(A){null!=e&&e(A)}}),e)};EditorUi.prototype.removeDatabaseItem=function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){e=e||"objects";Array.isArray(e)||(e=[e],a=[a]);c=c.transaction(e,"readwrite");c.oncomplete=b;c.onerror=d;for(var f=0;f<e.length;f++)c.objectStore(e[f])["delete"](a[f])}),d)};EditorUi.prototype.getDatabaseItem=
-function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){try{e=e||"objects";var f=c.transaction([e],"readonly").objectStore(e).get(a);f.onsuccess=function(){b(f.result)};f.onerror=d}catch(u){null!=d&&d(u)}}),d)};EditorUi.prototype.getDatabaseItems=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
-b.target.result["continue"]())};e.onerror=b}catch(u){null!=b&&b(u)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(p){null!=b&&b(p)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
+funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;m()}),m=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(K){console.log(K)}}),l=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
+size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(K){console.log(K)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(I){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
+(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,m()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?l(f.resp[0]):k())}}catch(I){console.log(I)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(p){null!=b&&b(p)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,d,e,m){this.openDatabase(mxUtils.bind(this,function(c){try{m=m||"objects";Array.isArray(m)||(m=
+[m],a=[a],b=[b]);var f=c.transaction(m,"readwrite");f.oncomplete=d;f.onerror=e;for(c=0;c<m.length;c++)f.objectStore(m[c]).put(null!=a&&null!=a[c]?{key:a[c],data:b[c]}:b[c])}catch(A){null!=e&&e(A)}}),e)};EditorUi.prototype.removeDatabaseItem=function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){e=e||"objects";Array.isArray(e)||(e=[e],a=[a]);c=c.transaction(e,"readwrite");c.oncomplete=b;c.onerror=d;for(var f=0;f<e.length;f++)c.objectStore(e[f])["delete"](a[f])}),d)};EditorUi.prototype.getDatabaseItem=
+function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){try{e=e||"objects";var f=c.transaction([e],"readonly").objectStore(e).get(a);f.onsuccess=function(){b(f.result)};f.onerror=d}catch(v){null!=d&&d(v)}}),d)};EditorUi.prototype.getDatabaseItems=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
+b.target.result["continue"]())};e.onerror=b}catch(v){null!=b&&b(v)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(t){null!=b&&b(t)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
this.getCurrentFile();return null!=a?a.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var a=this.getCurrentFile();return null!=a?a.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(a,b){var c=this.getCurrentFile();null!=c?c.getComments(a,b):a([])};EditorUi.prototype.addComment=function(a,b,d){var c=this.getCurrentFile();null!=c?c.addComment(a,b,d):b(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var a=this.getCurrentFile();return null!=a?
a.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var a=this.getCurrentFile();return null!=a?a.canComment():!0};EditorUi.prototype.newComment=function(a,b){var c=this.getCurrentFile();return null!=c?c.newComment(a,b):new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};EditorUi.prototype.isRevisionHistorySupported=function(){var a=this.getCurrentFile();return null!=a&&a.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(a,b){var c=this.getCurrentFile();null!=
-c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(a,b,d,e,k,l,n,q){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
-return this.editor.loadUrl(a,b,d,e,k,l,n,q)};EditorUi.prototype.loadFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(a)};EditorUi.prototype.createSvgDataUri=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(a)};EditorUi.prototype.embedCssFonts=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(a,b)};EditorUi.prototype.embedExtFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
-return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,d,e,k,l,n,q,t,z,y,M,L,I,G,K){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,d,e,k,l,n,q,t,z,y,M,L,I,G,K)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(a,b,d,e,m,l,q,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(a,b,d,e,m,l,q,u)};EditorUi.prototype.loadFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(a)};EditorUi.prototype.createSvgDataUri=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(a)};EditorUi.prototype.embedCssFonts=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(a,b)};EditorUi.prototype.embedExtFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
+return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,d,e,m,l,q,u,F,y,z,L,M,G,J,H){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,d,e,m,l,q,u,F,y,z,L,M,G,J,H)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
return this.editor.convertImages(a,b,d,e)};EditorUi.prototype.convertImageToDataUri=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(a,b)};EditorUi.prototype.base64Encode=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(a)};EditorUi.prototype.updateCRC=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(a,b,d,e)};EditorUi.prototype.crc32=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
-return Editor.crc32(a)};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(a,b,d,e,k)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var a=[],b=0;b<localStorage.length;b++){var d=localStorage.key(b),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var k=
-"<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(k||e)&&a.push(d)}}return a};EditorUi.prototype.getLocalStorageFile=function(a){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var b=localStorage.getItem(a);return{title:a,data:b,isLib:"<mxlibrary>"===b.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
-var CommentsWindow=function(a,b,e,d,n,l){function t(){for(var a=y.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==y&&b++;M.style.display=0==b?"block":"none"}function q(a,b,c,d){function e(){b.removeChild(k);b.removeChild(m);g.style.display="block";f.style.display="block"}A={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),k=document.createElement("textarea");k.className=
-"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var m=document.createElement("div");m.className="geCommentEditBtns";var l=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),t()):e();A=null});l.className="geCommentEditBtn";m.appendChild(l);var n=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);A=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
-function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(n.click(),mxEvent.consume(a)):27==a.keyCode&&(l.click(),mxEvent.consume(a)))}));n.focus();n.className="geCommentEditBtn gePrimaryBtn";m.appendChild(n);b.insertBefore(m,f);g.style.display="none";f.style.display="none";k.focus()}function c(b,c){c.innerHTML="";var d=new Date(b.modifiedDate),e=a.timeSince(d);null==e&&(e=mxResources.get("lessThanAMinute"));mxUtils.write(c,mxResources.get("timeAgo",
-[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function f(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function g(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function m(a){a.style.border="";a.removeChild(a.busyImg)}function k(b,d,e,l,n){function x(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
-"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});I.appendChild(e);d&&(e.style.display="none")}function E(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=B;a(b);return{pdiv:d,replies:c}}function z(c,d,e,n,p){function t(){f(z);b.addReply(u,function(a){u.id=a;b.replies.push(u);m(z);e&&e()},function(b){y();g(z);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,p)}function y(){q(u,z,function(a){t()},!0)}var x=E().pdiv,u=a.newComment(c,a.getCurrentUser());u.pCommentId=b.id;null==b.replies&&(b.replies=[]);var z=k(u,b.replies,x,l+1);d?y():t()}if(n||!b.isResolved){M.style.display="none";var B=document.createElement("div");B.className="geCommentContainer";B.setAttribute("data-commentId",b.id);B.style.marginLeft=20*l+5+"px";b.isResolved&&!Editor.isDarkMode()&&(B.style.backgroundColor="ghostWhite");
-var Q=document.createElement("div");Q.className="geCommentHeader";var H=document.createElement("img");H.className="geCommentUserImg";H.src=b.user.pictureUrl||Editor.userImage;Q.appendChild(H);H=document.createElement("div");H.className="geCommentHeaderTxt";Q.appendChild(H);var J=document.createElement("div");J.className="geCommentUsername";mxUtils.write(J,b.user.displayName||"");H.appendChild(J);J=document.createElement("div");J.className="geCommentDate";J.setAttribute("data-commentId",b.id);c(b,
-J);H.appendChild(J);B.appendChild(Q);Q=document.createElement("div");Q.className="geCommentTxt";mxUtils.write(Q,b.content||"");B.appendChild(Q);b.isLocked&&(B.style.opacity="0.5");Q=document.createElement("div");Q.className="geCommentActions";var I=document.createElement("ul");I.className="geCommentActionsList";Q.appendChild(I);p||b.isLocked||0!=l&&!u||x(mxResources.get("reply"),function(){z("",!0)},b.isResolved);H=a.getCurrentUser();null==H||H.id!=b.user.id||p||b.isLocked||(x(mxResources.get("edit"),
-function(){function c(){q(b,B,function(){f(B);b.editComment(b.content,function(){m(B)},function(b){g(B);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}c()},b.isResolved),x(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){f(B);b.deleteComment(function(a){if(!0===a){a=B.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=B.querySelectorAll(".geCommentAction");for(a=
-0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);m(B);B.style.opacity="0.5"}else{c=E(b).replies;for(a=0;a<c.length;a++)y.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}M.style.display=0==y.getElementsByTagName("div").length?"block":"none"}},function(b){g(B);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));p||b.isLocked||0!=l||x(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
-a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=E(b).replies,f=Editor.isDarkMode()?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var k=e[g].querySelectorAll(".geCommentAction"),m=0;m<k.length;m++)k[m]!=c.parentNode&&(k[m].style.display=d);G||(e[g].style.display="none")}t()}b.isResolved?z(mxResources.get("reOpened")+": ",!0,
-c,!1,!0):z(mxResources.get("markedAsResolved"),!1,c,!0)});B.appendChild(Q);null!=e?y.insertBefore(B,e.nextSibling):y.appendChild(B);for(e=0;null!=b.replies&&e<b.replies.length;e++)Q=b.replies[e],Q.isResolved=b.isResolved,k(Q,b.replies,null,l+1,n);null!=A&&(A.comment.id==b.id?(n=b.content,b.content=A.comment.content,q(b,B,A.saveCallback,A.deleteOnCancel),b.content=n):null==A.comment.id&&A.comment.pCommentId==b.id&&(y.appendChild(A.div),q(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return B}}
-var p=!a.canComment(),u=a.canReplyToReplies(),A=null,F=document.createElement("div");F.className="geCommentsWin";F.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;var z=EditorUi.compactUi?"26px":"30px",y=document.createElement("div");y.className="geCommentsList";y.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;y.style.bottom=parseInt(z)+7+"px";F.appendChild(y);var M=document.createElement("span");M.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(M,mxResources.get("noCommentsFound"));var L=document.createElement("div");L.className="geToolbarContainer geCommentsToolbar";L.style.height=z;L.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";L.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;z=document.createElement("a");z.className="geButton";if(!p){var I=z.cloneNode();I.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';I.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(I,"click",function(b){function c(){q(d,e,function(b){f(e);a.addComment(b,function(a){b.id=a;K.push(b);m(e)},function(b){g(e);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var d=a.newComment("",a.getCurrentUser()),e=k(d,K,null,0);c();b.preventDefault();mxEvent.consume(b)});L.appendChild(I)}I=z.cloneNode();I.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';I.setAttribute("title",mxResources.get("showResolved"));
-var G=!1;Editor.isDarkMode()&&(I.style.filter="invert(100%)");mxEvent.addListener(I,"click",function(a){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";E();a.preventDefault();mxEvent.consume(a)});L.appendChild(I);a.commentsRefreshNeeded()&&(I=z.cloneNode(),I.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',I.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(I.style.filter="invert(100%)"),mxEvent.addListener(I,"click",function(a){E();
-a.preventDefault();mxEvent.consume(a)}),L.appendChild(I));a.commentsSaveNeeded()&&(z=z.cloneNode(),z.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',z.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(z.style.filter="invert(100%)"),mxEvent.addListener(z,"click",function(a){l();a.preventDefault();mxEvent.consume(a)}),L.appendChild(z));F.appendChild(L);var K=[],E=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
-var b=A.div.querySelector(".geCommentEditTxtArea"),c=A.div.querySelector(".geCommentEditBtns");A.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(Q){a.handleError(Q)}y.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-
-new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});y.innerHTML="";y.appendChild(M);M.style.display="block";K=a;for(a=0;a<K.length;a++)b(K[a].replies),k(K[a],K,null,0,G);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(y.appendChild(A.div),q(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){y.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
-": "+a.message:""));this.hasError=!0})):y.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});E();this.refreshComments=E;L=mxUtils.bind(this,function(){function a(b){var e=d[b.id];if(null!=e)for(c(b,e),e=0;null!=b.replies&&e<b.replies.length;e++)a(b.replies[e])}if(this.window.isVisible()){for(var b=y.querySelectorAll(".geCommentDate"),d={},e=0;e<b.length;e++){var f=b[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<K.length;e++)a(K[e])}});setInterval(L,6E4);this.refreshCommentsTime=L;this.window=
-new mxWindow(mxResources.get("comments"),F,b,e,d,n,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||
-document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var J=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",J);this.destroy=function(){mxEvent.removeListener(window,"resize",J);this.window.destroy()}},ConfirmDialog=function(a,b,e,
-d,n,l,t,q,c,f,g){var m=document.createElement("div");m.style.textAlign="center";g=null!=g?g:44;var k=document.createElement("div");k.style.padding="6px";k.style.overflow="auto";k.style.maxHeight=g+"px";k.style.lineHeight="1.2em";mxUtils.write(k,b);m.appendChild(k);null!=f&&(k=document.createElement("div"),k.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",f),k.appendChild(b),m.appendChild(k));f=document.createElement("div");f.style.textAlign="center";f.style.whiteSpace=
-"nowrap";var p=document.createElement("input");p.setAttribute("type","checkbox");l=mxUtils.button(l||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(p.checked)});l.className="geBtn";null!=q&&(l.innerHTML=q+"<br>"+l.innerHTML,l.style.paddingBottom="8px",l.style.paddingTop="8px",l.style.height="auto",l.style.width="40%");a.editor.cancelFirst&&f.appendChild(l);var u=mxUtils.button(n||mxResources.get("ok"),function(){a.hideDialog();null!=e&&e(p.checked)});f.appendChild(u);null!=t?(u.innerHTML=
-t+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px",u.style.height="auto",u.className="geBtn",u.style.width="40%"):u.className="geBtn gePrimaryBtn";a.editor.cancelFirst||f.appendChild(l);m.appendChild(f);c?(f.style.marginTop="10px",k=document.createElement("p"),k.style.marginTop="20px",k.style.marginBottom="0px",k.appendChild(p),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),k.appendChild(n),m.appendChild(k),mxEvent.addListener(n,
-"click",function(a){p.checked=!p.checked;mxEvent.consume(a)})):f.style.marginTop="12px";this.init=function(){u.focus()};this.container=m};function DiagramPage(a,b){this.node=a;null!=b?this.node.setAttribute("id",b):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
+return Editor.crc32(a)};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,m){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(a,b,d,e,m)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var a=[],b=0;b<localStorage.length;b++){var d=localStorage.key(b),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var m=
+"<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(m||e)&&a.push(d)}}return a};EditorUi.prototype.getLocalStorageFile=function(a){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var b=localStorage.getItem(a);return{title:a,data:b,isLib:"<mxlibrary>"===b.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
+var CommentsWindow=function(a,b,e,d,l,m){function u(){for(var a=z.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==z&&b++;L.style.display=0==b?"block":"none"}function q(a,b,c,d){function e(){b.removeChild(k);b.removeChild(m);g.style.display="block";f.style.display="block"}A={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),k=document.createElement("textarea");k.className=
+"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),u()):e();A=null});n.className="geCommentEditBtn";m.appendChild(n);var l=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);A=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
+function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(l.click(),mxEvent.consume(a)):27==a.keyCode&&(n.click(),mxEvent.consume(a)))}));l.focus();l.className="geCommentEditBtn gePrimaryBtn";m.appendChild(l);b.insertBefore(m,f);g.style.display="none";f.style.display="none";k.focus()}function c(b,c){c.innerHTML="";var d=new Date(b.modifiedDate),e=a.timeSince(d);null==e&&(e=mxResources.get("lessThanAMinute"));mxUtils.write(c,mxResources.get("timeAgo",
+[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function f(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function g(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function k(a){a.style.border="";a.removeChild(a.busyImg)}function p(b,d,e,m,l){function n(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});K.appendChild(e);d&&(e.style.display="none")}function D(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=N;a(b);return{pdiv:d,replies:c}}function y(c,d,e,n,l){function u(){f(y);b.addReply(v,function(a){v.id=a;b.replies.push(v);k(y);e&&e()},function(b){t();g(y);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,l)}function t(){q(v,y,function(a){u()},!0)}var z=D().pdiv,v=a.newComment(c,a.getCurrentUser());v.pCommentId=b.id;null==b.replies&&(b.replies=[]);var y=p(v,b.replies,z,m+1);d?t():u()}if(l||!b.isResolved){L.style.display="none";var N=document.createElement("div");N.className="geCommentContainer";N.setAttribute("data-commentId",b.id);N.style.marginLeft=20*m+5+"px";b.isResolved&&!Editor.isDarkMode()&&(N.style.backgroundColor="ghostWhite");
+var B=document.createElement("div");B.className="geCommentHeader";var I=document.createElement("img");I.className="geCommentUserImg";I.src=b.user.pictureUrl||Editor.userImage;B.appendChild(I);I=document.createElement("div");I.className="geCommentHeaderTxt";B.appendChild(I);var G=document.createElement("div");G.className="geCommentUsername";mxUtils.write(G,b.user.displayName||"");I.appendChild(G);G=document.createElement("div");G.className="geCommentDate";G.setAttribute("data-commentId",b.id);c(b,
+G);I.appendChild(G);N.appendChild(B);B=document.createElement("div");B.className="geCommentTxt";mxUtils.write(B,b.content||"");N.appendChild(B);b.isLocked&&(N.style.opacity="0.5");B=document.createElement("div");B.className="geCommentActions";var K=document.createElement("ul");K.className="geCommentActionsList";B.appendChild(K);t||b.isLocked||0!=m&&!v||n(mxResources.get("reply"),function(){y("",!0)},b.isResolved);I=a.getCurrentUser();null==I||I.id!=b.user.id||t||b.isLocked||(n(mxResources.get("edit"),
+function(){function c(){q(b,N,function(){f(N);b.editComment(b.content,function(){k(N)},function(b){g(N);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}c()},b.isResolved),n(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){f(N);b.deleteComment(function(a){if(!0===a){a=N.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=N.querySelectorAll(".geCommentAction");for(a=
+0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);k(N);N.style.opacity="0.5"}else{c=D(b).replies;for(a=0;a<c.length;a++)z.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}L.style.display=0==z.getElementsByTagName("div").length?"block":"none"}},function(b){g(N);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));t||b.isLocked||0!=m||n(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
+a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=D(b).replies,f=Editor.isDarkMode()?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var k=e[g].querySelectorAll(".geCommentAction"),m=0;m<k.length;m++)k[m]!=c.parentNode&&(k[m].style.display=d);J||(e[g].style.display="none")}u()}b.isResolved?y(mxResources.get("reOpened")+": ",!0,
+c,!1,!0):y(mxResources.get("markedAsResolved"),!1,c,!0)});N.appendChild(B);null!=e?z.insertBefore(N,e.nextSibling):z.appendChild(N);for(e=0;null!=b.replies&&e<b.replies.length;e++)B=b.replies[e],B.isResolved=b.isResolved,p(B,b.replies,null,m+1,l);null!=A&&(A.comment.id==b.id?(l=b.content,b.content=A.comment.content,q(b,N,A.saveCallback,A.deleteOnCancel),b.content=l):null==A.comment.id&&A.comment.pCommentId==b.id&&(z.appendChild(A.div),q(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return N}}
+var t=!a.canComment(),v=a.canReplyToReplies(),A=null,F=document.createElement("div");F.className="geCommentsWin";F.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;var y=EditorUi.compactUi?"26px":"30px",z=document.createElement("div");z.className="geCommentsList";z.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;z.style.bottom=parseInt(y)+7+"px";F.appendChild(z);var L=document.createElement("span");L.style.cssText="display:none;padding-top:10px;text-align:center;";
+mxUtils.write(L,mxResources.get("noCommentsFound"));var M=document.createElement("div");M.className="geToolbarContainer geCommentsToolbar";M.style.height=y;M.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";M.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;y=document.createElement("a");y.className="geButton";if(!t){var G=y.cloneNode();G.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';G.setAttribute("title",mxResources.get("create")+
+"...");mxEvent.addListener(G,"click",function(b){function c(){q(d,e,function(b){f(e);a.addComment(b,function(a){b.id=a;H.push(b);k(e)},function(b){g(e);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var d=a.newComment("",a.getCurrentUser()),e=p(d,H,null,0);c();b.preventDefault();mxEvent.consume(b)});M.appendChild(G)}G=y.cloneNode();G.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';G.setAttribute("title",mxResources.get("showResolved"));
+var J=!1;Editor.isDarkMode()&&(G.style.filter="invert(100%)");mxEvent.addListener(G,"click",function(a){this.className=(J=!J)?"geButton geCheckedBtn":"geButton";D();a.preventDefault();mxEvent.consume(a)});M.appendChild(G);a.commentsRefreshNeeded()&&(G=y.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',G.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(a){D();
+a.preventDefault();mxEvent.consume(a)}),M.appendChild(G));a.commentsSaveNeeded()&&(y=y.cloneNode(),y.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',y.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(y.style.filter="invert(100%)"),mxEvent.addListener(y,"click",function(a){m();a.preventDefault();mxEvent.consume(a)}),M.appendChild(y));F.appendChild(M);var H=[],D=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
+var b=A.div.querySelector(".geCommentEditTxtArea"),c=A.div.querySelector(".geCommentEditBtns");A.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(N){a.handleError(N)}z.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-
+new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});z.innerHTML="";z.appendChild(L);L.style.display="block";H=a;for(a=0;a<H.length;a++)b(H[a].replies),p(H[a],H,null,0,J);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(z.appendChild(A.div),q(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){z.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
+": "+a.message:""));this.hasError=!0})):z.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});D();this.refreshComments=D;M=mxUtils.bind(this,function(){function a(b){var e=d[b.id];if(null!=e)for(c(b,e),e=0;null!=b.replies&&e<b.replies.length;e++)a(b.replies[e])}if(this.window.isVisible()){for(var b=z.querySelectorAll(".geCommentDate"),d={},e=0;e<b.length;e++){var f=b[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<H.length;e++)a(H[e])}});setInterval(M,6E4);this.refreshCommentsTime=M;this.window=
+new mxWindow(mxResources.get("comments"),F,b,e,d,l,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||
+document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var K=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",K);this.destroy=function(){mxEvent.removeListener(window,"resize",K);this.window.destroy()}},ConfirmDialog=function(a,b,e,
+d,l,m,u,q,c,f,g){var k=document.createElement("div");k.style.textAlign="center";g=null!=g?g:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=g+"px";p.style.lineHeight="1.2em";mxUtils.write(p,b);k.appendChild(p);null!=f&&(p=document.createElement("div"),p.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",f),p.appendChild(b),k.appendChild(p));f=document.createElement("div");f.style.textAlign="center";f.style.whiteSpace=
+"nowrap";var t=document.createElement("input");t.setAttribute("type","checkbox");m=mxUtils.button(m||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(t.checked)});m.className="geBtn";null!=q&&(m.innerHTML=q+"<br>"+m.innerHTML,m.style.paddingBottom="8px",m.style.paddingTop="8px",m.style.height="auto",m.style.width="40%");a.editor.cancelFirst&&f.appendChild(m);var v=mxUtils.button(l||mxResources.get("ok"),function(){a.hideDialog();null!=e&&e(t.checked)});f.appendChild(v);null!=u?(v.innerHTML=
+u+"<br>"+v.innerHTML+"<br>",v.style.paddingBottom="8px",v.style.paddingTop="8px",v.style.height="auto",v.className="geBtn",v.style.width="40%"):v.className="geBtn gePrimaryBtn";a.editor.cancelFirst||f.appendChild(m);k.appendChild(f);c?(f.style.marginTop="10px",p=document.createElement("p"),p.style.marginTop="20px",p.style.marginBottom="0px",p.appendChild(t),l=document.createElement("span"),mxUtils.write(l," "+mxResources.get("rememberThisSetting")),p.appendChild(l),k.appendChild(p),mxEvent.addListener(l,
+"click",function(a){t.checked=!t.checked;mxEvent.consume(a)})):f.style.marginTop="12px";this.init=function(){v.focus()};this.container=k};function DiagramPage(a,b){this.node=a;null!=b?this.node.setAttribute("id",b):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
function SelectPage(a,b,e){this.ui=a;this.previousPage=this.page=b;this.neverShown=!0;null!=b&&(this.neverShown=null==b.viewState,this.ui.updatePageRoot(b),null!=e&&(b.viewState=e,this.neverShown=!1))}
SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,b=this.ui.editor,e=b.graph,d=Graph.compressNode(b.getGraphXml(!0));mxUtils.setTextContent(a.node,d);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.prefix=Editor.guid()+"-";e.model.rootChanged(a.root);
e.setViewState(a.viewState);e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);b.updateGraphComponents();e.view.validate();e.blockMathRender=!0;e.sizeDidChange();e.blockMathRender=!1;this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}};
-function ChangePage(a,b,e,d,n){SelectPage.call(this,a,e);this.relatedPage=b;this.index=d;this.previousIndex=null;this.noSelect=n}mxUtils.extend(ChangePage,SelectPage);
+function ChangePage(a,b,e,d,l){SelectPage.call(this,a,e);this.relatedPage=b;this.index=d;this.previousIndex=null;this.noSelect=l}mxUtils.extend(ChangePage,SelectPage);
ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;this.noSelect||SelectPage.prototype.execute.apply(this,arguments)};EditorUi.prototype.tabContainerHeight=38;
EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){a=b;break}return a};EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var b=0;b<this.pages.length;b++)if(this.pages[b].getId()==a)return this.pages[b];return null};
EditorUi.prototype.initPages=function(){if(!this.editor.graph.standalone){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.isPagesEnabled()&&(this.keyHandler.bindAction(33,!0,"previousPage",!0),this.keyHandler.bindAction(34,!0,"nextPage",!0));var a=this.editor.graph,b=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var d=
this.tabContainer.style.height;this.tabContainer.style.height=null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":this.tabContainerHeight+"px";d!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var e=null,d=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&
(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),e=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=
-this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var e=b.getProperty("edit").changes,l=0;l<e.length;l++)if(e[l]instanceof SelectPage||e[l]instanceof RenamePage||e[l]instanceof MovePage||e[l]instanceof mxRootChange){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}};
+this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var e=b.getProperty("edit").changes,m=0;m<e.length;m++)if(e[m]instanceof SelectPage||e[m]instanceof RenamePage||e[m]instanceof MovePage||e[m]instanceof mxRootChange){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}};
EditorUi.prototype.restoreViewState=function(a,b,e){a=null!=a?this.getPageById(a.getId()):null;var d=this.editor.graph;null!=a&&null!=this.currentPage&&null!=this.pages&&(a!=this.currentPage?this.selectPage(a,!0,b):(d.setViewState(b),this.editor.updateGraphComponents(),d.view.revalidate(),d.sizeDidChange()),d.container.scrollLeft=d.view.translate.x*d.view.scale+b.scrollLeft,d.container.scrollTop=d.view.translate.y*d.view.scale+b.scrollTop,d.restoreSelection(e))};
-Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),n=parseFloat(a.getAttribute("pageHeight")),l=a.getAttribute("background"),t=a.getAttribute("backgroundImage"),t=null!=t&&0<t.length?JSON.parse(t):null,q=a.getAttribute("extFonts");if(q)try{q=q.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}})}catch(c){console.log("ExtFonts format error: "+c.message)}return{gridEnabled:"0"!=
-a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=l&&0<l.length?l:null,backgroundImage:null!=t?new mxImage(t.src,t.width,t.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(d)||isNaN(n)?"undefined"===
-typeof mxSettings?mxGraph.prototype.pageFormat:mxSettings.getPageFormat():new mxRectangle(0,0,d,n),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1,extFonts:q||[]}};
+Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),l=parseFloat(a.getAttribute("pageHeight")),m=a.getAttribute("background"),u=a.getAttribute("backgroundImage"),u=null!=u&&0<u.length?JSON.parse(u):null,q=a.getAttribute("extFonts");if(q)try{q=q.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}})}catch(c){console.log("ExtFonts format error: "+c.message)}return{gridEnabled:"0"!=
+a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=m&&0<m.length?m:null,backgroundImage:null!=u?new mxImage(u.src,u.width,u.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(d)||isNaN(l)?"undefined"===
+typeof mxSettings?mxGraph.prototype.pageFormat:mxSettings.getPageFormat():new mxRectangle(0,0,d,l),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1,extFonts:q||[]}};
Graph.prototype.saveViewState=function(a,b,e){e||(b.setAttribute("grid",null==a||a.gridEnabled?"1":"0"),b.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize),b.setAttribute("guides",null==a||a.guidesEnabled?"1":"0"),b.setAttribute("tooltips",null==a||a.tooltips?"1":"0"),b.setAttribute("connect",null==a||a.connect?"1":"0"),b.setAttribute("arrows",null==a||a.arrows?"1":"0"),b.setAttribute("page",null==a&&this.defaultPageVisible||null!=a&&a.pageVisible?"1":"0"),b.setAttribute("fold",
null==a||a.foldingEnabled?"1":"0"));b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);e=null!=a?a.pageFormat:"undefined"===typeof mxSettings?mxGraph.prototype.pageFormat:mxSettings.getPageFormat();null!=e&&(b.setAttribute("pageWidth",e.width),b.setAttribute("pageHeight",e.height));null!=a&&null!=a.background&&b.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",
null!=a&&a.mathEnabled?"1":"0");b.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0");null!=a&&null!=a.extFonts&&0<a.extFonts.length&&b.setAttribute("extFonts",a.extFonts.map(function(a){return a.name+"^"+a.url}).join("|"))};
Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(),
arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled,extFonts:this.extFonts}};
Graph.prototype.setViewState=function(a,b){if(null!=a){this.lastPasteXml=a.lastPasteXml;this.pasteCounter=a.pasteCounter||0;this.mathEnabled=a.mathEnabled;this.gridEnabled=a.gridEnabled;this.gridSize=a.gridSize;this.graphHandler.guidesEnabled=a.guidesEnabled;this.foldingEnabled=a.foldingEnabled;this.setShadowVisible(a.shadowVisible,!1);this.scrollbars=a.scrollbars;this.pageVisible=!this.isViewer()&&a.pageVisible;this.background=a.background;this.backgroundImage=a.backgroundImage;this.pageScale=a.pageScale;
-this.pageFormat=a.pageFormat;this.view.currentRoot=a.currentRoot;this.defaultParent=a.defaultParent;this.connectionArrowsEnabled=a.arrows;this.setTooltips(a.tooltips);this.setConnectable(a.connect);var e=this.extFonts;this.extFonts=a.extFonts||[];if(b&&null!=e)for(var d=0;d<e.length;d++){var n=document.getElementById("extFont_"+e[d].name);null!=n&&n.parentNode.removeChild(n)}for(d=0;d<this.extFonts.length;d++)this.addExtFont(this.extFonts[d].name,this.extFonts[d].url,!0);this.view.scale=null!=a.scale?
+this.pageFormat=a.pageFormat;this.view.currentRoot=a.currentRoot;this.defaultParent=a.defaultParent;this.connectionArrowsEnabled=a.arrows;this.setTooltips(a.tooltips);this.setConnectable(a.connect);var e=this.extFonts;this.extFonts=a.extFonts||[];if(b&&null!=e)for(var d=0;d<e.length;d++){var l=document.getElementById("extFont_"+e[d].name);null!=l&&l.parentNode.removeChild(l)}for(d=0;d<this.extFonts.length;d++)this.addExtFont(this.extFonts[d].name,this.extFonts[d].url,!0);this.view.scale=null!=a.scale?
a.scale:1;null==this.view.currentRoot||this.model.contains(this.view.currentRoot)||(this.view.currentRoot=null);null==this.defaultParent||this.model.contains(this.defaultParent)||(this.setDefaultParent(null),this.selectUnlockedLayer());null!=a.translate&&(this.view.translate=a.translate)}else this.view.currentRoot=null,this.view.scale=1,this.gridEnabled=this.defaultGridEnabled,this.gridSize=mxGraph.prototype.gridSize,this.pageScale=mxGraph.prototype.pageScale,this.pageFormat="undefined"===typeof mxSettings?
mxGraph.prototype.pageFormat:mxSettings.getPageFormat(),this.pageVisible=this.defaultPageVisible,this.backgroundImage=this.background=null,this.scrollbars=this.defaultScrollbars,this.foldingEnabled=this.graphHandler.guidesEnabled=!0,this.setShadowVisible(!1,!1),this.defaultParent=null,this.setTooltips(!0),this.setConnectable(!0),this.lastPasteXml=null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0,this.extFonts=[];this.preferPageSize=this.pageBreaksVisible=this.pageVisible;
this.fireEvent(new mxEventObject("viewStateChanged","state",a))};
-Graph.prototype.addExtFont=function(a,b,e){if(a&&b){"1"!=urlParams["ext-fonts"]&&(Graph.recentCustomFonts[a.toLowerCase()]={name:a,url:b});var d="extFont_"+a;if(null==document.getElementById(d))if(0==b.indexOf(Editor.GOOGLE_FONTS))mxClient.link("stylesheet",b,null,d);else{document.getElementsByTagName("head");var n=document.createElement("style");n.appendChild(document.createTextNode('@font-face {\n\tfont-family: "'+a+'";\n\tsrc: url("'+b+'");\n}'));n.setAttribute("id",d);document.getElementsByTagName("head")[0].appendChild(n)}if(!e){null==
-this.extFonts&&(this.extFonts=[]);e=this.extFonts;d=!0;for(n=0;n<e.length;n++)if(e[n].name==a){d=!1;break}d&&this.extFonts.push({name:a,url:b})}}};
+Graph.prototype.addExtFont=function(a,b,e){if(a&&b){"1"!=urlParams["ext-fonts"]&&(Graph.recentCustomFonts[a.toLowerCase()]={name:a,url:b});var d="extFont_"+a;if(null==document.getElementById(d))if(0==b.indexOf(Editor.GOOGLE_FONTS))mxClient.link("stylesheet",b,null,d);else{document.getElementsByTagName("head");var l=document.createElement("style");l.appendChild(document.createTextNode('@font-face {\n\tfont-family: "'+a+'";\n\tsrc: url("'+b+'");\n}'));l.setAttribute("id",d);document.getElementsByTagName("head")[0].appendChild(l)}if(!e){null==
+this.extFonts&&(this.extFonts=[]);e=this.extFonts;d=!0;for(l=0;l<e.length;l++)if(e[l].name==a){d=!1;break}d&&this.extFonts.push({name:a,url:b})}}};
EditorUi.prototype.updatePageRoot=function(a,b){if(null==a.root){var e=this.editor.extractGraphModel(a.node,null,b),d=Editor.extractParserError(e);if(d)throw Error(d);null!=e?(a.graphModelNode=e,a.viewState=this.editor.graph.createViewState(e),d=new mxCodec(e.ownerDocument),a.root=d.decode(e).root):a.root=this.editor.graph.model.createRoot()}else if(null==a.viewState){if(null==a.graphModelNode){e=this.editor.extractGraphModel(a.node);if(d=Editor.extractParserError(e))throw Error(d);null!=e&&(a.graphModelNode=
e)}null!=a.graphModelNode&&(a.viewState=this.editor.graph.createViewState(a.graphModelNode))}return a};
-EditorUi.prototype.selectPage=function(a,b,e){try{if(a!=this.currentPage){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var d=this.editor.graph.model.createUndoableEdit();d.ignoreEdit=!0;var n=new SelectPage(this,a,e);n.execute();d.add(n);d.notify();this.editor.graph.tooltipHandler.hide();b||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",d))}}catch(l){this.handleError(l)}};
+EditorUi.prototype.selectPage=function(a,b,e){try{if(a!=this.currentPage){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var d=this.editor.graph.model.createUndoableEdit();d.ignoreEdit=!0;var l=new SelectPage(this,a,e);l.execute();d.add(l);d.notify();this.editor.graph.tooltipHandler.hide();b||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",d))}}catch(m){this.handleError(m)}};
EditorUi.prototype.selectNextPage=function(a){var b=this.currentPage;null!=b&&null!=this.pages&&(b=mxUtils.indexOf(this.pages,b),a?this.selectPage(this.pages[mxUtils.mod(b+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(b-1,this.pages.length)]))};
EditorUi.prototype.insertPage=function(a,b){if(this.editor.graph.isEnabled()){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);a=null!=a?a:this.createPage(null,this.createPageId());b=null!=b?b:this.pages.length;var e=new ChangePage(this,a,a,b);this.editor.graph.model.execute(e)}return a};EditorUi.prototype.createPageId=function(){var a;do a=Editor.guid();while(null!=this.getPageById(a));return a};
EditorUi.prototype.createPage=function(a,b){var e=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"),b);e.setName(null!=a?a:this.createPageName());return e};EditorUi.prototype.createPageName=function(){for(var a={},b=0;b<this.pages.length;b++){var e=this.pages[b].getName();null!=e&&0<e.length&&(a[e]=e)}b=this.pages.length;do e=mxResources.get("pageWithNumber",[++b]);while(null!=a[e]);return e};
-EditorUi.prototype.removePage=function(a){try{var b=this.editor.graph,e=mxUtils.indexOf(this.pages,a);if(b.isEnabled()&&0<=e){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b.model.beginUpdate();try{var d=this.currentPage;d==a&&1<this.pages.length?(e==this.pages.length-1?e--:e++,d=this.pages[e]):1>=this.pages.length&&(d=this.insertPage(),b.model.execute(new RenamePage(this,d,mxResources.get("pageWithNumber",[1]))));b.model.execute(new ChangePage(this,a,d))}finally{b.model.endUpdate()}}}catch(n){this.handleError(n)}return a};
-EditorUi.prototype.duplicatePage=function(a,b){var e=null;try{var d=this.editor.graph;if(d.isEnabled()){d.isEditing()&&d.stopEditing();var n=a.node.cloneNode(!1);n.removeAttribute("id");e=new DiagramPage(n);e.root=d.cloneCell(d.model.root);e.viewState=d.getViewState();e.viewState.scale=1;e.viewState.scrollLeft=null;e.viewState.scrollTop=null;e.viewState.currentRoot=null;e.viewState.defaultParent=null;e.setName(b);e=this.insertPage(e,mxUtils.indexOf(this.pages,a)+1)}}catch(l){this.handleError(l)}return e};
+EditorUi.prototype.removePage=function(a){try{var b=this.editor.graph,e=mxUtils.indexOf(this.pages,a);if(b.isEnabled()&&0<=e){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b.model.beginUpdate();try{var d=this.currentPage;d==a&&1<this.pages.length?(e==this.pages.length-1?e--:e++,d=this.pages[e]):1>=this.pages.length&&(d=this.insertPage(),b.model.execute(new RenamePage(this,d,mxResources.get("pageWithNumber",[1]))));b.model.execute(new ChangePage(this,a,d))}finally{b.model.endUpdate()}}}catch(l){this.handleError(l)}return a};
+EditorUi.prototype.duplicatePage=function(a,b){var e=null;try{var d=this.editor.graph;if(d.isEnabled()){d.isEditing()&&d.stopEditing();var l=a.node.cloneNode(!1);l.removeAttribute("id");e=new DiagramPage(l);e.root=d.cloneCell(d.model.root);e.viewState=d.getViewState();e.viewState.scale=1;e.viewState.scrollLeft=null;e.viewState.scrollTop=null;e.viewState.currentRoot=null;e.viewState.defaultParent=null;e.setName(b);e=this.insertPage(e,mxUtils.indexOf(this.pages,a)+1)}}catch(m){this.handleError(m)}return e};
EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var b=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&this.editor.graph.model.execute(new RenamePage(this,a,b))}),mxResources.get("rename"));this.showDialog(b.container,300,80,!0,!0);b.init()}return a};EditorUi.prototype.movePage=function(a,b){this.editor.graph.model.execute(new MovePage(this,a,b))};
EditorUi.prototype.createTabContainer=function(){var a=document.createElement("div");a.className="geTabContainer";a.style.position="absolute";a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.height="0px";return a};
EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,b=document.createElement("div");b.style.position="relative";b.style.display="inline-block";b.style.verticalAlign="top";b.style.height=this.tabContainer.style.height;b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.fontSize="13px";b.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,d=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-e)/this.pages.length)+
-1),n=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#fff"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),n=c):mxEvent.consume(b)}));mxEvent.addListener(d,"dragend",mxUtils.bind(this,function(a){n=null;a.stopPropagation();
-a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=n&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=n&&c!=n&&this.movePage(n,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(l,this.createTabForPage(this.pages[l],d,this.pages[l]!=this.currentPage,l+1));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);d=this.createPageMenuTab();this.tabContainer.appendChild(d);
-d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var t=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");t.style.position="absolute";t.style.right=this.editor.chromeless?"29px":"55px";t.style.fontSize="13pt";this.tabContainer.appendChild(t);var q=this.createControlTab(4,"&nbsp;&#10095;");q.style.position="absolute";
-q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var c=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=c+"px";mxEvent.addListener(t,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,c-20);mxUtils.setOpacity(t,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(t,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,
-b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,c-20);mxUtils.setOpacity(t,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
+1),l=null,m=0;m<this.pages.length;m++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#fff"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),l=c):mxEvent.consume(b)}));mxEvent.addListener(d,"dragend",mxUtils.bind(this,function(a){l=null;a.stopPropagation();
+a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=l&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=l&&c!=l&&this.movePage(l,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(m,this.createTabForPage(this.pages[m],d,this.pages[m]!=this.currentPage,m+1));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);d=this.createPageMenuTab();this.tabContainer.appendChild(d);
+d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var u=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");u.style.position="absolute";u.style.right=this.editor.chromeless?"29px":"55px";u.style.fontSize="13pt";this.tabContainer.appendChild(u);var q=this.createControlTab(4,"&nbsp;&#10095;");q.style.position="absolute";
+q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var c=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=c+"px";mxEvent.addListener(u,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,c-20);mxUtils.setOpacity(u,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(u,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,
+b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,c-20);mxUtils.setOpacity(u,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
EditorUi.prototype.createTab=function(a){var b=document.createElement("div");b.style.display="inline-block";b.style.whiteSpace="nowrap";b.style.boxSizing="border-box";b.style.position="relative";b.style.overflow="hidden";b.style.textAlign="center";b.style.marginLeft="-1px";b.style.height=this.tabContainer.clientHeight+"px";b.style.padding="12px 4px 8px 4px";b.style.border=Editor.isDarkMode()?"1px solid #505759":"1px solid #e8eaed";b.style.borderTopStyle="none";b.style.borderBottomStyle="none";b.style.backgroundColor=
this.tabContainer.style.backgroundColor;b.style.cursor="move";b.style.color="gray";a&&(mxEvent.addListener(b,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(b.style.backgroundColor=Editor.isDarkMode()?"black":"#e8eaed",mxEvent.consume(a))})),mxEvent.addListener(b,"mouseleave",mxUtils.bind(this,function(a){b.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return b};
EditorUi.prototype.createControlTab=function(a,b,e){e=this.createTab(null!=e?e:!0);e.style.lineHeight=this.tabContainerHeight+"px";e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.innerHTML=b;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e};
EditorUi.prototype.createPageMenuTab=function(a){a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;margin-top:5px;width:21px;height:21px;"></div>',a);a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.marginLeft="0px";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var b=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<
this.pages.length;d++)mxUtils.bind(this,function(c){var d=a.addItem(this.pages[c].getName(),null,mxUtils.bind(this,function(){this.selectPage(this.pages[c])}),b);this.pages[c]==this.currentPage&&a.addCheckmark(d,Editor.checkmarkImage)})(d);if(this.editor.graph.isEnabled()){a.addSeparator(b);a.addItem(mxResources.get("insertPage"),null,mxUtils.bind(this,function(){this.insertPage()}),b);var c=this.currentPage;null!=c&&(a.addSeparator(b),d=c.getName(),a.addItem(mxResources.get("removeIt",[d]),null,
mxUtils.bind(this,function(){this.removePage(c)}),b),a.addItem(mxResources.get("renameIt",[d]),null,mxUtils.bind(this,function(){this.renamePage(c,c.getName())}),b),a.addSeparator(b),a.addItem(mxResources.get("duplicateIt",[d]),null,mxUtils.bind(this,function(){this.duplicatePage(c,mxResources.get("copyOf",[c.getName()]))}),b))}}));b.div.className+=" geMenubarMenu";b.smartSeparators=!0;b.showDisabled=!0;b.autoExpand=!0;b.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(b,
-arguments);b.destroy()});var d=mxEvent.getClientX(a),n=mxEvent.getClientY(a);b.popup(d,n,null,a);this.setCurrentMenu(b);mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a};
-EditorUi.prototype.createTabForPage=function(a,b,e,d){e=this.createTab(e);var n=a.getName()||mxResources.get("untitled"),l=a.getId();e.setAttribute("title",n+(null!=l?" ("+l+")":"")+" ["+d+"]");mxUtils.write(e,n);e.style.maxWidth=b+"px";e.style.width=b+"px";this.addTabListeners(a,e);42<b&&(e.style.textOverflow="ellipsis");return e};
-EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var d=!1,n=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=null!=this.currentMenu;n=a==this.currentPage;e.isMouseDown||n||this.selectPage(a)}),null,mxUtils.bind(this,function(l){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(l)&&n||mxEvent.isPopupTrigger(l))){e.popupMenuHandler.hideMenu();
-this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!d){var t=new mxPopupMenu(this.createPageMenu(a));t.div.className+=" geMenubarMenu";t.smartSeparators=!0;t.showDisabled=!0;t.autoExpand=!0;t.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(t,arguments);this.resetCurrentMenu();t.destroy()});var q=mxEvent.getClientX(l),c=mxEvent.getClientY(l);t.popup(q,c,null,l);this.setCurrentMenu(t,b)}mxEvent.consume(l)}}))};
-EditorUi.prototype.getLinkForPage=function(a,b,e){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var d=this.getCurrentFile();if(null!=d&&d.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var n=this.getSearch("create title mode url drive splash state clibs ui viewbox hide-pages".split(" ")),n=n+((0==n.length?"?":"&")+"page-id="+a.getId());null!=b&&(n+="&"+b.join("&"));return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
-EditorUi.drawHost:"https://"+window.location.host)+"/"+n+"#"+d.getHash()}}return null};
-EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){var n=this.editor.graph;e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);null!=this.getLinkForPage(a)&&(e.addSeparator(d),e.addItem(mxResources.get("link"),
-null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(b,d,e,c,f,g){b=this.createUrlParameters(b,d,e,c,f,g);e||b.push("hide-pages=1");n.isSelectionEmpty()||(e=n.getBoundingBox(n.getSelectionCells()),d=n.view.translate,f=n.view.scale,e.width/=f,e.height/=f,e.x=e.x/f-d.x,e.y=e.y/f-d.y,b.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(e.x),y:Math.round(e.y),width:Math.round(e.width),height:Math.round(e.height),border:100}))));
+arguments);b.destroy()});var d=mxEvent.getClientX(a),l=mxEvent.getClientY(a);b.popup(d,l,null,a);this.setCurrentMenu(b);mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a};
+EditorUi.prototype.createTabForPage=function(a,b,e,d){e=this.createTab(e);var l=a.getName()||mxResources.get("untitled"),m=a.getId();e.setAttribute("title",l+(null!=m?" ("+m+")":"")+" ["+d+"]");mxUtils.write(e,l);e.style.maxWidth=b+"px";e.style.width=b+"px";this.addTabListeners(a,e);42<b&&(e.style.textOverflow="ellipsis");return e};
+EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var d=!1,l=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=null!=this.currentMenu;l=a==this.currentPage;e.isMouseDown||l||this.selectPage(a)}),null,mxUtils.bind(this,function(m){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(m)&&l||mxEvent.isPopupTrigger(m))){e.popupMenuHandler.hideMenu();
+this.hideCurrentMenu();if(!mxEvent.isTouchEvent(m)||!d){var u=new mxPopupMenu(this.createPageMenu(a));u.div.className+=" geMenubarMenu";u.smartSeparators=!0;u.showDisabled=!0;u.autoExpand=!0;u.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(u,arguments);this.resetCurrentMenu();u.destroy()});var q=mxEvent.getClientX(m),c=mxEvent.getClientY(m);u.popup(q,c,null,m);this.setCurrentMenu(u,b)}mxEvent.consume(m)}}))};
+EditorUi.prototype.getLinkForPage=function(a,b,e){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var d=this.getCurrentFile();if(null!=d&&d.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var l=this.getSearch("create title mode url drive splash state clibs ui viewbox hide-pages".split(" ")),l=l+((0==l.length?"?":"&")+"page-id="+a.getId());null!=b&&(l+="&"+b.join("&"));return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
+EditorUi.drawHost:"https://"+window.location.host)+"/"+l+"#"+d.getHash()}}return null};
+EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){var l=this.editor.graph;e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);null!=this.getLinkForPage(a)&&(e.addSeparator(d),e.addItem(mxResources.get("link"),
+null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(b,d,e,c,f,g){b=this.createUrlParameters(b,d,e,c,f,g);e||b.push("hide-pages=1");l.isSelectionEmpty()||(e=l.getBoundingBox(l.getSelectionCells()),d=l.view.translate,f=l.view.scale,e.width/=f,e.height/=f,e.x=e.x/f-d.x,e.y=e.y/f-d.y,b.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(e.x),y:Math.round(e.y),width:Math.round(e.width),height:Math.round(e.height),border:100}))));
c=new EmbedDialog(this,this.getLinkForPage(a,b,c));this.showDialog(c.container,440,240,!0,!0);c.init()}))})));e.addSeparator(d);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,mxResources.get("copyOf",[a.getName()]))}),d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=this.getServiceName()||(e.addSeparator(d),e.addItem(mxResources.get("openInNewWindow"),null,mxUtils.bind(this,function(){this.editor.editAsNew(this.getFileData(!0,null,null,null,
!0,!0))}),d))})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})();
(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,n){n.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(n.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&n.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,d){return 0>mxUtils.indexOf(b,
-a)?d:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,n));return n};a.beforeDecode=function(a,b,n){n.ui=a.ui;n.relatedPage=n.ui.getPageById(b.getAttribute("relatedPage"));if(null==n.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));n.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(n.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState"));
-b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(n.relatedPage.root=a.decodeCell(d,!1),n=d.nextSibling,d.parentNode.removeChild(d),d=n;null!=d;){n=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var e=d.getAttribute("id");null==a.lookup(e)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=n}}return b};a.afterDecode=function(a,b,n){n.index=n.previousIndex;return n};mxCodecRegistry.register(a)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var a=Graph.prototype.foldCells;Graph.prototype.foldCells=function(b,e,l,t,q){e=null!=e?e:!1;null==l&&(l=this.getFoldableCells(this.getSelectionCells(),b));this.stopEditing();this.model.beginUpdate();try{for(var c=l.slice(),d=0;d<l.length;d++)"1"==mxUtils.getValue(this.getCurrentCellStyle(l[d]),"treeFolding","0")&&this.foldTreeCell(b,l[d]);l=c;l=a.apply(this,arguments)}finally{this.model.endUpdate()}return l};Graph.prototype.foldTreeCell=
-function(a,b){this.model.beginUpdate();try{var d=[];this.traverse(b,!0,mxUtils.bind(this,function(a,c){var e=null!=c&&this.isTreeEdge(c);e&&d.push(c);a==b||null!=c&&!e||d.push(a);return(null==c||e)&&(a==b||!this.model.isCollapsed(a))}));this.model.setCollapsed(b,a);for(var e=0;e<d.length;e++)this.model.setVisible(d[e],!a)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(a){return!this.isEdgeIgnored(a)};Graph.prototype.getTreeEdges=function(a,b,e,t,q,c){return this.model.filterCells(this.getEdges(a,
-b,e,t,q,c),mxUtils.bind(this,function(a){return this.isTreeEdge(a)}))};Graph.prototype.getIncomingTreeEdges=function(a,b){return this.getTreeEdges(a,b,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(a,b){return this.getTreeEdges(a,b,!1,!0,!1)};var b=EditorUi.prototype.init;EditorUi.prototype.init=function(){b.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function a(a){return A.isVertex(a)&&e(a)}function b(a){var b=
-!1;null!=a&&(b="1"==u.getCurrentCellStyle(a).treeMoving);return b}function e(a){var b=!1;null!=a&&(a=A.getParent(a),b=u.view.getState(a),b="tree"==(null!=b?b.style:u.getCellStyle(a)).containerType);return b}function t(a){var b=!1;null!=a&&(a=A.getParent(a),b=u.view.getState(a),u.view.getState(a),b=null!=(null!=b?b.style:u.getCellStyle(a)).childLayout);return b}function q(a){a=u.view.getState(a);if(null!=a){var b=u.getIncomingTreeEdges(a.cell);if(0<b.length&&(b=u.view.getState(b[0]),null!=b&&(b=b.absolutePoints,
-null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function c(a,b){b=null!=b?b:!0;u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingTreeEdges(a),e=u.cloneCells([d[0],a]);u.model.setTerminal(e[0],u.model.getTerminal(d[0],
-!0),!0);var f=q(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;u.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=u.view.getState(a),m=u.view.scale;if(null!=k){var l=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*m:l.y+=(b?
-a.geometry.height+10:-e[1].geometry.height-10)*m;var n=u.getOutgoingTreeEdges(u.model.getTerminal(d[0],!0));if(null!=n){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<n.length;t++){var y=u.model.getTerminal(n[t],!1);if(f==q(y)){var x=u.view.getState(y);y!=a&&null!=x&&(p&&b!=x.getCenterX()<k.getCenterX()||!p&&b!=x.getCenterY()<k.getCenterY())&&mxUtils.intersects(l,x)&&(d=10+Math.max(d,(Math.min(l.x+l.width,x.x+x.width)-Math.max(l.x,x.x))/m),g=10+Math.max(g,(Math.min(l.y+
-l.height,x.y+x.height)-Math.max(l.y,x.y))/m))}}p?g=0:d=0;for(t=0;t<n.length;t++)if(y=u.model.getTerminal(n[t],!1),f==q(y)&&(x=u.view.getState(y),y!=a&&null!=x&&(p&&b!=x.getCenterX()<k.getCenterX()||!p&&b!=x.getCenterY()<k.getCenterY()))){var E=[];u.traverse(x.cell,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&E.push(b);(null==b||c)&&E.push(a);return null==b||c});u.moveCells(E,(b?1:-1)*d,(b?1:-1)*g)}}}return u.addCells(e,c)}finally{u.model.endUpdate()}}function f(a){u.model.beginUpdate();try{var b=
-q(a),c=u.getIncomingTreeEdges(a),d=u.cloneCells([c[0],a]);u.model.setTerminal(c[0],d[1],!1);u.model.setTerminal(d[0],d[1],!0);u.model.setTerminal(d[0],a,!1);var e=u.model.getParent(a),f=e.geometry,g=[];u.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);u.traverse(a,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&g.push(b);(null==b||c)&&g.push(a);return null==b||c});var k=a.geometry.width+40,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?
-(k=0,m=-m):b==mxConstants.DIRECTION_WEST?(k=-k,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);u.moveCells(g,k,m);return u.addCells(d,e)}finally{u.model.endUpdate()}}function g(a,b){u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingTreeEdges(a),e=q(a);0==d.length&&(d=[u.createEdge(c,null,"",null,null,u.createCurrentEdgeStyle())],e=b);var f=u.cloneCells([d[0],a]);u.model.setTerminal(f[0],a,!0);if(null==u.model.getTerminal(f[0],!1)){u.model.setTerminal(f[0],f[1],!1);var g=u.getCellStyle(f[1]).newEdgeStyle;
-if(null!=g)try{var k=JSON.parse(g),m;for(m in k)u.setCellStyles(m,k[m],[f[0]]),"edgeStyle"==m&&"elbowEdgeStyle"==k[m]&&u.setCellStyles("elbow",e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[f[0]])}catch(ha){}}var d=u.getOutgoingTreeEdges(a),l=c.geometry,g=[];u.view.currentRoot==c&&(l=new mxRectangle);for(k=0;k<d.length;k++){var n=u.model.getTerminal(d[k],!1);null!=n&&g.push(n)}var p=u.view.getBounds(g),t=u.view.translate,y=u.view.scale;e==mxConstants.DIRECTION_SOUTH?
-(f[1].geometry.x=null==p?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(p.x+p.width)/y-t.x-l.x+10,f[1].geometry.y+=f[1].geometry.height-l.y+40):e==mxConstants.DIRECTION_NORTH?(f[1].geometry.x=null==p?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(p.x+p.width)/y-t.x+-l.x+10,f[1].geometry.y-=f[1].geometry.height+l.y+40):(f[1].geometry.x=e==mxConstants.DIRECTION_WEST?f[1].geometry.x-(f[1].geometry.width+l.x+40):f[1].geometry.x+(f[1].geometry.width-l.x+40),f[1].geometry.y=null==p?a.geometry.y+
-(a.geometry.height-f[1].geometry.height)/2:(p.y+p.height)/y-t.y+-l.y+10);return u.addCells(f,c)}finally{u.model.endUpdate()}}function m(a,b,c){a=u.getOutgoingTreeEdges(a);c=u.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=u.view.getState(u.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-
-c.y-c.height})}return d}function k(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?p.actions.get("selectParent").funct():c==b?(d=u.getOutgoingTreeEdges(a),null!=d&&0<d.length&&u.setSelectionCell(u.model.getTerminal(d[0],!1))):(c=u.getIncomingTreeEdges(a),null!=c&&0<c.length&&(d=m(u.model.getTerminal(c[0],!0),d,a),c=u.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||
-b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&u.setSelectionCell(d[c].cell)))))}var p=this,u=p.editor.graph,A=u.getModel(),F=p.menus.createPopupMenu;p.menus.createPopupMenu=function(b,c,d){F.apply(this,arguments);if(1==u.getSelectionCount()){c=u.getSelectionCell();var e=u.getOutgoingTreeEdges(c);b.addSeparator();0<e.length&&(a(u.getSelectionCell())&&this.addMenuItems(b,["selectChildren"],null,d),this.addMenuItems(b,["selectDescendants"],null,d));a(u.getSelectionCell())&&(b.addSeparator(),
-0<u.getIncomingTreeEdges(c).length&&this.addMenuItems(b,["selectSiblings","selectParent"],null,d))}};p.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getOutgoingTreeEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+X");p.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=
-u.getIncomingTreeEdges(a);if(null!=a&&0<a.length&&(a=u.getOutgoingTreeEdges(u.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+S");p.actions.addAction("selectParent",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getIncomingTreeEdges(a);null!=a&&0<a.length&&u.setSelectionCell(u.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");p.actions.addAction("selectDescendants",
-function(a,b){var c=u.getSelectionCell();if(u.isEnabled()&&u.model.isVertex(c)){if(null!=b&&mxEvent.isAltDown(b))u.setSelectionCells(u.model.getTreeEdges(c,null==b||!mxEvent.isShiftDown(b),null==b||!mxEvent.isControlDown(b)));else{var d=[];u.traverse(c,!0,function(a,c){var e=null!=c&&u.isTreeEdge(c);e&&d.push(c);null!=c&&!e||null!=b&&mxEvent.isShiftDown(b)||d.push(a);return null==c||e})}u.setSelectionCells(d)}},null,null,"Alt+Shift+D");var z=u.removeCells;u.removeCells=function(b,c){c=null!=c?c:!0;
-null==b&&(b=this.getDeletableCells(this.getSelectionCells()));c&&(b=this.getDeletableCells(this.addAllEdges(b)));for(var d=[],f=0;f<b.length;f++){var g=b[f];A.isEdge(g)&&e(g)&&(d.push(g),g=A.getTerminal(g,!1));if(a(g)){var k=[];u.traverse(g,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&k.push(b);(null==b||c)&&k.push(a);return null==b||c});0<k.length&&(d=d.concat(k),g=u.getIncomingTreeEdges(b[f]),b=b.concat(g))}else null!=g&&d.push(b[f])}b=d;return z.apply(this,arguments)};p.hoverIcons.getStateAt=
-function(b,c,d){return a(b.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var y=u.duplicateCells;u.duplicateCells=function(b,c){b=null!=b?b:this.getSelectionCells();for(var d=b.slice(0),e=0;e<d.length;e++){var f=u.view.getState(d[e]);if(null!=f&&a(f.cell))for(var g=u.getIncomingTreeEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],b)}this.model.beginUpdate();try{var k=y.call(this,b,c);if(k.length==b.length)for(e=0;e<b.length;e++)if(a(b[e])){var m=u.getIncomingTreeEdges(k[e]),g=
-u.getIncomingTreeEdges(b[e]);if(0==m.length&&0<g.length){var l=this.cloneCell(g[0]);this.addEdge(l,u.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var M=u.moveCells;u.moveCells=function(b,c,d,e,f,g,k){var m=null;this.model.beginUpdate();try{var l=f,n=this.getCurrentCellStyle(f);if(null!=b&&a(f)&&"1"==mxUtils.getValue(n,"treeFolding","0")){for(var p=0;p<b.length;p++)if(a(b[p])||u.model.isEdge(b[p])&&null==u.model.getTerminal(b[p],!0)){f=u.model.getParent(b[p]);
-break}if(null!=l&&f!=l&&null!=this.view.getState(b[0])){var q=u.getIncomingTreeEdges(b[0]);if(0<q.length){var t=u.view.getState(u.model.getTerminal(q[0],!0));if(null!=t){var y=u.view.getState(l);null!=y&&(c=(y.getCenterX()-t.getCenterX())/u.view.scale,d=(y.getCenterY()-t.getCenterY())/u.view.scale)}}}}m=M.apply(this,arguments);if(null!=m&&null!=b&&m.length==b.length)for(p=0;p<m.length;p++)if(this.model.isEdge(m[p]))a(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[p],!0))&&this.model.setTerminal(m[p],
-l,!0);else if(a(b[p])&&(q=u.getIncomingTreeEdges(b[p]),0<q.length))if(!e)a(l)&&0>mxUtils.indexOf(b,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==u.getIncomingTreeEdges(m[p]).length){n=l;if(null==n||n==u.model.getParent(b[p]))n=u.model.getTerminal(q[0],!0);e=this.cloneCell(q[0]);this.addEdge(e,u.getDefaultParent(),n,m[p])}}finally{this.model.endUpdate()}return m};if(null!=p.sidebar){var L=p.sidebar.dropAndConnect;p.sidebar.dropAndConnect=function(b,c,d,e){var f=u.model,
-g=null;f.beginUpdate();try{if(g=L.apply(this,arguments),a(b))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],b,!0);var m=u.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var I={88:p.actions.get("selectChildren"),84:p.actions.get("selectSubtree"),80:p.actions.get("selectParent"),83:p.actions.get("selectSiblings")},G=p.onKeyDown;p.onKeyDown=function(b){try{if(u.isEnabled()&&
-!u.isEditing()&&a(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==b.which?d=mxEvent.isShiftDown(b)?f(u.getSelectionCell()):g(u.getSelectionCell()):13==b.which&&(d=c(u.getSelectionCell(),!mxEvent.isShiftDown(b))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=p.hoverIcons&&p.hoverIcons.update(u.view.getState(u.getSelectionCell())),
-u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var e=I[b.keyCode];null!=e&&(e.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(k(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(k(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(k(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(k(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(b))}}catch(C){p.handleError(C)}mxEvent.isConsumed(b)||G.apply(this,arguments)};var K=u.connectVertex;u.connectVertex=function(b,d,e,k,m,l,n){var p=u.getIncomingTreeEdges(b);if(a(b)){var t=q(b),y=t==mxConstants.DIRECTION_EAST||t==mxConstants.DIRECTION_WEST,x=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return t==d||0==p.length?g(b,d):y==x?f(b):c(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};u.getSubtree=function(c){var d=
-[c];!b(c)&&!a(c)||t(c)||u.traverse(c,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!t(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
+(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,l){l.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(l.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&l.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,d){return 0>mxUtils.indexOf(b,
+a)?d:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,l));return l};a.beforeDecode=function(a,b,l){l.ui=a.ui;l.relatedPage=l.ui.getPageById(b.getAttribute("relatedPage"));if(null==l.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));l.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(l.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState"));
+b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(l.relatedPage.root=a.decodeCell(d,!1),l=d.nextSibling,d.parentNode.removeChild(d),d=l;null!=d;){l=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var e=d.getAttribute("id");null==a.lookup(e)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=l}}return b};a.afterDecode=function(a,b,l){l.index=l.previousIndex;return l};mxCodecRegistry.register(a)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var a=Graph.prototype.foldCells;Graph.prototype.foldCells=function(b,e,m,u,q){e=null!=e?e:!1;null==m&&(m=this.getFoldableCells(this.getSelectionCells(),b));this.stopEditing();this.model.beginUpdate();try{for(var c=m.slice(),d=0;d<m.length;d++)"1"==mxUtils.getValue(this.getCurrentCellStyle(m[d]),"treeFolding","0")&&this.foldTreeCell(b,m[d]);m=c;m=a.apply(this,arguments)}finally{this.model.endUpdate()}return m};Graph.prototype.foldTreeCell=
+function(a,b){this.model.beginUpdate();try{var d=[];this.traverse(b,!0,mxUtils.bind(this,function(a,c){var e=null!=c&&this.isTreeEdge(c);e&&d.push(c);a==b||null!=c&&!e||d.push(a);return(null==c||e)&&(a==b||!this.model.isCollapsed(a))}));this.model.setCollapsed(b,a);for(var e=0;e<d.length;e++)this.model.setVisible(d[e],!a)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(a){return!this.isEdgeIgnored(a)};Graph.prototype.getTreeEdges=function(a,b,e,u,q,c){return this.model.filterCells(this.getEdges(a,
+b,e,u,q,c),mxUtils.bind(this,function(a){return this.isTreeEdge(a)}))};Graph.prototype.getIncomingTreeEdges=function(a,b){return this.getTreeEdges(a,b,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(a,b){return this.getTreeEdges(a,b,!1,!0,!1)};var b=EditorUi.prototype.init;EditorUi.prototype.init=function(){b.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function a(a){return A.isVertex(a)&&e(a)}function b(a){var b=
+!1;null!=a&&(b="1"==v.getCurrentCellStyle(a).treeMoving);return b}function e(a){var b=!1;null!=a&&(a=A.getParent(a),b=v.view.getState(a),b="tree"==(null!=b?b.style:v.getCellStyle(a)).containerType);return b}function u(a){var b=!1;null!=a&&(a=A.getParent(a),b=v.view.getState(a),v.view.getState(a),b=null!=(null!=b?b.style:v.getCellStyle(a)).childLayout);return b}function q(a){a=v.view.getState(a);if(null!=a){var b=v.getIncomingTreeEdges(a.cell);if(0<b.length&&(b=v.view.getState(b[0]),null!=b&&(b=b.absolutePoints,
+null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function c(a,b){b=null!=b?b:!0;v.model.beginUpdate();try{var c=v.model.getParent(a),d=v.getIncomingTreeEdges(a),e=v.cloneCells([d[0],a]);v.model.setTerminal(e[0],v.model.getTerminal(d[0],
+!0),!0);var f=q(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;v.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=v.view.getState(a),m=v.view.scale;if(null!=k){var n=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?n.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*m:n.y+=(b?
+a.geometry.height+10:-e[1].geometry.height-10)*m;var l=v.getOutgoingTreeEdges(v.model.getTerminal(d[0],!0));if(null!=l){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<l.length;t++){var u=v.model.getTerminal(l[t],!1);if(f==q(u)){var z=v.view.getState(u);u!=a&&null!=z&&(p&&b!=z.getCenterX()<k.getCenterX()||!p&&b!=z.getCenterY()<k.getCenterY())&&mxUtils.intersects(n,z)&&(d=10+Math.max(d,(Math.min(n.x+n.width,z.x+z.width)-Math.max(n.x,z.x))/m),g=10+Math.max(g,(Math.min(n.y+
+n.height,z.y+z.height)-Math.max(n.y,z.y))/m))}}p?g=0:d=0;for(t=0;t<l.length;t++)if(u=v.model.getTerminal(l[t],!1),f==q(u)&&(z=v.view.getState(u),u!=a&&null!=z&&(p&&b!=z.getCenterX()<k.getCenterX()||!p&&b!=z.getCenterY()<k.getCenterY()))){var D=[];v.traverse(z.cell,!0,function(a,b){var c=null!=b&&v.isTreeEdge(b);c&&D.push(b);(null==b||c)&&D.push(a);return null==b||c});v.moveCells(D,(b?1:-1)*d,(b?1:-1)*g)}}}return v.addCells(e,c)}finally{v.model.endUpdate()}}function f(a){v.model.beginUpdate();try{var b=
+q(a),c=v.getIncomingTreeEdges(a),d=v.cloneCells([c[0],a]);v.model.setTerminal(c[0],d[1],!1);v.model.setTerminal(d[0],d[1],!0);v.model.setTerminal(d[0],a,!1);var e=v.model.getParent(a),f=e.geometry,g=[];v.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);v.traverse(a,!0,function(a,b){var c=null!=b&&v.isTreeEdge(b);c&&g.push(b);(null==b||c)&&g.push(a);return null==b||c});var k=a.geometry.width+40,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?
+(k=0,m=-m):b==mxConstants.DIRECTION_WEST?(k=-k,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);v.moveCells(g,k,m);return v.addCells(d,e)}finally{v.model.endUpdate()}}function g(a,b){v.model.beginUpdate();try{var c=v.model.getParent(a),d=v.getIncomingTreeEdges(a),e=q(a);0==d.length&&(d=[v.createEdge(c,null,"",null,null,v.createCurrentEdgeStyle())],e=b);var f=v.cloneCells([d[0],a]);v.model.setTerminal(f[0],a,!0);if(null==v.model.getTerminal(f[0],!1)){v.model.setTerminal(f[0],f[1],!1);var g=v.getCellStyle(f[1]).newEdgeStyle;
+if(null!=g)try{var k=JSON.parse(g),m;for(m in k)v.setCellStyles(m,k[m],[f[0]]),"edgeStyle"==m&&"elbowEdgeStyle"==k[m]&&v.setCellStyles("elbow",e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[f[0]])}catch(fa){}}var d=v.getOutgoingTreeEdges(a),n=c.geometry,g=[];v.view.currentRoot==c&&(n=new mxRectangle);for(k=0;k<d.length;k++){var l=v.model.getTerminal(d[k],!1);null!=l&&g.push(l)}var p=v.view.getBounds(g),t=v.view.translate,u=v.view.scale;e==mxConstants.DIRECTION_SOUTH?
+(f[1].geometry.x=null==p?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(p.x+p.width)/u-t.x-n.x+10,f[1].geometry.y+=f[1].geometry.height-n.y+40):e==mxConstants.DIRECTION_NORTH?(f[1].geometry.x=null==p?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(p.x+p.width)/u-t.x+-n.x+10,f[1].geometry.y-=f[1].geometry.height+n.y+40):(f[1].geometry.x=e==mxConstants.DIRECTION_WEST?f[1].geometry.x-(f[1].geometry.width+n.x+40):f[1].geometry.x+(f[1].geometry.width-n.x+40),f[1].geometry.y=null==p?a.geometry.y+
+(a.geometry.height-f[1].geometry.height)/2:(p.y+p.height)/u-t.y+-n.y+10);return v.addCells(f,c)}finally{v.model.endUpdate()}}function k(a,b,c){a=v.getOutgoingTreeEdges(a);c=v.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=v.view.getState(v.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-
+c.y-c.height})}return d}function p(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?t.actions.get("selectParent").funct():c==b?(d=v.getOutgoingTreeEdges(a),null!=d&&0<d.length&&v.setSelectionCell(v.model.getTerminal(d[0],!1))):(c=v.getIncomingTreeEdges(a),null!=c&&0<c.length&&(d=k(v.model.getTerminal(c[0],!0),d,a),c=v.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||
+b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&v.setSelectionCell(d[c].cell)))))}var t=this,v=t.editor.graph,A=v.getModel(),F=t.menus.createPopupMenu;t.menus.createPopupMenu=function(b,c,d){F.apply(this,arguments);if(1==v.getSelectionCount()){c=v.getSelectionCell();var e=v.getOutgoingTreeEdges(c);b.addSeparator();0<e.length&&(a(v.getSelectionCell())&&this.addMenuItems(b,["selectChildren"],null,d),this.addMenuItems(b,["selectDescendants"],null,d));a(v.getSelectionCell())&&(b.addSeparator(),
+0<v.getIncomingTreeEdges(c).length&&this.addMenuItems(b,["selectSiblings","selectParent"],null,d))}};t.actions.addAction("selectChildren",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var a=v.getSelectionCell(),a=v.getOutgoingTreeEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(v.model.getTerminal(a[c],!1));v.setSelectionCells(b)}}},null,null,"Alt+Shift+X");t.actions.addAction("selectSiblings",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var a=v.getSelectionCell(),a=
+v.getIncomingTreeEdges(a);if(null!=a&&0<a.length&&(a=v.getOutgoingTreeEdges(v.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(v.model.getTerminal(a[c],!1));v.setSelectionCells(b)}}},null,null,"Alt+Shift+S");t.actions.addAction("selectParent",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var a=v.getSelectionCell(),a=v.getIncomingTreeEdges(a);null!=a&&0<a.length&&v.setSelectionCell(v.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");t.actions.addAction("selectDescendants",
+function(a,b){var c=v.getSelectionCell();if(v.isEnabled()&&v.model.isVertex(c)){if(null!=b&&mxEvent.isAltDown(b))v.setSelectionCells(v.model.getTreeEdges(c,null==b||!mxEvent.isShiftDown(b),null==b||!mxEvent.isControlDown(b)));else{var d=[];v.traverse(c,!0,function(a,c){var e=null!=c&&v.isTreeEdge(c);e&&d.push(c);null!=c&&!e||null!=b&&mxEvent.isShiftDown(b)||d.push(a);return null==c||e})}v.setSelectionCells(d)}},null,null,"Alt+Shift+D");var y=v.removeCells;v.removeCells=function(b,c){c=null!=c?c:!0;
+null==b&&(b=this.getDeletableCells(this.getSelectionCells()));c&&(b=this.getDeletableCells(this.addAllEdges(b)));for(var d=[],f=0;f<b.length;f++){var g=b[f];A.isEdge(g)&&e(g)&&(d.push(g),g=A.getTerminal(g,!1));if(a(g)){var k=[];v.traverse(g,!0,function(a,b){var c=null!=b&&v.isTreeEdge(b);c&&k.push(b);(null==b||c)&&k.push(a);return null==b||c});0<k.length&&(d=d.concat(k),g=v.getIncomingTreeEdges(b[f]),b=b.concat(g))}else null!=g&&d.push(b[f])}b=d;return y.apply(this,arguments)};t.hoverIcons.getStateAt=
+function(b,c,d){return a(b.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var z=v.duplicateCells;v.duplicateCells=function(b,c){b=null!=b?b:this.getSelectionCells();for(var d=b.slice(0),e=0;e<d.length;e++){var f=v.view.getState(d[e]);if(null!=f&&a(f.cell))for(var g=v.getIncomingTreeEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],b)}this.model.beginUpdate();try{var k=z.call(this,b,c);if(k.length==b.length)for(e=0;e<b.length;e++)if(a(b[e])){var m=v.getIncomingTreeEdges(k[e]),g=
+v.getIncomingTreeEdges(b[e]);if(0==m.length&&0<g.length){var l=this.cloneCell(g[0]);this.addEdge(l,v.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var L=v.moveCells;v.moveCells=function(b,c,d,e,f,g,k){var m=null;this.model.beginUpdate();try{var l=f,n=this.getCurrentCellStyle(f);if(null!=b&&a(f)&&"1"==mxUtils.getValue(n,"treeFolding","0")){for(var p=0;p<b.length;p++)if(a(b[p])||v.model.isEdge(b[p])&&null==v.model.getTerminal(b[p],!0)){f=v.model.getParent(b[p]);
+break}if(null!=l&&f!=l&&null!=this.view.getState(b[0])){var q=v.getIncomingTreeEdges(b[0]);if(0<q.length){var t=v.view.getState(v.model.getTerminal(q[0],!0));if(null!=t){var u=v.view.getState(l);null!=u&&(c=(u.getCenterX()-t.getCenterX())/v.view.scale,d=(u.getCenterY()-t.getCenterY())/v.view.scale)}}}}m=L.apply(this,arguments);if(null!=m&&null!=b&&m.length==b.length)for(p=0;p<m.length;p++)if(this.model.isEdge(m[p]))a(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[p],!0))&&this.model.setTerminal(m[p],
+l,!0);else if(a(b[p])&&(q=v.getIncomingTreeEdges(b[p]),0<q.length))if(!e)a(l)&&0>mxUtils.indexOf(b,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==v.getIncomingTreeEdges(m[p]).length){n=l;if(null==n||n==v.model.getParent(b[p]))n=v.model.getTerminal(q[0],!0);e=this.cloneCell(q[0]);this.addEdge(e,v.getDefaultParent(),n,m[p])}}finally{this.model.endUpdate()}return m};if(null!=t.sidebar){var M=t.sidebar.dropAndConnect;t.sidebar.dropAndConnect=function(b,c,d,e){var f=v.model,
+g=null;f.beginUpdate();try{if(g=M.apply(this,arguments),a(b))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],b,!0);var m=v.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var G={88:t.actions.get("selectChildren"),84:t.actions.get("selectSubtree"),80:t.actions.get("selectParent"),83:t.actions.get("selectSiblings")},J=t.onKeyDown;t.onKeyDown=function(b){try{if(v.isEnabled()&&
+!v.isEditing()&&a(v.getSelectionCell())&&1==v.getSelectionCount()){var d=null;0<v.getIncomingTreeEdges(v.getSelectionCell()).length&&(9==b.which?d=mxEvent.isShiftDown(b)?f(v.getSelectionCell()):g(v.getSelectionCell()):13==b.which&&(d=c(v.getSelectionCell(),!mxEvent.isShiftDown(b))));if(null!=d&&0<d.length)1==d.length&&v.model.isEdge(d[0])?v.setSelectionCell(v.model.getTerminal(d[0],!1)):v.setSelectionCell(d[d.length-1]),null!=t.hoverIcons&&t.hoverIcons.update(v.view.getState(v.getSelectionCell())),
+v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var e=G[b.keyCode];null!=e&&(e.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(p(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(p(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(p(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(p(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
+mxEvent.consume(b))}}catch(C){t.handleError(C)}mxEvent.isConsumed(b)||J.apply(this,arguments)};var H=v.connectVertex;v.connectVertex=function(b,d,e,k,m,l,p){var n=v.getIncomingTreeEdges(b);if(a(b)){var t=q(b),u=t==mxConstants.DIRECTION_EAST||t==mxConstants.DIRECTION_WEST,z=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return t==d||0==n.length?g(b,d):u==z?f(b):c(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return H.apply(this,arguments)};v.getSubtree=function(c){var d=
+[c];!b(c)&&!a(c)||u(c)||v.traverse(c,!0,function(a,b){var c=null!=b&&v.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!u(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);
-this.graph.isMouseDown=!0;p.hoverIcons.reset();mxEvent.consume(a)})))};var J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){J.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){H.apply(this,
-arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var X=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){X.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var e=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=e.apply(this,arguments),b=this.graph;return a.concat([this.addEntry("tree container",
+this.graph.isMouseDown=!0;t.hoverIcons.reset();mxEvent.consume(a)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var I=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){I.apply(this,
+arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var R=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){R.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var e=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=e.apply(this,arguments),b=this.graph;return a.concat([this.addEntry("tree container",
function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.vertex=!0;var d=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
d.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!0);d.insertEdge(c,!1);a.insert(c);a.insert(b);a.insert(d);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");
a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');b.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
d.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!0);d.insertEdge(c,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var m=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-m.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");k.geometry.relative=!0;k.edge=!0;b.insertEdge(k,!0);m.insertEdge(k,!1);var n=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-n.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");u.geometry.relative=!0;u.edge=!0;b.insertEdge(u,!0);n.insertEdge(u,!1);a.insert(c);a.insert(g);a.insert(k);a.insert(u);a.insert(b);a.insert(d);a.insert(e);a.insert(m);a.insert(n);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",
+e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+k.vertex=!0;var l=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");l.geometry.relative=!0;l.edge=!0;b.insertEdge(l,!0);k.insertEdge(l,!1);var t=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+t.vertex=!0;var v=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");v.geometry.relative=!0;v.edge=!0;b.insertEdge(v,!0);t.insertEdge(v,!1);a.insert(c);a.insert(g);a.insert(l);a.insert(v);a.insert(b);a.insert(d);a.insert(e);a.insert(k);a.insert(t);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",
new mxGeometry(0,0,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};treeFolding=1;treeMoving=1;');a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),'swimlane;html=1;startSize=20;horizontal=1;containerType=tree;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
@@ -3804,30 +3806,30 @@ this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,argume
Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
"0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight="1"==urlParams.sketch?1:46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert="1"!=urlParams.sketch&&!mxClient.IS_IOS&&!mxClient.IS_ANDROID;
-EditorUi.prototype.setDarkMode=function(a){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(a);mxSettings.settings.darkMode=a;mxSettings.save();this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var n=document.createElement("link");n.setAttribute("rel","stylesheet");n.setAttribute("href",STYLE_PATH+"/dark.css");n.setAttribute("charset","UTF-8");n.setAttribute("type","text/css");EditorUi.prototype.doSetDarkMode=
+EditorUi.prototype.setDarkMode=function(a){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(a);mxSettings.settings.darkMode=a;mxSettings.save();this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var l=document.createElement("link");l.setAttribute("rel","stylesheet");l.setAttribute("href",STYLE_PATH+"/dark.css");l.setAttribute("charset","UTF-8");l.setAttribute("type","text/css");EditorUi.prototype.doSetDarkMode=
function(a){if(Editor.darkMode!=a){var b=this.editor.graph;Editor.darkMode=a;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";this.setGridColor(Editor.isDarkMode()?b.view.defaultDarkGridColor:b.view.defaultGridColor);b.defaultPageBackgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";b.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";b.defaultThemeName=Editor.isDarkMode()?"darkTheme":"default-style2";b.graphHandler.previewColor=Editor.isDarkMode()?"#cccccc":"black";b.loadStylesheet();
Dialog.backdropColor=Editor.isDarkMode()?"#2a2a2a":"white";StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?"#2a2a2a":"white";Format.inactiveTabBackgroundColor=Editor.isDarkMode()?"black":"#f0f0f0";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&
-mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;document.body.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";l.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==n.parentNode&&document.getElementsByTagName("head")[0].appendChild(n):null!=n.parentNode&&n.parentNode.removeChild(n)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }"+(Editor.isDarkMode()?"html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }":
+mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;document.body.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";m.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==l.parentNode&&document.getElementsByTagName("head")[0].appendChild(l):null!=l.parentNode&&l.parentNode.removeChild(l)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }"+(Editor.isDarkMode()?"html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }":
"html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+"html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: "+
(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: "+(Editor.isDarkMode()?"#cccccc":"#353535")+" !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geTabContainer { border-bottom:1px solid lightgray; border-top:1px solid lightgray; }.geToolbarContainer, .geTabContainer { background: "+
(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; }div.geSidebarContainer { background-color: "+(Editor.isDarkMode()?"#2a2a2a":"#fff")+"; }div.geSidebarContainer .geTitle { background-color: "+(Editor.isDarkMode()?"#2a2a2a":"#fdfdfd")+"; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:"+
-(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: "+
+(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow *:not(svg *) { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: "+
(Editor.isDarkMode()?"#2a2a2a":"rgb(249, 249, 249)")+" !important; color: #A0A0A0 !important; } html div.geActivePage { background: "+(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; "+(Editor.isDarkMode()?"":"color: #353535 !important; } ")+"html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: "+
(Editor.isDarkMode()?"#cccccc":"#353535")+"; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: "+(Editor.isDarkMode()?"#000000":"#29b6f2")+"; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: "+(Editor.isDarkMode()?"#cccccc":"#ffffff")+" !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }html body td.mxWindowTitle { padding-right: 14px; }html td.mxWindowTitle div img { padding: 8px 4px; }html td.mxWindowTitle div { top: 0px !important; }"+
-(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"html .geStatusAlertOrange, html .geStatusAlert { margin-top: -2px; }a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var l=document.createElement("style");l.type="text/css";l.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(l);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
-function(){return!1};var t=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");t.apply(this,arguments)};var q=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){q.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var c=
+(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"html .geStatusAlertOrange, html .geStatusAlert { margin-top: -2px; }a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var m=document.createElement("style");m.type="text/css";m.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(m);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
+function(){return!1};var u=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");u.apply(this,arguments)};var q=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){q.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var c=
Menus.prototype.addShortcut;Menus.prototype.addShortcut=function(a,b){null!=b.shortcut&&900>e&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):c.apply(this,arguments)};var f=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){f.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="position:relative;margin-right:4px;cursor:pointer;display:"+a.style.display;a.className="geToolbarButton";a.innerHTML="";a.style.backgroundImage=
"url("+Editor.userImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";a.style.cssFloat="right";a.setAttribute("title",mxResources.get("changeUser"));"none"!=a.style.display&&(a.style.display="inline-block")}};var g=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){g.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText=
"display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";a.className="geToolbarButton";a.innerHTML="";a.style.backgroundImage="url("+Editor.shareImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";"1"==urlParams.sketch&&(this.shareButton.style.display="none")}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.buttonContainer){var a=document.createElement("div");
a.style.display="inline-block";a.style.position="relative";a.style.marginTop="8px";a.style.marginRight="4px";var b=document.createElement("a");b.className="geMenuItem gePrimaryBtn";b.style.marginLeft="8px";b.style.padding="6px";"1"==urlParams.noSaveBtn?(mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)):(mxUtils.write(b,mxResources.get("save")),
b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
-a.appendChild(b)));"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("exit")),b.setAttribute("title",mxResources.get("exit")),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b));this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};var m=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=
-function(a,b){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,a)){var c=mxUtils.getOffset(this.editorUi.picker);c.x+=this.editorUi.picker.offsetWidth+4;c.y+=a.offsetTop-b.height/2+16;return c}var d=m.apply(this,arguments),c=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);d.x+=c.x-16;d.y+=c.y;return d};var k=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;k.apply(this,arguments);
+a.appendChild(b)));"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("exit")),b.setAttribute("title",mxResources.get("exit")),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b));this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};var k=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=
+function(a,b){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,a)){var c=mxUtils.getOffset(this.editorUi.picker);c.x+=this.editorUi.picker.offsetWidth+4;c.y+=a.offsetTop-b.height/2+16;return c}var d=k.apply(this,arguments),c=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);d.x+=c.x-16;d.y+=c.y;return d};var p=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;p.apply(this,arguments);
"1"==urlParams.sketch?d.isSelectionEmpty()&&d.isEnabled()&&(a.addSeparator(),this.addSubmenu("view",a,null,mxResources.get("options"))):1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-","editGeometry","edit"],null,c),d.isCellFoldable(d.getSelectionCell())&&this.addMenuItems(a,d.isCellCollapsed(b)?["expand"]:["collapse"],null,c),this.addMenuItems(a,["collapsible","-","lockUnlock","enterGroup"],null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?
-(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),a.addSeparator(),this.addSubmenu("insert",a),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};var p=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(a,b,c){p.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(a,
-["copyAsImage"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=b?b:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var u=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),
+(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),a.addSeparator(),this.addSubmenu("insert",a),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};var t=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(a,b,c){t.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(a,
+["copyAsImage"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=b?b:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var v=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),
this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=
-null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),this.menus.findReplaceWindow=null);u.apply(this,arguments)};var A=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){A.apply(this,arguments);if(a){var b=window.innerWidth||document.documentElement.clientWidth||
+null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),this.menus.findReplaceWindow=null);v.apply(this,arguments)};var A=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){A.apply(this,arguments);if(a){var b=window.innerWidth||document.documentElement.clientWidth||
document.body.clientWidth;1E3<=b&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=b||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1)};EditorUi.prototype.chromelessWindowResize=function(){};var F=Menus.prototype.init;Menus.prototype.init=function(){F.apply(this,arguments);var c=
this.editorUi,d=c.editor.graph;c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("createShape").label=mxResources.get("shape")+"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.get("forkme").visible="1"!=urlParams.sketch;c.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var e=c.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(){c.setDarkMode(!Editor.darkMode)}));
e.setToggleAction(!0);e.setSelectedCallback(function(){return Editor.isDarkMode()});c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text",
@@ -3838,60 +3840,60 @@ EditorUi.isElectronApp||null==d||d.constructor==LocalFile||c.menus.addMenuItems(
c.menus.addMenuItems(a,["tags"],b);"1"!=urlParams.sketch&&null!=d&&null!=c.fileNode&&(d=null!=d.getTitle()?d.getTitle():c.defaultFilename,/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||this.addMenuItems(a,["-","properties"]));mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);"1"==urlParams.sketch&&(c.menus.addSubmenu("extras",a,b,mxResources.get("preferences")),a.addSeparator(b));c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):
c.menus.addMenuItems(a,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["save","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
null==d||d.constructor==LocalFile||c.menus.addMenuItems(a,["-","synchronize"],b);c.menus.addMenuItems(a,["-","autosave"],b);null!=d&&d.isRevisionHistorySupported()&&c.menus.addMenuItems(a,["-","revisionHistory"],b)})));var f=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){f.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var g=this.get("language");this.put("table",
-new Menu(mxUtils.bind(this,function(a,b){c.menus.addInsertTableCellItem(a,b)})));this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=g&&c.menus.addSubmenu("language",a,b);c.menus.addSubmenu("units",a,b);"1"==urlParams.sketch?c.menus.addMenuItems(a,["-","configuration","-","showStartScreen"],b):(a.addSeparator(b),c.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],b),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&
-c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b),!c.isOfflineApp()&&isLocalStorage&&c.menus.addMenuItem(a,"plugins",b),a.addSeparator(b),c.menus.addMenuItem(a,"configuration",b));a.addSeparator(b)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxUtils.bind(this,function(){var a=this.get("insert"),b=a.funct;a.funct=function(a,d){"1"==
-urlParams.sketch?(c.menus.addMenuItems(a,["insertFreehand"],d),c.insertTemplateEnabled&&!c.isOffline()&&c.menus.addMenuItems(a,["insertTemplate"],d)):(b.apply(this,arguments),c.menus.addSubmenu("table",a,d),a.addSeparator(d));c.menus.addMenuItems(a,["-","toggleShapes"],d)}})();var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),m=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,
-620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):m(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d=c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://www.diagrams.net/doc/faq/math-typesetting")}c.menus.addMenuItems(a,
-["copyConnect","collapseExpand","-","pageScale"],b);"1"!=urlParams.sketch&&c.menus.addMenuItems(a,["-","fullscreen","toggleDarkMode"],b)})))};EditorUi.prototype.installFormatToolbar=function(a){var b=this.editor.graph,c=document.createElement("div");c.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";b.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,
-function(d,e){0<b.getSelectionCount()?(a.appendChild(c),c.innerHTML="Selected: "+b.getSelectionCount()):null!=c.parentNode&&c.parentNode.removeChild(c)}))};var z=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(a,b,c){var d=l.menus.get(a),e=t.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),q);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";e.style.top="6px";e.style.marginRight="6px";e.style.height=
-"30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));l.menus.menuCreated(d,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition="right 6px center",e.style.backgroundRepeat=
-"no-repeat",e.style.paddingRight="22px");return e}function d(a,b,c,d,e,f){var g=document.createElement("a");g.className="geMenuItem";g.style.display="inline-block";g.style.boxSizing="border-box";g.style.height="30px";g.style.padding="6px";g.style.position="relative";g.style.verticalAlign="top";g.style.top="0px";"1"==urlParams.sketch&&(g.style.borderStyle="none",g.style.boxShadow="none",g.style.padding="6px",g.style.margin="0px");null!=l.statusContainer?p.insertBefore(g,l.statusContainer):p.appendChild(g);
-null!=f?(g.style.backgroundImage="url("+f+")",g.style.backgroundPosition="center center",g.style.backgroundRepeat="no-repeat",g.style.backgroundSize="24px 24px",g.style.width="34px"):mxUtils.write(g,a);mxEvent.addListener(g,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(g,"click",function(a){"disabled"!=g.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(g.style.marginRight="4px");null!=d&&g.setAttribute("title",d);
-null!=e&&(a=function(){e.isEnabled()?(g.removeAttribute("disabled"),g.style.cursor="pointer"):(g.setAttribute("disabled","disabled"),g.style.cursor="default")},e.addListener("stateChanged",a),a());return g}function f(a,b,c){c=document.createElement("div");c.className="geMenuItem";c.style.display="inline-block";c.style.verticalAlign="top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position="relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow=
-"none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(c,l.statusContainer):p.appendChild(c);return c}function g(){for(var a=p.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&"geItem"!=a.className||a.parentNode.removeChild(a);a=b}q=p.firstChild;
-e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>e||"1"==urlParams.sketch)||c("diagram");if("1"!=urlParams.sketch&&(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,d(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
+new Menu(mxUtils.bind(this,function(a,b){c.menus.addInsertTableCellItem(a,b)})));var k=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(a,b){k.funct(a,b);this.addMenuItems(a,["editDiagram"],b)})));this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=g&&c.menus.addSubmenu("language",a,b);c.menus.addSubmenu("units",a,b);"1"==urlParams.sketch?c.menus.addMenuItems(a,["-","configuration","-","showStartScreen"],
+b):(a.addSeparator(b),c.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],b),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b),!c.isOfflineApp()&&isLocalStorage&&c.menus.addMenuItem(a,"plugins",b),a.addSeparator(b),c.menus.addMenuItem(a,"configuration",b));a.addSeparator(b)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),
+b)})));mxUtils.bind(this,function(){var a=this.get("insert"),b=a.funct;a.funct=function(a,d){"1"==urlParams.sketch?(c.menus.addMenuItems(a,["insertFreehand"],d),c.insertTemplateEnabled&&!c.isOffline()&&c.menus.addMenuItems(a,["insertTemplate"],d)):(b.apply(this,arguments),c.menus.addSubmenu("table",a,d),a.addSeparator(d));c.menus.addMenuItems(a,["-","toggleShapes"],d)}})();var m="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),l=function(a,b,d,e){a.addItem(d,
+null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<m.length;c++)"-"==m[c]?a.addSeparator(b):l(a,b,mxResources.get(m[c])+"...",m[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d=c.menus.addMenuItem(a,
+"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://www.diagrams.net/doc/faq/math-typesetting")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b);"1"!=urlParams.sketch&&c.menus.addMenuItems(a,["-","fullscreen","toggleDarkMode"],b)})))};EditorUi.prototype.installFormatToolbar=function(a){var b=this.editor.graph,c=document.createElement("div");c.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";
+b.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(d,e){0<b.getSelectionCount()?(a.appendChild(c),c.innerHTML="Selected: "+b.getSelectionCount()):null!=c.parentNode&&c.parentNode.removeChild(c)}))};var y=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(a,b,c){var d=l.menus.get(a),e=u.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),t);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";
+e.style.top="6px";e.style.marginRight="6px";e.style.height="30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));l.menus.menuCreated(d,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition=
+"right 6px center",e.style.backgroundRepeat="no-repeat",e.style.paddingRight="22px");return e}function d(a,b,c,d,e,f){var g=document.createElement("a");g.className="geMenuItem";g.style.display="inline-block";g.style.boxSizing="border-box";g.style.height="30px";g.style.padding="6px";g.style.position="relative";g.style.verticalAlign="top";g.style.top="0px";"1"==urlParams.sketch&&(g.style.borderStyle="none",g.style.boxShadow="none",g.style.padding="6px",g.style.margin="0px");null!=l.statusContainer?
+q.insertBefore(g,l.statusContainer):q.appendChild(g);null!=f?(g.style.backgroundImage="url("+f+")",g.style.backgroundPosition="center center",g.style.backgroundRepeat="no-repeat",g.style.backgroundSize="24px 24px",g.style.width="34px"):mxUtils.write(g,a);mxEvent.addListener(g,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(g,"click",function(a){"disabled"!=g.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(g.style.marginRight=
+"4px");null!=d&&g.setAttribute("title",d);null!=e&&(a=function(){e.isEnabled()?(g.removeAttribute("disabled"),g.style.cursor="pointer"):(g.setAttribute("disabled","disabled"),g.style.cursor="default")},e.addListener("stateChanged",a),p.addListener("enabledChanged",a),a());return g}function f(a,b,c){c=document.createElement("div");c.className="geMenuItem";c.style.display="inline-block";c.style.verticalAlign="top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position=
+"relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow="none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(c,l.statusContainer):q.appendChild(c);return c}function g(){for(var a=q.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&
+"geItem"!=a.className||a.parentNode.removeChild(a);a=b}t=q.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>e||"1"==urlParams.sketch)||c("diagram");if("1"!=urlParams.sketch&&(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,d(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),d(mxResources.get("format"),l.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+l.actions.get("formatPanel").shortcut+")",l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
-null)],a?60:null),b=c("insert",!0,a?D:null),f([b,d(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":null)],a?60:null),411<=e&&(f([fa,R],60),520<=e&&(f([ya,640<=e?d("",ca.funct,
-!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ca,na):null,640<=e?d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,P):null],60),720<=e)))){var g=d("",da.funct,null,mxResources.get("dark"),da,Editor.isDarkMode()?ra:la);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ra:la)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,l.statusContainer):p.appendChild(g)}a=l.menus.get("language");
-null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==ta&&(b=t.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",
-b.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(b),ta=b),l.buttonContainer.style.paddingRight="34px"):(l.buttonContainer.style.paddingRight="4px",null!=ta&&(ta.parentNode.removeChild(ta),ta=null))}z.apply(this,arguments);this.doSetDarkMode(mxSettings.settings.darkMode);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=
+null)],a?60:null),b=c("insert",!0,a?E:null),f([b,d(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":null)],a?60:null),411<=e&&(f([ea,S],60),520<=e&&(f([ya,640<=e?d("",ba.funct,
+!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ba,na):null,640<=e?d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,Q):null],60),720<=e)))){var g=d("",ca.funct,null,mxResources.get("dark"),ca,Editor.isDarkMode()?ra:ja);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(g,l.statusContainer):q.appendChild(g)}a=l.menus.get("language");
+null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==ta&&(b=u.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",
+b.style.top="1"==urlParams.embed?"12px":"11px",q.appendChild(b),ta=b),l.buttonContainer.style.paddingRight="34px"):(l.buttonContainer.style.paddingRight="4px",null!=ta&&(ta.parentNode.removeChild(ta),ta=null))}y.apply(this,arguments);this.doSetDarkMode(mxSettings.settings.darkMode);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=
this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])b(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));this.keyHandler.bindAction(75,
!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=e)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){m.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=parseInt(this.div.style.left)-
-150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,n=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(l,p);l.statusContainer=l.createStatusContainer();l.statusContainer.style.position=
-"relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var u=l.hideCurrentMenu;l.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var A=l.descriptorChanged;l.descriptorChanged=function(){A.apply(this,arguments);var a=l.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":
-"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);p.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else p.removeAttribute("title")};l.setStatusText(l.editor.getStatus());p.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(l.buttonContainer);l.menubarContainer=
-l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,C=document.createElement("div");C.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var F=l.menus.get("viewZoom"),
-D="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
-U="1"==urlParams.sketch?document.createElement("div"):null,Z="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){if(null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch)){this.scratchpad=null;this.toggleScratchpad();var a=l.actions.outlineWindow;
-null!=a&&(a.outline.outline.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),l.actions.outlineWindow.update())}n.refresh();n.view.validateBackground()}));if("1"==urlParams.sketch){if(null!=n.freehand){n.freehand.setAutoInsert(!0);n.freehand.setAutoScroll(!0);n.freehand.setOpenFill(!0);var ma=n.freehand.createStyle;n.freehand.createStyle=function(a){return ma.apply(this,arguments)+"sketch=0;"};Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&
-!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=l.hoverIcons){var pa=l.hoverIcons.update;l.hoverIcons.update=function(){n.freehand.isDrawing()||pa.apply(this,arguments)}}}Z.className="geToolbarContainer";U.className="geToolbarContainer";Y.className="geToolbarContainer";p.className="geToolbarContainer";l.picker=Z;var aa=!1;mxEvent.addListener(p,"mouseenter",function(){l.statusContainer.style.display=
-"inline-block"});mxEvent.addListener(p,"mouseleave",function(){aa||(l.statusContainer.style.display="none")});var ja=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):l.notificationBtn.removeAttribute("title"))});l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=
-l.statusContainer.firstChild?ja(l.statusContainer.firstChild.getAttribute("title")):ja(l.editor.getStatus());var a=l.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=l.notificationBtn&&l.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',l.statusContainer.style.display="inline-block",aa=!0):(l.statusContainer.style.display="none",
-aa=!1)}else l.statusContainer.style.display="inline-block",ja(null),aa=!0}));N=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");N.style.boxShadow="none";N.style.opacity="0.4";N.style.padding="6px";N.style.margin="0px";Y.appendChild(N);l.statusContainer.style.position="";l.statusContainer.style.display="none";l.statusContainer.style.margin="0px";l.statusContainer.style.padding="6px 0px";l.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";l.statusContainer.style.display="inline-block";l.statusContainer.style.textOverflow=
-"ellipsis";l.buttonContainer.style.position="";l.buttonContainer.style.paddingRight="0px";l.buttonContainer.style.display="inline-block";var ka=mxUtils.bind(this,function(){function a(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=null!=c?c:"default";a.style.margin="2px 0px";Z.appendChild(a);mxUtils.br(Z);return a}function b(b,c,e){b=d("",b.funct,null,c,b,e);b.style.width="40px";return a(b,null,"pointer")}Z.innerHTML="";a(l.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",
+150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,p=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var q=document.createElement("div");q.className="geMenubarContainer";var t=null,u=new Menubar(l,q);l.statusContainer=l.createStatusContainer();l.statusContainer.style.position=
+"relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var n=l.hideCurrentMenu;l.hideCurrentMenu=function(){n.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.apply(this,arguments);var a=l.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":
+"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);q.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else q.removeAttribute("title")};l.setStatusText(l.editor.getStatus());q.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";q.appendChild(l.buttonContainer);l.menubarContainer=
+l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var F=l.menus.get("viewZoom"),
+E="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
+U="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null,X="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){if(null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch)){this.scratchpad=null;this.toggleScratchpad();var a=l.actions.outlineWindow;
+null!=a&&(a.outline.outline.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),l.actions.outlineWindow.update())}p.refresh();p.view.validateBackground()}));if("1"==urlParams.sketch){if(null!=p.freehand){p.freehand.setAutoInsert(!0);p.freehand.setAutoScroll(!0);p.freehand.setOpenFill(!0);var ma=p.freehand.createStyle;p.freehand.createStyle=function(a){return ma.apply(this,arguments)+"sketch=0;"};Graph.touchStyle&&(p.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&
+!mxEvent.isMouseEvent(b)&&!p.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=l.hoverIcons){var pa=l.hoverIcons.update;l.hoverIcons.update=function(){p.freehand.isDrawing()||pa.apply(this,arguments)}}}Y.className="geToolbarContainer";U.className="geToolbarContainer";X.className="geToolbarContainer";q.className="geToolbarContainer";l.picker=Y;var Z=!1;mxEvent.addListener(q,"mouseenter",function(){l.statusContainer.style.display=
+"inline-block"});mxEvent.addListener(q,"mouseleave",function(){Z||(l.statusContainer.style.display="none")});var ha=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):l.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed&&l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=
+l.statusContainer.firstChild?ha(l.statusContainer.firstChild.getAttribute("title")):ha(l.editor.getStatus());var a=l.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=l.notificationBtn&&l.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',l.statusContainer.style.display="inline-block",Z=!0):(l.statusContainer.style.display="none",
+Z=!1)}else l.statusContainer.style.display="inline-block",ha(null),Z=!0}));P=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");P.style.boxShadow="none";P.style.opacity="0.4";P.style.padding="6px";P.style.margin="0px";X.appendChild(P);l.statusContainer.style.position="";l.statusContainer.style.display="none";l.statusContainer.style.margin="0px";l.statusContainer.style.padding="6px 0px";l.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";l.statusContainer.style.display="inline-block";l.statusContainer.style.textOverflow=
+"ellipsis";l.buttonContainer.style.position="";l.buttonContainer.style.paddingRight="0px";l.buttonContainer.style.display="inline-block";var ia=mxUtils.bind(this,function(){function a(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=null!=c?c:"default";a.style.margin="2px 0px";Y.appendChild(a);mxUtils.br(Y);return a}function b(b,c,e){b=d("",b.funct,null,c,b,e);b.style.width="40px";return a(b,null,"pointer")}Y.innerHTML="";a(l.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",
40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");a(l.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;sketch=1;shadow=1;size=20;fontSize=24;jiggle=2;pointerEvents=1;",140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));a(l.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",
-160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");a(l.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;curved=1;rounded=0;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;");b.geometry.setTerminalPoint(new mxPoint(0,
-0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;a(l.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));b=b.clone();b.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=a(l.sidebar.createEdgeTemplateFromCells([b],
+160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");a(l.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,p.defaultEdgeLength,0),"edgeStyle=none;curved=1;rounded=0;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;");b.geometry.setTerminalPoint(new mxPoint(0,
+0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;a(l.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));b=b.clone();b.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=p.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=a(l.sidebar.createEdgeTemplateFromCells([b],
b.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid lightgray";b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(l.actions.get("insertFreehand"),mxResources.get("freehand"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTQuNSw4YzEuMDQsMCwyLjM0LTEuNSw0LjI1LTEuNWMxLjUyLDAsMi43NSwxLjIzLDIuNzUsMi43NWMwLDIuMDQtMS45OSwzLjE1LTMuOTEsNC4yMkM1LjQyLDE0LjY3LDQsMTUuNTcsNCwxNyBjMCwxLjEsMC45LDIsMiwydjJjLTIuMjEsMC00LTEuNzktNC00YzAtMi43MSwyLjU2LTQuMTQsNC42Mi01LjI4YzEuNDItMC43OSwyLjg4LTEuNiwyLjg4LTIuNDdjMC0wLjQxLTAuMzQtMC43NS0wLjc1LTAuNzUgQzcuNSw4LjUsNi4yNSwxMCw0LjUsMTBDMy4xMiwxMCwyLDguODgsMiw3LjVDMiw1LjQ1LDQuMTcsMi44Myw1LDJsMS40MSwxLjQxQzUuNDEsNC40Miw0LDYuNDMsNCw3LjVDNCw3Ljc4LDQuMjIsOCw0LjUsOHogTTgsMjEgbDMuNzUsMGw4LjA2LTguMDZsLTMuNzUtMy43NUw4LDE3LjI1TDgsMjF6IE0xMCwxOC4wOGw2LjA2LTYuMDZsMC45MiwwLjkyTDEwLjkyLDE5TDEwLDE5TDEwLDE4LjA4eiBNMjAuMzcsNi4yOSBjLTAuMzktMC4zOS0xLjAyLTAuMzktMS40MSwwbC0xLjgzLDEuODNsMy43NSwzLjc1bDEuODMtMS44M2MwLjM5LTAuMzksMC4zOS0xLjAyLDAtMS40MUwyMC4zNyw2LjI5eiIvPjwvc3ZnPg==");
-b(l.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==");var c=l.actions.get("toggleShapes");
-b(c,mxResources.get("shapes")+" ("+c.shortcut+")",D)});ka();l.addListener("darkModeChanged",mxUtils.bind(this,function(){ka()}))}else l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus())}));if(null!=F){var ha=function(){n.popupMenuHandler.hideMenu();var a=n.view.scale,b=n.view.translate.x,c=n.view.translate.y;l.actions.get("resetView").funct();1E-5>Math.abs(a-n.view.scale)&&b==n.view.translate.x&&c==n.view.translate.y&&l.actions.get(n.pageVisible?
-"fitPage":"fitWindow").funct()},ca=l.actions.get("zoomIn"),na="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
-V=l.actions.get("zoomOut"),P="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
-oa=l.actions.get("resetView"),T=l.actions.get("fullscreen"),da=l.actions.get("toggleDarkMode"),la="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
+var c=l.actions.get("toggleShapes");b(c,mxResources.get("shapes")+" ("+c.shortcut+")",E);b(l.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==")});
+ia();l.addListener("darkModeChanged",mxUtils.bind(this,function(){ia()}))}else l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus())}));if(null!=F){var fa=function(){p.popupMenuHandler.hideMenu();var a=p.view.scale,b=p.view.translate.x,c=p.view.translate.y;l.actions.get("resetView").funct();1E-5>Math.abs(a-p.view.scale)&&b==p.view.translate.x&&c==p.view.translate.y&&l.actions.get(p.pageVisible?"fitPage":"fitWindow").funct()},ba=l.actions.get("zoomIn"),
+na="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
+V=l.actions.get("zoomOut"),Q="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
+oa=l.actions.get("resetView"),T=l.actions.get("fullscreen"),ca=l.actions.get("toggleDarkMode"),ja="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
ra="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+",
-O=l.actions.get("undo"),ia=l.actions.get("redo"),fa=d("",O.funct,null,mxResources.get("undo")+" ("+O.shortcut+")",O,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),R=d("",ia.funct,null,mxResources.get("redo")+
-" ("+ia.shortcut+")",ia,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),ya=d("",ha,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",oa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
-oa=d("",T.funct,null,mxResources.get("fullscreen"),T,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg==");if(null!=U){Y.appendChild(fa);Y.appendChild(R);F=function(){fa.style.display=0<l.editor.undoManager.history.length||
-n.isEditing()?"inline-block":"none";R.style.display=fa.style.display;fa.style.opacity=O.enabled?"0.4":"0.1";R.style.opacity=ia.enabled?"0.4":"0.1"};O.addListener("stateChanged",F);ia.addListener("stateChanged",F);F();T.visible&&(oa.style.opacity="0.4",U.appendChild(oa));T=d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,P);T.style.opacity="0.4";U.appendChild(T);var N=document.createElement("div");N.innerHTML="100%";N.setAttribute("title",mxResources.get("fitWindow")+
-"/"+mxResources.get("resetView"));N.style.display="inline-block";N.style.cursor="pointer";N.style.textAlign="center";N.style.whiteSpace="nowrap";N.style.paddingRight="10px";N.style.textDecoration="none";N.style.verticalAlign="top";N.style.padding="6px 0";N.style.fontSize="14px";N.style.width="40px";N.style.opacity="0.4";U.appendChild(N);mxEvent.addListener(N,"click",ha);ha=d("",ca.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ca,na);ha.style.opacity="0.4";U.appendChild(ha);
-var ba=this.createPageMenuTab(!1);ba.style.display="none";ba.style.position="";ba.style.marginLeft="";ba.style.top="";ba.style.left="";ba.style.height="100%";ba.style.lineHeight="";ba.style.borderStyle="none";ba.style.padding="3px 0";ba.style.margin="0px";ba.style.background="";ba.style.border="";ba.style.boxShadow="none";ba.style.verticalAlign="top";ba.firstChild.style.height="100%";ba.firstChild.style.opacity="0.6";ba.firstChild.style.margin="0px";U.appendChild(ba);var qa=d("",da.funct,null,mxResources.get("dark"),
-da,Editor.isDarkMode()?ra:la);qa.style.opacity="0.4";U.appendChild(qa);l.addListener("darkModeChanged",mxUtils.bind(this,function(){qa.style.backgroundImage="url("+(Editor.isDarkMode()?ra:la)+")"}));l.addListener("fileDescriptorChanged",function(){ba.style.display="1"==urlParams.pages||null!=l.pages&&1<l.pages.length?"inline-block":"none"});l.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:20px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";
-Y.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";U.style.cssText="position:absolute;right:20px;bottom:20px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;background-color:#fff;";C.appendChild(Y);C.appendChild(U);Z.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 10px 6px;white-space:nowrap;background-color:#fff;transform:translate(0, -50%);top:50%;";
-C.appendChild(Z);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(C)}else p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;",this.tabContainer.style.right="70px",N=t.addMenu("100%",F.funct),N.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)"),N.style.whiteSpace="nowrap",N.style.paddingRight="10px",N.style.textDecoration="none",N.style.textDecoration="none",N.style.overflow="hidden",N.style.visibility=
-"hidden",N.style.textAlign="center",N.style.cursor="pointer",N.style.height=parseInt(l.tabContainerHeight)-1+"px",N.style.lineHeight=parseInt(l.tabContainerHeight)+1+"px",N.style.position="absolute",N.style.display="block",N.style.fontSize="12px",N.style.width="59px",N.style.right="0px",N.style.bottom="0px",N.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",N.style.backgroundPosition="right 6px center",N.style.backgroundRepeat="no-repeat",C.appendChild(N);Y=mxUtils.bind(this,function(){N.innerHTML=
-Math.round(100*l.editor.graph.view.scale)+"%"});l.editor.graph.view.addListener(mxEvent.EVENT_SCALE,Y);l.editor.addListener("resetGraphView",Y);l.editor.addListener("pageSelected",Y);var sa=l.setGraphEnabled;l.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(N.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==U?this.tabContainerHeight+"px":"0px")}}C.appendChild(p);C.appendChild(l.diagramContainer);
-k.appendChild(C);l.updateTabContainer();null==U&&C.appendChild(l.tabContainer);var ta=null;g();mxEvent.addListener(window,"resize",function(){g();null!=l.sidebarWindow&&l.sidebarWindow.window.fit();null!=l.formatWindow&&l.formatWindow.window.fit();null!=l.actions.outlineWindow&&l.actions.outlineWindow.window.fit();null!=l.actions.layersWindow&&l.actions.layersWindow.window.fit();null!=l.menus.tagsWindow&&l.menus.tagsWindow.window.fit();null!=l.menus.findWindow&&l.menus.findWindow.window.fit();null!=
-l.menus.findReplaceWindow&&l.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();DrawioComment=function(a,b,e,d,n,l,t){this.file=a;this.id=b;this.content=e;this.modifiedDate=d;this.createdDate=n;this.isResolved=l;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,e,d,n){b()};DrawioComment.prototype.editComment=function(a,b,e){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,e,d,n){this.id=a;this.email=b;this.displayName=e;this.pictureUrl=d;this.locale=n};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About \naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified. Do you want to synchronize those changes?\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\npickGDriveFile=Pick Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occured during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "\'{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#ffffff"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
+O=l.actions.get("undo"),ga=l.actions.get("redo"),ea=d("",O.funct,null,mxResources.get("undo")+" ("+O.shortcut+")",O,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),S=d("",ga.funct,null,mxResources.get("redo")+
+" ("+ga.shortcut+")",ga,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),ya=d("",fa,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",oa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
+oa=d("",T.funct,null,mxResources.get("fullscreen"),T,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg==");if(null!=U){X.appendChild(ea);X.appendChild(S);F=function(){ea.style.display=0<l.editor.undoManager.history.length||
+p.isEditing()?"inline-block":"none";S.style.display=ea.style.display;ea.style.opacity=O.enabled?"0.4":"0.1";S.style.opacity=ga.enabled?"0.4":"0.1"};O.addListener("stateChanged",F);ga.addListener("stateChanged",F);F();T.visible&&(oa.style.opacity="0.4",U.appendChild(oa));T=d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,Q);T.style.opacity="0.4";U.appendChild(T);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+
+"/"+mxResources.get("resetView"));P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";U.appendChild(P);mxEvent.addListener(P,"click",fa);fa=d("",ba.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ba,na);fa.style.opacity="0.4";U.appendChild(fa);
+var aa=this.createPageMenuTab(!1);aa.style.display="none";aa.style.position="";aa.style.marginLeft="";aa.style.top="";aa.style.left="";aa.style.height="100%";aa.style.lineHeight="";aa.style.borderStyle="none";aa.style.padding="3px 0";aa.style.margin="0px";aa.style.background="";aa.style.border="";aa.style.boxShadow="none";aa.style.verticalAlign="top";aa.firstChild.style.height="100%";aa.firstChild.style.opacity="0.6";aa.firstChild.style.margin="0px";U.appendChild(aa);var qa=d("",ca.funct,null,mxResources.get("dark"),
+ca,Editor.isDarkMode()?ra:ja);qa.style.opacity="0.4";U.appendChild(qa);l.addListener("darkModeChanged",mxUtils.bind(this,function(){qa.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));l.addListener("fileDescriptorChanged",function(){aa.style.display="1"==urlParams.pages||null!=l.pages&&1<l.pages.length?"inline-block":"none"});l.tabContainer.style.visibility="hidden";q.style.cssText="position:absolute;right:20px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";
+X.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";U.style.cssText="position:absolute;right:20px;bottom:20px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;background-color:#fff;";A.appendChild(X);A.appendChild(U);Y.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 10px 6px;white-space:nowrap;background-color:#fff;transform:translate(0, -50%);top:50%;";
+A.appendChild(Y);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(A)}else q.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;",this.tabContainer.style.right="70px",P=u.addMenu("100%",F.funct),P.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)"),P.style.whiteSpace="nowrap",P.style.paddingRight="10px",P.style.textDecoration="none",P.style.textDecoration="none",P.style.overflow="hidden",P.style.visibility=
+"hidden",P.style.textAlign="center",P.style.cursor="pointer",P.style.height=parseInt(l.tabContainerHeight)-1+"px",P.style.lineHeight=parseInt(l.tabContainerHeight)+1+"px",P.style.position="absolute",P.style.display="block",P.style.fontSize="12px",P.style.width="59px",P.style.right="0px",P.style.bottom="0px",P.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",P.style.backgroundPosition="right 6px center",P.style.backgroundRepeat="no-repeat",A.appendChild(P);X=mxUtils.bind(this,function(){P.innerHTML=
+Math.round(100*l.editor.graph.view.scale)+"%"});l.editor.graph.view.addListener(mxEvent.EVENT_SCALE,X);l.editor.addListener("resetGraphView",X);l.editor.addListener("pageSelected",X);var sa=l.setGraphEnabled;l.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==U?this.tabContainerHeight+"px":"0px")}}A.appendChild(q);A.appendChild(l.diagramContainer);
+k.appendChild(A);l.updateTabContainer();null==U&&A.appendChild(l.tabContainer);var ta=null;g();mxEvent.addListener(window,"resize",function(){g();null!=l.sidebarWindow&&l.sidebarWindow.window.fit();null!=l.formatWindow&&l.formatWindow.window.fit();null!=l.actions.outlineWindow&&l.actions.outlineWindow.window.fit();null!=l.actions.layersWindow&&l.actions.layersWindow.window.fit();null!=l.menus.tagsWindow&&l.menus.tagsWindow.window.fit();null!=l.menus.findWindow&&l.menus.findWindow.window.fit();null!=
+l.menus.findReplaceWindow&&l.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();DrawioComment=function(a,b,e,d,l,m,u){this.file=a;this.id=b;this.content=e;this.modifiedDate=d;this.createdDate=l;this.isResolved=m;this.user=u;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,e,d,l){b()};DrawioComment.prototype.editComment=function(a,b,e){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,e,d,l){this.id=a;this.email=b;this.displayName=e;this.pictureUrl=d;this.locale=l};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About \naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified. Do you want to synchronize those changes?\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\npickGDriveFile=Pick Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occured during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "\'{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#ffffff"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#2a2a2a"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,b,e){this.init(a,b,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://app.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.center=!1;GraphViewer.prototype.allowZoomIn=!1;GraphViewer.prototype.allowZoomOut=!0;GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;GraphViewer.prototype.responsive=!1;
GraphViewer.prototype.init=function(a,b,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.autoCrop=null!=this.graphConfig["auto-crop"]?this.graphConfig["auto-crop"]:this.autoCrop;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.center=null!=this.graphConfig.center?
@@ -3901,62 +3903,62 @@ b,this.xml=mxUtils.getXml(b),null!=a)){var d=mxUtils.bind(this,function(){this.g
"border-box";d.style.overflow="visible";this.graph.fit=function(){};this.graph.sizeDidChange=function(){var a=this.view.graphBounds,b=this.view.translate;d.setAttribute("viewBox",a.x+b.x-this.panDx+" "+(a.y+b.y-this.panDy)+" "+(a.width+1)+" "+(a.height+1));this.container.style.backgroundColor=d.style.backgroundColor;this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))}}this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");
this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);1==this.graphConfig["toolbar-nohide"]&&(this.editor.defaultGraphOverflow="visible");this.xmlNode=this.editor.extractGraphModel(this.xmlNode,!0);this.xmlNode!=b&&(this.xml=mxUtils.getXml(this.xmlNode),this.xmlDocument=this.xmlNode.ownerDocument);var e=this;this.graph.getImageFromBundles=
function(a){return e.getImageUrl(a)};mxClient.IS_SVG&&this.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==this.xmlNode.nodeName){var c=this.xmlNode.getElementsByTagName("diagram");if(0<c.length){if(null!=this.pageId)for(var f=0;f<c.length;f++)if(this.pageId==c[f].getAttribute("id")){this.currentPage=f;break}var g=this.graph.getGlobalVariable,e=this;this.graph.getGlobalVariable=function(a){var b=c[e.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(e.currentPage+
-1):"pagenumber"==a?e.currentPage+1:"pagecount"==a?c.length:g.apply(this,arguments)}}}this.diagrams=[];var m=null;this.selectPage=function(a){this.handlingResize||(this.currentPage=mxUtils.mod(a,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==a){this.selectPage(c);b=!0;break}return b};f=mxUtils.bind(this,function(){if(null==this.xmlNode||
-"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=m&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),m=this.xmlNode)});this.addListener("xmlNodeChanged",f);f();urlParams.page=e.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.view.scale=this.graphConfig.zoom||1,this.responsive||(this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8)}finally{this.graph.getModel().endUpdate()}this.responsive||
+1):"pagenumber"==a?e.currentPage+1:"pagecount"==a?c.length:g.apply(this,arguments)}}}this.diagrams=[];var k=null;this.selectPage=function(a){this.handlingResize||(this.currentPage=mxUtils.mod(a,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==a){this.selectPage(c);b=!0;break}return b};f=mxUtils.bind(this,function(){if(null==this.xmlNode||
+"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=k&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),k=this.xmlNode)});this.addListener("xmlNodeChanged",f);f();urlParams.page=e.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.view.scale=this.graphConfig.zoom||1,this.responsive||(this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8)}finally{this.graph.getModel().endUpdate()}this.responsive||
(this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow},this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.panningHandler.ignoreCell=!0,this.graph.panningHandler.usePopupTrigger=!1,this.graph.panningHandler.pinchEnabled=!1);this.graph.setPanning(!1);null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",this.graphConfig.title);
this.responsive||this.addSizeHandler();!this.showLayers(this.graph)||this.layersEnabled&&!this.autoCrop||this.crop();this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};e=this;this.graph.customLinkClicked=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");e.selectPageById(a.substring(b+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(a);
-return!0};var k=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return k.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var n=this.getObservableParent(a),l=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(l.disconnect(),d())}));l.observe(n,{attributes:!0})}else d()}};
+return!0};var l=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return l.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var l=this.getObservableParent(a),m=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(m.disconnect(),d())}));m.observe(l,{attributes:!0})}else d()}};
GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a};GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};
GraphViewer.prototype.setXmlNode=function(a){a=this.editor.extractGraphModel(a,!0);this.xmlDocument=a.ownerDocument;this.xml=mxUtils.getXml(a);this.xmlNode=a;this.updateGraphXml(a);this.fireEvent(new mxEventObject("xmlNodeChanged"))};GraphViewer.prototype.setFileNode=function(a){null==this.xmlNode&&(this.xmlDocument=a.ownerDocument,this.xml=mxUtils.getXml(a),this.xmlNode=a);this.setGraphXml(a)};GraphViewer.prototype.updateGraphXml=function(a){this.setGraphXml(a);this.fireEvent(new mxEventObject("graphChanged"))};
GraphViewer.prototype.setGraphXml=function(a){null!=this.graph&&(this.graph.view.translate=new mxPoint,this.graph.view.scale=1,this.graph.getModel().clear(),this.editor.setGraphXml(a),this.responsive||(this.widthIsEmpty?(this.graph.container.style.width="",this.graph.container.style.height=""):this.graph.container.style.width=this.initialWidth,this.positionGraph()),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale})};
GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow=1!=this.graphConfig["toolbar-nohide"]?"hidden":"visible";var d=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=1!=this.graphConfig["toolbar-nohide"]?b.width+2*this.graph.border>a.offsetWidth-2?"auto":"hidden":"visible";if(null!=this.toolbar&&1!=this.graphConfig["toolbar-nohide"]){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),
c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},b={left:b.left-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}else null!=
-this.toolbar&&(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px");this.treeCellFolded&&(this.treeCellFolded=!1,this.positionGraph(this.graph.view.translate),this.graph.initialViewState.translate=this.graph.view.translate.clone());e=!1}}),n=null;this.handlingResize=!1;this.fitGraph=mxUtils.bind(this,function(b){var c=a.offsetWidth;c==n||this.handlingResize||(this.handlingResize=!0,"auto"==a.style.overflow&&(a.style.overflow="hidden"),this.graph.maxFitScale=null!=b?b:this.graphConfig.zoom||
-(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,null,!0),(this.center||0==this.graphConfig.resize&&""!=a.style.height)&&this.graph.center(),this.graph.maxFitScale=null,0==this.graphConfig.resize&&""!=a.style.height||this.updateContainerHeight(a,Math.max(this.minHeight,this.graph.getGraphBounds().height+2*this.graph.border+1)),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},n=c,window.setTimeout(mxUtils.bind(this,function(){this.handlingResize=
+this.toolbar&&(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px");this.treeCellFolded&&(this.treeCellFolded=!1,this.positionGraph(this.graph.view.translate),this.graph.initialViewState.translate=this.graph.view.translate.clone());e=!1}}),l=null;this.handlingResize=!1;this.fitGraph=mxUtils.bind(this,function(b){var c=a.offsetWidth;c==l||this.handlingResize||(this.handlingResize=!0,"auto"==a.style.overflow&&(a.style.overflow="hidden"),this.graph.maxFitScale=null!=b?b:this.graphConfig.zoom||
+(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,null,!0),(this.center||0==this.graphConfig.resize&&""!=a.style.height)&&this.graph.center(),this.graph.maxFitScale=null,0==this.graphConfig.resize&&""!=a.style.height||this.updateContainerHeight(a,Math.max(this.minHeight,this.graph.getGraphBounds().height+2*this.graph.border+1)),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},l=c,window.setTimeout(mxUtils.bind(this,function(){this.handlingResize=
!1}),0))});GraphViewer.useResizeSensor&&(9>=document.documentMode?(mxEvent.addListener(window,"resize",d),this.graph.addListener("size",d)):new ResizeSensor(this.graph.container,d));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,this.minWidth,this.minHeight),this.graph.resizeContainer=!0;else if(!this.widthIsEmpty||""!=a.style.height&&this.autoFit||this.updateContainerWidth(a,b.width+2*this.graph.border),
-0==this.graphConfig.resize&&""!=a.style.height||this.updateContainerHeight(a,Math.max(this.minHeight,b.height+2*this.graph.border+1)),!this.zoomEnabled&&this.autoFit){var l=n=null,d=mxUtils.bind(this,function(){window.clearTimeout(l);this.handlingResize||(l=window.setTimeout(mxUtils.bind(this,this.fitGraph),100))});GraphViewer.useResizeSensor&&(9>=document.documentMode?mxEvent.addListener(window,"resize",d):new ResizeSensor(this.graph.container,d))}else 9>=document.documentMode||this.graph.addListener("size",
-d);var t=mxUtils.bind(this,function(d){var c=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");var e=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=a.style.height&&this.autoFit?a.offsetHeight:void 0;0<a.offsetWidth&&null==d&&this.allowZoomOut&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>e)?(d=null,null!=e&&b.height+2*this.graph.border>e-2&&(d=(e-2*this.graph.border-2)/b.height),this.fitGraph(d)):this.widthIsEmpty||
-null!=d||0!=this.graphConfig.resize||""==a.style.height?(d=null!=d?d:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-b.x/this.graph.view.scale)+d.x,Math.floor(this.graph.border-b.y/this.graph.view.scale)+d.y),n=a.offsetWidth):this.graph.center((!this.widthIsEmpty||b.width<this.minWidth)&&1!=this.graphConfig.resize);a.style.minWidth=c});8==document.documentMode?window.setTimeout(t,0):t();this.positionGraph=function(a){b=this.graph.getGraphBounds();n=null;t(a)}};
+0==this.graphConfig.resize&&""!=a.style.height||this.updateContainerHeight(a,Math.max(this.minHeight,b.height+2*this.graph.border+1)),!this.zoomEnabled&&this.autoFit){var m=l=null,d=mxUtils.bind(this,function(){window.clearTimeout(m);this.handlingResize||(m=window.setTimeout(mxUtils.bind(this,this.fitGraph),100))});GraphViewer.useResizeSensor&&(9>=document.documentMode?mxEvent.addListener(window,"resize",d):new ResizeSensor(this.graph.container,d))}else 9>=document.documentMode||this.graph.addListener("size",
+d);var u=mxUtils.bind(this,function(d){var c=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");var e=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=a.style.height&&this.autoFit?a.offsetHeight:void 0;0<a.offsetWidth&&null==d&&this.allowZoomOut&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>e)?(d=null,null!=e&&b.height+2*this.graph.border>e-2&&(d=(e-2*this.graph.border-2)/b.height),this.fitGraph(d)):this.widthIsEmpty||
+null!=d||0!=this.graphConfig.resize||""==a.style.height?(d=null!=d?d:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-b.x/this.graph.view.scale)+d.x,Math.floor(this.graph.border-b.y/this.graph.view.scale)+d.y),l=a.offsetWidth):this.graph.center((!this.widthIsEmpty||b.width<this.minWidth)&&1!=this.graphConfig.resize);a.style.minWidth=c});8==document.documentMode?window.setTimeout(u,0):u();this.positionGraph=function(a){b=this.graph.getGraphBounds();l=null;u(a)}};
GraphViewer.prototype.crop=function(){var a=this.graph,b=a.getGraphBounds(),e=a.border,d=a.view.scale;a.view.setTranslate(null!=b.x?Math.floor(a.view.translate.x-b.x/d+e):e,null!=b.y?Math.floor(a.view.translate.y-b.y/d+e):e)};GraphViewer.prototype.updateContainerWidth=function(a,b){a.style.width=b+"px"};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||8==document.documentMode)a.style.height=b+"px"};
-GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],d=this.graphConfig.layerIds,n=null!=d&&0<d.length,l=!1;if(0<e.length||n||null!=b){var l=null!=b?b.getModel():null,t=a.getModel();t.beginUpdate();try{for(var q=t.getChildCount(t.root),c=0;c<q;c++)t.setVisible(t.getChildAt(t.root,c),null!=b?l.isVisible(l.getChildAt(l.root,c)):!1);if(null==l)if(n)for(c=0;c<d.length;c++)t.setVisible(t.getCell(d[c]),!0);else for(c=0;c<e.length;c++)t.setVisible(t.getChildAt(t.root,
-parseInt(e[c])),!0)}finally{t.endUpdate()}l=!0}return l};
+GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],d=this.graphConfig.layerIds,l=null!=d&&0<d.length,m=!1;if(0<e.length||l||null!=b){var m=null!=b?b.getModel():null,u=a.getModel();u.beginUpdate();try{for(var q=u.getChildCount(u.root),c=0;c<q;c++)u.setVisible(u.getChildAt(u.root,c),null!=b?m.isVisible(m.getChildAt(m.root,c)):!1);if(null==m)if(l)for(c=0;c<d.length;c++)u.setVisible(u.getCell(d[c]),!0);else for(c=0;c<e.length;c++)u.setVisible(u.getChildAt(u.root,
+parseInt(e[c])),!0)}finally{u.endUpdate()}m=!0}return m};
GraphViewer.prototype.addToolbar=function(){function a(a,b,c,d){var f=document.createElement("div");f.style.borderRight="1px solid #d0d0d0";f.style.padding="3px 6px 3px 6px";mxEvent.addListener(f,"click",a);null!=c&&f.setAttribute("title",c);f.style.display="inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==d||d?(mxEvent.addListener(f,"mouseenter",function(){f.style.backgroundColor="#ddd"}),mxEvent.addListener(f,"mouseleave",function(){f.style.backgroundColor=
"#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);e.appendChild(f);g++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";e.style.whiteSpace="nowrap";e.style.textAlign=
-"left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var d=null,n=null,l=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,0);d=
-null;n=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";n=null}),100)}),a||200)}),t=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(t(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":"mousemove",
-function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){t(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){t(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||t(30)}));var q=this.graph,c=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=q.container.scrollLeft;
-this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<c&&Math.abs(this.scrollTop-q.container.scrollTop)<c&&Math.abs(this.startX-b.getGraphX())<c&&Math.abs(this.startY-b.getGraphY())<c&&(0<parseFloat(e.style.opacity||0)?l():t(30))}})}for(var f=this.toolbarItems,g=0,m=null,k=null,p=0;p<f.length;p++){var u=f[p];if("pages"==u){k=b.ownerDocument.createElement("div");k.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";
-mxUtils.setOpacity(k,70);var A=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");A.style.borderRightStyle="none";A.style.paddingLeft="0px";A.style.paddingRight="0px";e.appendChild(k);var F=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");F.style.paddingLeft="0px";F.style.paddingRight="0px";u=mxUtils.bind(this,function(){k.innerHTML=
-"";mxUtils.write(k,this.currentPage+1+" / "+this.diagrams.length);k.style.display=1<this.diagrams.length?"inline-block":"none";A.style.display=k.style.display;F.style.display=k.style.display});this.addListener("graphChanged",u);u()}else if("zoom"==u)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,
-function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==u){if(this.layersEnabled){var z=this.graph.getModel(),y=a(mxUtils.bind(this,function(a){if(null!=m)m.parentNode.removeChild(m),m=null;else{m=this.graph.createLayersDialog(mxUtils.bind(this,function(){this.autoCrop&&this.crop()}));mxEvent.addListener(m,"mouseleave",function(){m.parentNode.removeChild(m);
-m=null});a=y.getBoundingClientRect();m.style.width="140px";m.style.padding="2px 0px 2px 0px";m.style.border="1px solid #d0d0d0";m.style.backgroundColor="#eee";m.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";m.style.fontSize="11px";m.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(m,80);var b=mxUtils.getDocumentScrollOrigin(document);m.style.left=b.x+a.left+"px";m.style.top=b.y+a.bottom+"px";document.body.appendChild(m)}}),Editor.layersImage,mxResources.get("layers")||"Layers");
-z.addListener(mxEvent.CHANGE,function(){y.style.display=1<z.getChildCount(z.root)?"inline-block":"none"});y.style.display=1<z.getChildCount(z.root)?"inline-block":"none"}}else"lightbox"==u?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(u=this.graphConfig["toolbar-buttons"][u],null!=u&&a(null==u.enabled||u.enabled?u.handler:function(){},u.image,u.title,u.enabled))}null!=this.graph.minimumContainerSize&&
-(this.graph.minimumContainerSize.width=34*g);null!=this.graphConfig.title&&(f=b.ownerDocument.createElement("div"),f.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",f.setAttribute("title",this.graphConfig.title),mxUtils.write(f,this.graphConfig.title),mxUtils.setOpacity(f,70),e.appendChild(f),this.filename=f);this.minToolbarWidth=34*g;var M=b.style.border,L=mxUtils.bind(this,function(){e.style.width=
+"left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var d=null,l=null,m=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=l&&(window.clearTimeout(l),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,0);d=
+null;l=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";l=null}),100)}),a||200)}),u=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=l&&(window.clearTimeout(l),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(u(30),m())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":"mousemove",
+function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){u(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){u(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||u(30)}));var q=this.graph,c=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=q.container.scrollLeft;
+this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<c&&Math.abs(this.scrollTop-q.container.scrollTop)<c&&Math.abs(this.startX-b.getGraphX())<c&&Math.abs(this.startY-b.getGraphY())<c&&(0<parseFloat(e.style.opacity||0)?m():u(30))}})}for(var f=this.toolbarItems,g=0,k=null,p=null,t=0;t<f.length;t++){var v=f[t];if("pages"==v){p=b.ownerDocument.createElement("div");p.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";
+mxUtils.setOpacity(p,70);var A=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");A.style.borderRightStyle="none";A.style.paddingLeft="0px";A.style.paddingRight="0px";e.appendChild(p);var F=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");F.style.paddingLeft="0px";F.style.paddingRight="0px";v=mxUtils.bind(this,function(){p.innerHTML=
+"";mxUtils.write(p,this.currentPage+1+" / "+this.diagrams.length);p.style.display=1<this.diagrams.length?"inline-block":"none";A.style.display=p.style.display;F.style.display=p.style.display});this.addListener("graphChanged",v);v()}else if("zoom"==v)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,
+function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==v){if(this.layersEnabled){var y=this.graph.getModel(),z=a(mxUtils.bind(this,function(a){if(null!=k)k.parentNode.removeChild(k),k=null;else{k=this.graph.createLayersDialog(mxUtils.bind(this,function(){this.autoCrop&&this.crop()}));mxEvent.addListener(k,"mouseleave",function(){k.parentNode.removeChild(k);
+k=null});a=z.getBoundingClientRect();k.style.width="140px";k.style.padding="2px 0px 2px 0px";k.style.border="1px solid #d0d0d0";k.style.backgroundColor="#eee";k.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";k.style.fontSize="11px";k.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(k,80);var b=mxUtils.getDocumentScrollOrigin(document);k.style.left=b.x+a.left+"px";k.style.top=b.y+a.bottom+"px";document.body.appendChild(k)}}),Editor.layersImage,mxResources.get("layers")||"Layers");
+y.addListener(mxEvent.CHANGE,function(){z.style.display=1<y.getChildCount(y.root)?"inline-block":"none"});z.style.display=1<y.getChildCount(y.root)?"inline-block":"none"}}else"lightbox"==v?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(v=this.graphConfig["toolbar-buttons"][v],null!=v&&a(null==v.enabled||v.enabled?v.handler:function(){},v.image,v.title,v.enabled))}null!=this.graph.minimumContainerSize&&
+(this.graph.minimumContainerSize.width=34*g);null!=this.graphConfig.title&&(f=b.ownerDocument.createElement("div"),f.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",f.setAttribute("title",this.graphConfig.title),mxUtils.write(f,this.graphConfig.title),mxUtils.setOpacity(f,70),e.appendChild(f),this.filename=f);this.minToolbarWidth=34*g;var L=b.style.border,M=mxUtils.bind(this,function(){e.style.width=
"inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";"bottom"==this.graphConfig["toolbar-position"]?
-e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==M&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=m&&(m.parentNode.removeChild(m),m=null);b.style.border=M});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==
-b||a==e||a==m)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})}else e.style.top=-this.toolbarHeight+"px",b.appendChild(e)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(b,"mouseenter",L):L();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&L()})).observe(b)};
-GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,d){if(null==d)for(var n=mxEvent.getSource(e);n!=a.container&&null!=n&&null==d;)"a"==n.nodeName.toLowerCase()&&(d=n.getAttribute("href")),n=n.parentNode;null!=b?null==d||a.isCustomLink(d)?mxEvent.consume(e):a.isExternalProtocol(d)||a.isBlankLink(d)||window.setTimeout(function(){b.destroy()},0):null!=d&&null==b&&a.isCustomLink(d)&&
+e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==L&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=k&&(k.parentNode.removeChild(k),k=null);b.style.border=L});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==
+b||a==e||a==k)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})}else e.style.top=-this.toolbarHeight+"px",b.appendChild(e)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(b,"mouseenter",M):M();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&M()})).observe(b)};
+GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,d){if(null==d)for(var l=mxEvent.getSource(e);l!=a.container&&null!=l&&null==d;)"a"==l.nodeName.toLowerCase()&&(d=l.getAttribute("href")),l=l.parentNode;null!=b?null==d||a.isCustomLink(d)?mxEvent.consume(e):a.isExternalProtocol(d)||a.isBlankLink(d)||window.setTimeout(function(){b.destroy()},0):null!=d&&null==b&&a.isCustomLink(d)&&
(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(d)&&(mxUtils.clearSelection(),mxEvent.consume(e))}),mxUtils.bind(this,function(a){null!=b||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))};
GraphViewer.prototype.showLightbox=function(a,b,e){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){a=null!=a?a:null!=this.graphConfig.editable?this.graphConfig.editable:!0;e={client:1,target:null!=e?e:"blank"};a&&(e.edit=this.graphConfig.edit||"_blank");if(null!=b?b:1)e.close=1;this.layersEnabled&&(e.layers=1);null!=this.graphConfig&&0!=this.graphConfig.nav&&(e.nav=1);null!=this.graphConfig&&null!=this.graphConfig.highlight&&
(e.highlight=this.graphConfig.highlight.substring(1));null!=this.currentPage&&0<this.currentPage&&(e.page=this.currentPage);"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?null==this.lightboxWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(a){"ready"==a.data&&a.source==this.lightboxWindow&&this.lightboxWindow.postMessage(this.xml,"*")})):e.data=encodeURIComponent(this.xml);"1"==urlParams.dev&&(e.dev="1");this.lightboxWindow=
window.open(("1"!=urlParams.dev?EditorUi.lightboxHost:"https://test.draw.io")+"/#P"+encodeURIComponent(JSON.stringify(e)))}else this.lightboxWindow.focus();else this.showLocalLightbox()};
GraphViewer.prototype.showLocalLightbox=function(){mxUtils.getDocumentScrollOrigin(document);var a=document.createElement("div");a.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";a.style.zIndex=this.lightboxZIndex;a.style.backgroundColor="#000000";mxUtils.setOpacity(a,70);document.body.appendChild(a);var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Editor.closeImage);b.style.cssText="position:fixed;top:32px;right:32px;";b.style.cursor="pointer";mxEvent.addListener(b,
"click",function(){d.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams["page-id"]=this.graphConfig.pageId;urlParams["layer-ids"]=null!=this.graphConfig.layerIds&&0<this.graphConfig.layerIds.length?this.graphConfig.layerIds.join(" "):null;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode||10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;
-EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};var e=Graph.prototype.shadowId;Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);d.editor.editBlankUrl=this.editBlankUrl;d.editor.graph.shadowId="lightboxDropShadow";Graph.prototype.shadowId=e;d.refresh=function(){};var n=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),
-l=d.destroy;d.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",n);document.body.removeChild(a);document.body.removeChild(b);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var t=d.editor.graph,q=t.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",n)):(a.style.display="none",b.style.display="none");var c=this;
-t.getImageFromBundles=function(a){return c.getImageUrl(a)};var f=d.createTemporaryGraph;d.createTemporaryGraph=function(){var a=f.apply(this,arguments);a.getImageFromBundles=function(a){return c.getImageUrl(a)};return a};this.graphConfig.move&&(t.isMoveCellsEvent=function(a){return!0});mxUtils.setPrefixedStyle(q.style,"border-radius","4px");q.style.position="fixed";GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow="hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,
-"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(t,d);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;b.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(b);d.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom="60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;
-document.body.appendChild(d.chromelessToolbar);d.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});d.lightboxFit();d.chromelessResize();this.showLayers(t,this.graph);mxEvent.addListener(a,"click",function(){d.destroy()})}),0);return d};
+EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};var e=Graph.prototype.shadowId;Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);d.editor.editBlankUrl=this.editBlankUrl;d.editor.graph.shadowId="lightboxDropShadow";Graph.prototype.shadowId=e;d.refresh=function(){};var l=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),
+m=d.destroy;d.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",l);document.body.removeChild(a);document.body.removeChild(b);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;m.apply(this,arguments)};var u=d.editor.graph,q=u.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",l)):(a.style.display="none",b.style.display="none");var c=this;
+u.getImageFromBundles=function(a){return c.getImageUrl(a)};var f=d.createTemporaryGraph;d.createTemporaryGraph=function(){var a=f.apply(this,arguments);a.getImageFromBundles=function(a){return c.getImageUrl(a)};return a};this.graphConfig.move&&(u.isMoveCellsEvent=function(a){return!0});mxUtils.setPrefixedStyle(q.style,"border-radius","4px");q.style.position="fixed";GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow="hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,
+"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(u,d);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;b.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(b);d.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom="60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;
+document.body.appendChild(d.chromelessToolbar);d.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});d.lightboxFit();d.chromelessResize();this.showLayers(u,this.graph);mxEvent.addListener(a,"click",function(){d.destroy()})}),0);return d};
GraphViewer.prototype.updateTitle=function(a){a=a||"";this.showTitleAsTooltip&&null!=this.graph&&null!=this.graph.container&&this.graph.container.setAttribute("title",a);null!=this.filename&&(this.filename.innerHTML="",mxUtils.write(this.filename,a),this.filename.setAttribute("title",a))};
GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){a.innerHTML=e.message,null!=window.console&&console.error(e)}})};
-GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var b=document.getElementsByClassName(a);a=[];for(var e=0;e<b.length;e++)a.push(b[e]);return a}for(var d=document.getElementsByTagName("*"),b=[],e=0;e<d.length;e++){var n=d[e].className;null!=n&&0<n.length&&(n=n.split(" "),0<=mxUtils.indexOf(n,a)&&b.push(d[e]))}return b};
-GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var d=JSON.parse(e),n=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,d);null!=b&&b(e)};null!=d.url?GraphViewer.getUrl(d.url,function(a){n(a)}):n(d.xml)}};
+GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var b=document.getElementsByClassName(a);a=[];for(var e=0;e<b.length;e++)a.push(b[e]);return a}for(var d=document.getElementsByTagName("*"),b=[],e=0;e<d.length;e++){var l=d[e].className;null!=l&&0<l.length&&(l=l.split(" "),0<=mxUtils.indexOf(l,a)&&b.push(d[e]))}return b};
+GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var d=JSON.parse(e),l=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,d);null!=b&&b(e)};null!=d.url?GraphViewer.getUrl(d.url,function(a){l(a)}):l(d.xml)}};
GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type="text/css";a.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(a)}catch(b){}};
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,e){if(null!=GraphViewer.cachedUrls[a])b(GraphViewer.cachedUrls[a]);else{var d=null!=navigator.userAgent&&0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;d.open("GET",a);d.onload=function(){b(null!=d.getText?d.getText():d.responseText)};d.onerror=e;d.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
-(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,d){function n(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function l(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function t(b,c){if(!b.resizedAttached)b.resizedAttached=
-new n,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
-b.appendChild(b.resizeSensor);"static"==l(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var k=!1,m=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(m))};a(m);var q,t,I,G,K=function(){if((I=b.offsetWidth)!=q||(G=b.offsetHeight)!=t)k=!0,q=I,t=G;g()},E=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};E(d,"scroll",K);E(f,"scroll",K)}var q=function(){GraphViewer.resizeSensorEnabled&&d()},c=Object.prototype.toString.call(e),f="[object Array]"===c||"[object NodeList]"===c||"[object HTMLCollection]"===c||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(f)for(var c=0,g=e.length;c<g;c++)t(e[c],q);else t(e,q);this.detach=function(){if(f)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
+(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,d){function l(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function m(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function u(b,c){if(!b.resizedAttached)b.resizedAttached=
+new l,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
+b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var k=!1,p=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(p))};a(p);var q,u,G,J,H=function(){if((G=b.offsetWidth)!=q||(J=b.offsetHeight)!=u)k=!0,q=G,u=J;g()},D=function(a,b,c){a.attachEvent?
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};D(d,"scroll",H);D(f,"scroll",H)}var q=function(){GraphViewer.resizeSensorEnabled&&d()},c=Object.prototype.toString.call(e),f="[object Array]"===c||"[object NodeList]"===c||"[object HTMLCollection]"===c||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(f)for(var c=0,g=e.length;c<g;c++)u(e[c],q);else u(e,q);this.detach=function(){if(f)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();
function mxBpmnShape(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxBpmnShape,mxShape);
mxBpmnShape.prototype.customProperties=[{name:"symbol",dispName:"Event",type:"enum",defVal:"general",enumList:[{val:"general",dispName:"General"},{val:"message",dispName:"Message"},{val:"timer",dispName:"Timer"},{val:"escalation",dispName:"Escalation"},{val:"conditional",dispName:"Conditional"},{val:"link",dispName:"Link"},{val:"error",dispName:"Error"},{val:"cancel",dispName:"Cancel"},{val:"compensation",dispName:"Compensation"},{val:"signal",dispName:"Signal"},{val:"multiple",dispName:"Multiple"},
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 8d4e3384..8bfeae0a 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -193,9 +193,10 @@ var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456
"");l<a.length;)d=this._keyStr.indexOf(a.charAt(l++)),e=this._keyStr.indexOf(a.charAt(l++)),g=this._keyStr.indexOf(a.charAt(l++)),k=this._keyStr.indexOf(a.charAt(l++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|k,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=k&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):(127<d&&2048>d?b+=
String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){var b="",c=0,d;for(c1=c2=0;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.mxLoadSettings=window.mxLoadSettings||"1"!=urlParams.configure;window.isSvgBrowser=!0;window.DRAWIO_BASE_URL=window.DRAWIO_BASE_URL||(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)?window.location.protocol+"//"+window.location.hostname:"https://app.diagrams.net");window.DRAWIO_LIGHTBOX_URL=window.DRAWIO_LIGHTBOX_URL||"https://viewer.diagrams.net";
window.EXPORT_URL=window.EXPORT_URL||"https://convert.diagrams.net/node/export";window.PLANT_URL=window.PLANT_URL||"https://plant-aws.diagrams.net";window.DRAW_MATH_URL=window.DRAW_MATH_URL||window.DRAWIO_BASE_URL+"/math";window.VSD_CONVERT_URL=window.VSD_CONVERT_URL||"https://convert.diagrams.net/VsdConverter/api/converter";window.EMF_CONVERT_URL=window.EMF_CONVERT_URL||"https://convert.diagrams.net/emf2png/convertEMF";window.REALTIME_URL=window.REALTIME_URL||"cache";
-window.DRAWIO_GITLAB_URL=window.DRAWIO_GITLAB_URL||"https://gitlab.com";window.DRAWIO_GITLAB_ID=window.DRAWIO_GITLAB_ID||"c9b9d3fcdce2dec7abe3ab21ad8123d89ac272abb7d0883f08923043e80f3e36";window.DRAWIO_GITHUB_URL=window.DRAWIO_GITHUB_URL||"https://github.com";window.DRAWIO_GITHUB_API_URL=window.DRAWIO_GITHUB_API_URL||"https://api.github.com";window.DRAWIO_GITHUB_ID=window.DRAWIO_GITHUB_ID||"4f88e2ec436d76c2ee6e";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"import";
-window.PROXY_URL=window.PROXY_URL||"proxy";window.DRAWIO_VIEWER_URL=window.DRAWIO_VIEWER_URL||null;window.NOTIFICATIONS_URL=window.NOTIFICATIONS_URL||"https://www.draw.io/notifications";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||((null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev)&&"file:"!=window.location.protocol?"iconSearch":window.DRAWIO_BASE_URL+"/iconSearch");
-window.TEMPLATE_PATH=window.TEMPLATE_PATH||"templates";window.NEW_DIAGRAM_CATS_PATH=window.NEW_DIAGRAM_CATS_PATH||"newDiagramCats";window.PLUGINS_BASE_PATH=window.PLUGINS_BASE_PATH||"";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_CONFIG=window.DRAWIO_CONFIG||null;window.mxLoadResources=window.mxLoadResources||!1;
+window.DRAWIO_GITLAB_URL=window.DRAWIO_GITLAB_URL||"https://gitlab.com";window.DRAWIO_GITLAB_ID=window.DRAWIO_GITLAB_ID||"c9b9d3fcdce2dec7abe3ab21ad8123d89ac272abb7d0883f08923043e80f3e36";window.DRAWIO_GITHUB_URL=window.DRAWIO_GITHUB_URL||"https://github.com";window.DRAWIO_GITHUB_API_URL=window.DRAWIO_GITHUB_API_URL||"https://api.github.com";window.DRAWIO_GITHUB_ID=window.DRAWIO_GITHUB_ID||"4f88e2ec436d76c2ee6e";window.DRAWIO_DROPBOX_ID=window.DRAWIO_DROPBOX_ID||"libwls2fa9szdji";
+window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"import";window.PROXY_URL=window.PROXY_URL||"proxy";window.DRAWIO_VIEWER_URL=window.DRAWIO_VIEWER_URL||null;window.NOTIFICATIONS_URL=window.NOTIFICATIONS_URL||"https://www.draw.io/notifications";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";
+window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||((null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev)&&"file:"!=window.location.protocol?"iconSearch":window.DRAWIO_BASE_URL+"/iconSearch");window.TEMPLATE_PATH=window.TEMPLATE_PATH||"templates";window.NEW_DIAGRAM_CATS_PATH=window.NEW_DIAGRAM_CATS_PATH||"newDiagramCats";window.PLUGINS_BASE_PATH=window.PLUGINS_BASE_PATH||"";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";
+window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_CONFIG=window.DRAWIO_CONFIG||null;window.mxLoadResources=window.mxLoadResources||!1;
window.mxLanguage=window.mxLanguage||function(){var a=urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).language||null);if(!a&&window.mxIsElectron&&(a=require("electron").remote.app.getLocale(),null!=a)){var c=a.indexOf("-");0<=c&&(a=a.substring(0,c));a=a.toLowerCase()}}catch(d){isLocalStorage=!1}return a}();
window.mxLanguageMap=window.mxLanguageMap||{i18n:"",id:"Bahasa Indonesia",ms:"Bahasa Melayu",bs:"Bosanski",bg:"Bulgarian",ca:"Català",cs:"Čeština",da:"Dansk",de:"Deutsch",et:"Eesti",en:"English",es:"Español",eu:"Euskara",fil:"Filipino",fr:"Français",gl:"Galego",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski","pt-br":"Português (Brasil)",pt:"Português (Portugal)",ro:"Română",fi:"Suomi",sv:"Svenska",vi:"Tiếng Việt",tr:"Türkçe",el:"Ελληνικά",ru:"Русский",sr:"Српски",uk:"Українська",
he:"עברית",ar:"العربية",fa:"فارسی",th:"ไทย",ko:"한국어",ja:"日本語",zh:"简体中文","zh-tw":"繁體中文"};"undefined"===typeof window.mxBasePath&&(window.mxBasePath="mxgraph",window.mxImageBasePath="mxgraph/images");if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap)"en"!=lang&&window.mxLanguages.push(lang)}window.location.hostname==DRAWIO_LIGHTBOX_URL.substring(DRAWIO_LIGHTBOX_URL.indexOf("//")+2)&&(urlParams.lightbox="1");"1"==urlParams.lightbox&&(urlParams.chrome="0");
@@ -204,7 +205,7 @@ function setCurrentXml(a,b){null!=window.parent&&null!=window.parent.openFile&&w
(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);0==b&&(urlParams.splash="0")}catch(d){}a=urlParams["export"];null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),EXPORT_URL=a);a=urlParams.gitlab;null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];
null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=window.location.host;if("test.draw.io"!=a){var c="diagrams.net",b=a.length-c.length,c=a.lastIndexOf(c,b);-1!==c&&c===b?window.DRAWIO_LOG_URL="https://log.diagrams.net":(c="draw.io",b=a.length-c.length,c=a.lastIndexOf(c,b),-1!==c&&c===b&&(window.DRAWIO_LOG_URL="https://log.draw.io"))}})();
if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";"trello"==urlParams.mode&&(urlParams.tr="1");"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.8",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"14.6.9",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -2005,7 +2006,7 @@ d);this.exportColor(e)};this.fromRGB=function(a,b,c,d){0>a&&(a=0);1<a&&(a=1);0>b
function(a,b){var c=a.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);return c?(6===c[1].length?this.fromRGB(parseInt(c[1].substr(0,2),16)/255,parseInt(c[1].substr(2,2),16)/255,parseInt(c[1].substr(4,2),16)/255,b):this.fromRGB(parseInt(c[1].charAt(0)+c[1].charAt(0),16)/255,parseInt(c[1].charAt(1)+c[1].charAt(1),16)/255,parseInt(c[1].charAt(2)+c[1].charAt(2),16)/255,b),!0):!1};this.toString=function(){return(256|Math.round(255*this.rgb[0])).toString(16).substr(1)+(256|Math.round(255*this.rgb[1])).toString(16).substr(1)+
(256|Math.round(255*this.rgb[2])).toString(16).substr(1)};var r=this,t="hvs"===this.pickerMode.toLowerCase()?1:0,u=mxJSColor.fetchElement(this.valueElement),x=mxJSColor.fetchElement(this.styleElement),y=!1,B=!1,A=1,z=2,C=4,v=8;u&&(q=function(){r.fromString(u.value,A);p()},mxJSColor.addEvent(u,"keyup",q),mxJSColor.addEvent(u,"input",q),mxJSColor.addEvent(u,"blur",l),u.setAttribute("autocomplete","off"));x&&(x.jscStyle={backgroundImage:x.style.backgroundImage,backgroundColor:x.style.backgroundColor,
color:x.style.color});switch(t){case 0:mxJSColor.requireImage("hs.png");break;case 1:mxJSColor.requireImage("hv.png")}this.importColor()}};mxJSColor.install();
-Editor=function(a,b,e,d,n){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,e);this.editable=null!=n?n:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=
+Editor=function(a,b,e,d,l){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,e);this.editable=null!=l?l:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=
function(){return this.status};this.graphChangeListener=function(a,b){var d=null!=b?b.getProperty("edit"):null;null!=d&&d.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0;
(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(b){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS;
Editor.moveImage=mxClient.IS_SVG?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI4cHgiIGhlaWdodD0iMjhweCI+PGc+PC9nPjxnPjxnPjxnPjxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIuNCwyLjQpc2NhbGUoMC44KXJvdGF0ZSg0NSwxMiwxMikiIHN0cm9rZT0iIzI5YjZmMiIgZmlsbD0iIzI5YjZmMiIgZD0iTTE1LDNsMi4zLDIuM2wtMi44OSwyLjg3bDEuNDIsMS40MkwxOC43LDYuN0wyMSw5VjNIMTV6IE0zLDlsMi4zLTIuM2wyLjg3LDIuODlsMS40Mi0xLjQyTDYuNyw1LjNMOSwzSDNWOXogTTksMjEgbC0yLjMtMi4zbDIuODktMi44N2wtMS40Mi0xLjQyTDUuMywxNy4zTDMsMTV2Nkg5eiBNMjEsMTVsLTIuMywyLjNsLTIuODctMi44OWwtMS40MiwxLjQybDIuODksMi44N0wxNSwyMWg2VjE1eiIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=":IMAGE_PATH+
@@ -2033,7 +2034,7 @@ Editor.roughFillStyles=[{val:"auto",dispName:"Auto"},{val:"hachure",dispName:"Ha
Editor.enableNativeCipboard=window==window.top&&!mxClient.IS_FF&&null!=navigator.clipboard;Editor.darkMode=!1;Editor.isDarkMode=function(a){return Editor.darkMode||"dark"==uiTheme};Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;mxUtils.extend(Editor,mxEventSource);Editor.prototype.originalNoForeignObject=mxClient.NO_FO;
Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0;Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;
Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.defaultGraphOverflow="hidden";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(a){this.autosave=a;this.fireEvent(new mxEventObject("autosaveChanged"))};Editor.prototype.getEditBlankUrl=function(a){return this.editBlankUrl+a};
-Editor.prototype.editAsNew=function(a,b){var e=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);if("undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)){var d=null,n=mxUtils.bind(this,function(b){"ready"==b.data&&b.source==d&&(mxEvent.removeListener(window,"message",n),d.postMessage(a,"*"))});mxEvent.addListener(window,"message",n);d=this.graph.openLink(this.getEditBlankUrl(e+(0<e.length?"&":"?")+
+Editor.prototype.editAsNew=function(a,b){var e=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);if("undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)){var d=null,l=mxUtils.bind(this,function(b){"ready"==b.data&&b.source==d&&(mxEvent.removeListener(window,"message",l),d.postMessage(a,"*"))});mxEvent.addListener(window,"message",l);d=this.graph.openLink(this.getEditBlankUrl(e+(0<e.length?"&":"?")+
"client=1"),null,!0)}else this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a))};Editor.prototype.createGraph=function(a,b){var e=new Graph(null,b,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e};
Editor.prototype.resetGraph=function(){this.graph.gridEnabled=this.graph.defaultGridEnabled&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.graphHandler.guidesEnabled=!0;this.graph.setTooltips(!0);this.graph.setConnectable(!0);this.graph.foldingEnabled=!0;this.graph.scrollbars=this.graph.defaultScrollbars;this.graph.pageVisible=this.graph.defaultPageVisible;this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;this.graph.background=
null;this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.pageFormat=mxGraph.prototype.pageFormat;this.graph.currentScale=1;this.graph.currentTranslate.x=0;this.graph.currentTranslate.y=0;this.updateGraphComponents();this.graph.view.setScale(1)};
@@ -2046,14 +2047,14 @@ Editor.prototype.getGraphXml=function(a){a=(null!=a?a:1)?(new mxCodec(mxUtils.cr
this.graph.gridSize);a.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0");a.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0");a.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0");a.setAttribute("arrows",this.graph.connectionArrowsEnabled?"1":"0");a.setAttribute("fold",this.graph.foldingEnabled?"1":"0");a.setAttribute("page",this.graph.pageVisible?"1":"0");a.setAttribute("pageScale",this.graph.pageScale);a.setAttribute("pageWidth",this.graph.pageFormat.width);
a.setAttribute("pageHeight",this.graph.pageFormat.height);null!=this.graph.background&&a.setAttribute("background",this.graph.background);return a};Editor.prototype.updateGraphComponents=function(){var a=this.graph;null!=a.container&&(a.view.validateBackground(),a.container.style.overflow=a.scrollbars?"auto":this.defaultGraphOverflow,this.fireEvent(new mxEventObject("updateGraphComponents")))};Editor.prototype.setModified=function(a){this.modified=a};
Editor.prototype.setFilename=function(a){this.filename=a};
-Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,e){var d=a.getSelectionCellsForChanges(e.getProperty("edit").changes,function(a){return!(a instanceof mxChildChange)});if(0<d.length){a.getModel();for(var n=[],q=0;q<
-d.length;q++)null!=a.view.getState(d[q])&&n.push(d[q]);a.setSelectionCells(n)}};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};
+Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,e){var d=a.getSelectionCellsForChanges(e.getProperty("edit").changes,function(a){return!(a instanceof mxChildChange)});if(0<d.length){a.getModel();for(var l=[],q=0;q<
+d.length;q++)null!=a.view.getState(d[q])&&l.push(d[q]);a.setSelectionCells(l)}};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};
OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)};
-function Dialog(a,b,e,d,n,l,t,q,c,f,g){var m=e,k=d,p=mxUtils.getDocumentSize();null!=window.innerHeight&&(p.height=window.innerHeight);var u=p.height,A=Math.max(1,Math.round((p.width-e-64)/2)),F=Math.max(1,Math.round((u-d-a.footerHeight)/3));b.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-64):e;d=Math.min(d,u-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=
-Dialog.backdropColor,this.bg.style.height=u+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));p=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=p.x+"px";this.bg.style.top=p.y+"px";A+=p.x;F+=p.y;n&&document.body.appendChild(this.bg);var z=a.createDiv(c?"geTransDialog":"geDialog");n=this.getPosition(A,F,e,d);A=n.x;F=n.y;z.style.width=e+"px";z.style.height=d+"px";z.style.left=A+"px";z.style.top=F+"px";z.style.zIndex=this.zIndex;
-z.appendChild(b);document.body.appendChild(z);!q&&b.clientHeight>z.clientHeight-64&&(b.style.overflowY="auto");if(l&&(l=document.createElement("img"),l.setAttribute("src",Dialog.prototype.closeImage),l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=F+14+"px",l.style.left=A+e+38-0+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,!g)){var y=!1;mxEvent.addGestureListeners(this.bg,
-mxUtils.bind(this,function(a){y=!0}),null,mxUtils.bind(this,function(c){y&&(a.hideDialog(!0),y=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=f){var c=f();null!=c&&(m=e=c.w,k=d=c.h)}c=mxUtils.getDocumentSize();u=c.height;this.bg.style.height=u+"px";A=Math.max(1,Math.round((c.width-e-64)/2));F=Math.max(1,Math.round((u-d-a.footerHeight)/3));e=null!=document.body?Math.min(m,document.body.scrollWidth-64):m;d=Math.min(k,u-64);c=this.getPosition(A,F,e,d);A=c.x;F=c.y;z.style.left=A+"px";
-z.style.top=F+"px";z.style.width=e+"px";z.style.height=d+"px";!q&&b.clientHeight>z.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=F+14+"px",this.dialogImg.style.left=A+e+38-0+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=z;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
+function Dialog(a,b,e,d,l,m,u,q,c,f,g){var k=e,p=d,t=mxUtils.getDocumentSize();null!=window.innerHeight&&(t.height=window.innerHeight);var v=t.height,A=Math.max(1,Math.round((t.width-e-64)/2)),F=Math.max(1,Math.round((v-d-a.footerHeight)/3));b.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-64):e;d=Math.min(d,v-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=
+Dialog.backdropColor,this.bg.style.height=v+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));t=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=t.x+"px";this.bg.style.top=t.y+"px";A+=t.x;F+=t.y;l&&document.body.appendChild(this.bg);var y=a.createDiv(c?"geTransDialog":"geDialog");l=this.getPosition(A,F,e,d);A=l.x;F=l.y;y.style.width=e+"px";y.style.height=d+"px";y.style.left=A+"px";y.style.top=F+"px";y.style.zIndex=this.zIndex;
+y.appendChild(b);document.body.appendChild(y);!q&&b.clientHeight>y.clientHeight-64&&(b.style.overflowY="auto");if(m&&(m=document.createElement("img"),m.setAttribute("src",Dialog.prototype.closeImage),m.setAttribute("title",mxResources.get("close")),m.className="geDialogClose",m.style.top=F+14+"px",m.style.left=A+e+38-0+"px",m.style.zIndex=this.zIndex,mxEvent.addListener(m,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(m),this.dialogImg=m,!g)){var z=!1;mxEvent.addGestureListeners(this.bg,
+mxUtils.bind(this,function(a){z=!0}),null,mxUtils.bind(this,function(c){z&&(a.hideDialog(!0),z=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=f){var c=f();null!=c&&(k=e=c.w,p=d=c.h)}c=mxUtils.getDocumentSize();v=c.height;this.bg.style.height=v+"px";A=Math.max(1,Math.round((c.width-e-64)/2));F=Math.max(1,Math.round((v-d-a.footerHeight)/3));e=null!=document.body?Math.min(k,document.body.scrollWidth-64):k;d=Math.min(p,v-64);c=this.getPosition(A,F,e,d);A=c.x;F=c.y;y.style.left=A+"px";
+y.style.top=F+"px";y.style.width=e+"px";y.style.height=d+"px";!q&&b.clientHeight>y.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=F+14+"px",this.dialogImg.style.left=A+e+38-0+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=u;this.container=y;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1;
Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":
IMAGE_PATH+"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
@@ -2062,47 +2063,47 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA
"/locked.png";
Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,b){return new mxPoint(a,b)};Dialog.prototype.close=function(a,b){if(null!=this.onDialogClose){if(0==this.onDialogClose(a,b))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
-var ErrorDialog=function(a,b,e,d,n,l,t,q,c,f,g){c=null!=c?c:!0;var m=document.createElement("div");m.style.textAlign="center";if(null!=b){var k=document.createElement("div");k.style.padding="0px";k.style.margin="0px";k.style.fontSize="18px";k.style.paddingBottom="16px";k.style.marginBottom="10px";k.style.borderBottom="1px solid #c0c0c0";k.style.color="gray";k.style.whiteSpace="nowrap";k.style.textOverflow="ellipsis";k.style.overflow="hidden";mxUtils.write(k,b);k.setAttribute("title",b);m.appendChild(k)}b=
-document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=e;m.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=l&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();l()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=f&&(f=mxUtils.button(f,function(){null!=g&&g()}),f.className="geBtn",e.appendChild(f));var p=mxUtils.button(d,function(){c&&a.hideDialog();null!=n&&n()});
-p.className="geBtn";e.appendChild(p);null!=t&&(d=mxUtils.button(t,function(){c&&a.hideDialog();null!=q&&q()}),d.className="geBtn gePrimaryBtn",e.appendChild(d));this.init=function(){p.focus()};m.appendChild(e);this.container=m},PrintDialog=function(a,b){this.create(a,b)};
-PrintDialog.prototype.create=function(a){function b(a){var c=q.checked||f.checked,b=parseInt(m.value)/100;isNaN(b)&&(b=1,m.value="100%");var b=.75*b,d=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,k=1/e.pageScale;if(c){var p=q.checked?1:parseInt(g.value);isNaN(p)||(k=mxUtils.getScaleForPageCount(p,e,d))}e.getGraphBounds();var l=p=0,d=mxRectangle.fromRectangle(d);d.width=Math.ceil(d.width*b);d.height=Math.ceil(d.height*b);k*=b;!c&&e.pageVisible?(b=e.getPageLayout(),p-=b.x*d.width,l-=b.y*d.height):
-c=!0;c=PrintDialog.createPrintPreview(e,k,d,0,p,l,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,d,n,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var t=document.createElement("tbody");d=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(q);var c=document.createElement("span");mxUtils.write(c," "+mxResources.get("fitPage"));
-n.appendChild(c);mxEvent.addListener(c,"click",function(a){q.checked=!q.checked;f.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){f.checked=!q.checked});d.appendChild(n);t.appendChild(d);d=d.cloneNode(!1);var f=document.createElement("input");f.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(f);c=document.createElement("span");mxUtils.write(c," "+mxResources.get("posterPrint")+":");n.appendChild(c);mxEvent.addListener(c,
-"click",function(a){f.checked=!f.checked;q.checked=!f.checked;mxEvent.consume(a)});d.appendChild(n);var g=document.createElement("input");g.setAttribute("value","1");g.setAttribute("type","number");g.setAttribute("min","1");g.setAttribute("size","4");g.setAttribute("disabled","disabled");g.style.width="50px";n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(g);mxUtils.write(n," "+mxResources.get("pages")+" (max)");d.appendChild(n);t.appendChild(d);mxEvent.addListener(f,"change",
-function(){f.checked?g.removeAttribute("disabled"):g.setAttribute("disabled","disabled");q.checked=!f.checked});d=d.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");d.appendChild(n);n=document.createElement("td");var m=document.createElement("input");m.setAttribute("value","100 %");m.setAttribute("size","5");m.style.width="50px";n.appendChild(m);d.appendChild(n);t.appendChild(d);d=document.createElement("tr");n=document.createElement("td");n.colSpan=2;
-n.style.paddingTop="20px";n.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&n.appendChild(c);if(PrintDialog.previewEnabled){var k=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});k.className="geBtn";n.appendChild(k)}k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});k.className="geBtn gePrimaryBtn";n.appendChild(k);a.editor.cancelFirst||
-n.appendChild(c);d.appendChild(n);t.appendChild(d);l.appendChild(t);this.container=l};PrintDialog.printPreview=function(a){try{if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}}catch(e){}};
-PrintDialog.createPrintPreview=function(a,b,e,d,n,l,t){b=new mxPrintPreview(a,b,e,d,n,l);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=t;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return b};
+var ErrorDialog=function(a,b,e,d,l,m,u,q,c,f,g){c=null!=c?c:!0;var k=document.createElement("div");k.style.textAlign="center";if(null!=b){var p=document.createElement("div");p.style.padding="0px";p.style.margin="0px";p.style.fontSize="18px";p.style.paddingBottom="16px";p.style.marginBottom="10px";p.style.borderBottom="1px solid #c0c0c0";p.style.color="gray";p.style.whiteSpace="nowrap";p.style.textOverflow="ellipsis";p.style.overflow="hidden";mxUtils.write(p,b);p.setAttribute("title",b);k.appendChild(p)}b=
+document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=e;k.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=m&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();m()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=f&&(f=mxUtils.button(f,function(){null!=g&&g()}),f.className="geBtn",e.appendChild(f));var t=mxUtils.button(d,function(){c&&a.hideDialog();null!=l&&l()});
+t.className="geBtn";e.appendChild(t);null!=u&&(d=mxUtils.button(u,function(){c&&a.hideDialog();null!=q&&q()}),d.className="geBtn gePrimaryBtn",e.appendChild(d));this.init=function(){t.focus()};k.appendChild(e);this.container=k},PrintDialog=function(a,b){this.create(a,b)};
+PrintDialog.prototype.create=function(a){function b(a){var c=q.checked||f.checked,b=parseInt(k.value)/100;isNaN(b)&&(b=1,k.value="100%");var b=.75*b,d=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,p=1/e.pageScale;if(c){var t=q.checked?1:parseInt(g.value);isNaN(t)||(p=mxUtils.getScaleForPageCount(t,e,d))}e.getGraphBounds();var m=t=0,d=mxRectangle.fromRectangle(d);d.width=Math.ceil(d.width*b);d.height=Math.ceil(d.height*b);p*=b;!c&&e.pageVisible?(b=e.getPageLayout(),t-=b.x*d.width,m-=b.y*d.height):
+c=!0;c=PrintDialog.createPrintPreview(e,p,d,0,t,m,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,d,l,m=document.createElement("table");m.style.width="100%";m.style.height="100%";var u=document.createElement("tbody");d=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");l=document.createElement("td");l.setAttribute("colspan","2");l.style.fontSize="10pt";l.appendChild(q);var c=document.createElement("span");mxUtils.write(c," "+mxResources.get("fitPage"));
+l.appendChild(c);mxEvent.addListener(c,"click",function(a){q.checked=!q.checked;f.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){f.checked=!q.checked});d.appendChild(l);u.appendChild(d);d=d.cloneNode(!1);var f=document.createElement("input");f.setAttribute("type","checkbox");l=document.createElement("td");l.style.fontSize="10pt";l.appendChild(f);c=document.createElement("span");mxUtils.write(c," "+mxResources.get("posterPrint")+":");l.appendChild(c);mxEvent.addListener(c,
+"click",function(a){f.checked=!f.checked;q.checked=!f.checked;mxEvent.consume(a)});d.appendChild(l);var g=document.createElement("input");g.setAttribute("value","1");g.setAttribute("type","number");g.setAttribute("min","1");g.setAttribute("size","4");g.setAttribute("disabled","disabled");g.style.width="50px";l=document.createElement("td");l.style.fontSize="10pt";l.appendChild(g);mxUtils.write(l," "+mxResources.get("pages")+" (max)");d.appendChild(l);u.appendChild(d);mxEvent.addListener(f,"change",
+function(){f.checked?g.removeAttribute("disabled"):g.setAttribute("disabled","disabled");q.checked=!f.checked});d=d.cloneNode(!1);l=document.createElement("td");mxUtils.write(l,mxResources.get("pageScale")+":");d.appendChild(l);l=document.createElement("td");var k=document.createElement("input");k.setAttribute("value","100 %");k.setAttribute("size","5");k.style.width="50px";l.appendChild(k);d.appendChild(l);u.appendChild(d);d=document.createElement("tr");l=document.createElement("td");l.colSpan=2;
+l.style.paddingTop="20px";l.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&l.appendChild(c);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});p.className="geBtn";l.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});p.className="geBtn gePrimaryBtn";l.appendChild(p);a.editor.cancelFirst||
+l.appendChild(c);d.appendChild(l);u.appendChild(d);m.appendChild(u);this.container=m};PrintDialog.printPreview=function(a){try{if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}}catch(e){}};
+PrintDialog.createPrintPreview=function(a,b,e,d,l,m,u){b=new mxPrintPreview(a,b,e,d,l,m);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=u;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return b};
PrintDialog.previewEnabled=!0;
-var PageSetupDialog=function(a){function b(){null==g||g==mxConstants.NONE?(f.style.backgroundColor="",f.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(f.style.backgroundColor=g,f.style.backgroundImage="")}function e(){null==p?(k.removeAttribute("title"),k.style.fontSize="",k.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(k.setAttribute("title",p.src),k.style.fontSize="11px",k.innerHTML=mxUtils.htmlEntities(p.src.substring(0,42))+"...")}var d=a.editor.graph,n,
-l,t=document.createElement("table");t.style.width="100%";t.style.height="100%";var q=document.createElement("tbody");n=document.createElement("tr");l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("paperSize")+":");n.appendChild(l);l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";var c=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",d.pageFormat);n.appendChild(l);q.appendChild(n);n=document.createElement("tr");
-l=document.createElement("td");mxUtils.write(l,mxResources.get("background")+":");n.appendChild(l);l=document.createElement("td");l.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var f=document.createElement("button");f.style.width="18px";f.style.height="18px";f.style.marginRight="20px";f.style.backgroundPosition="center center";f.style.backgroundRepeat="no-repeat";var g=d.background;b();mxEvent.addListener(f,"click",function(c){a.pickColor(g||"none",function(a){g=
-a;b()});mxEvent.consume(c)});l.appendChild(f);mxUtils.write(l,mxResources.get("gridSize")+":");var m=document.createElement("input");m.setAttribute("type","number");m.setAttribute("min","0");m.style.width="40px";m.style.marginLeft="6px";m.value=d.getGridSize();l.appendChild(m);mxEvent.addListener(m,"change",function(){var a=parseInt(m.value);m.value=Math.max(1,isNaN(a)?d.getGridSize():a)});n.appendChild(l);q.appendChild(n);n=document.createElement("tr");l=document.createElement("td");mxUtils.write(l,
-mxResources.get("image")+":");n.appendChild(l);l=document.createElement("td");var k=document.createElement("a");k.style.textDecoration="underline";k.style.cursor="pointer";k.style.color="#a0a0a0";var p=d.backgroundImage;mxEvent.addListener(k,"click",function(c){a.showBackgroundImageDialog(function(a,c){c||(p=a,e())},p);mxEvent.consume(c)});e();l.appendChild(k);n.appendChild(l);q.appendChild(n);n=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.paddingTop="16px";l.setAttribute("align",
-"right");var u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&l.appendChild(u);var A=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=parseInt(m.value);isNaN(b)||d.gridSize===b||d.setGridSize(b);b=new ChangePageSetup(a,g,p,c.get());b.ignoreColor=d.background==g;b.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=p?p.src:null);d.pageFormat.width==b.previousFormat.width&&d.pageFormat.height==
-b.previousFormat.height&&b.ignoreColor&&b.ignoreImage||d.model.execute(b)});A.className="geBtn gePrimaryBtn";l.appendChild(A);a.editor.cancelFirst||l.appendChild(u);n.appendChild(l);q.appendChild(n);t.appendChild(q);this.container=t};
-PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function n(a,b,d){if(d||m!=document.activeElement&&k!=document.activeElement){a=!1;for(b=0;b<u.length;b++)d=u[b],y?"custom"==d.key&&(q.value=d.key,y=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
-e.height==d.format.height?(q.value=d.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,t.removeAttribute("checked"),t.defaultChecked=!1,t.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(q.value=d.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,t.setAttribute("checked","checked"),t.defaultChecked=!0,a=t.checked=!0));a?(c.style.display="",g.style.display="none"):(m.value=e.width/100,k.value=e.height/100,l.setAttribute("checked","checked"),
-q.value="custom",c.style.display="none",g.style.display="")}}b="format-"+b;var l=document.createElement("input");l.setAttribute("name",b);l.setAttribute("type","radio");l.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",b);t.setAttribute("type","radio");t.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var c=document.createElement("div");c.style.marginLeft="4px";c.style.width="210px";
-c.style.height="24px";l.style.marginRight="6px";c.appendChild(l);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));c.appendChild(b);t.style.marginLeft="10px";t.style.marginRight="6px";c.appendChild(t);var f=document.createElement("span");f.style.width="100px";mxUtils.write(f,mxResources.get("landscape"));c.appendChild(f);var g=document.createElement("div");g.style.marginLeft="4px";g.style.width="210px";g.style.height="24px";var m=document.createElement("input");
-m.setAttribute("size","7");m.style.textAlign="right";g.appendChild(m);mxUtils.write(g," in x ");var k=document.createElement("input");k.setAttribute("size","7");k.style.textAlign="right";g.appendChild(k);mxUtils.write(g," in");c.style.display="none";g.style.display="none";for(var p={},u=PageSetupDialog.getFormats(),A=0;A<u.length;A++){var F=u[A];p[F.key]=F;var z=document.createElement("option");z.setAttribute("value",F.key);mxUtils.write(z,F.title);q.appendChild(z)}var y=!1;n();a.appendChild(q);mxUtils.br(a);
-a.appendChild(c);a.appendChild(g);var M=e,L=function(a,b){var f=p[q.value];null!=f.format?(m.value=f.format.width/100,k.value=f.format.height/100,g.style.display="none",c.style.display=""):(c.style.display="none",g.style.display="");f=parseFloat(m.value);if(isNaN(f)||0>=f)m.value=e.width/100;f=parseFloat(k.value);if(isNaN(f)||0>=f)k.value=e.height/100;f=new mxRectangle(0,0,Math.floor(100*parseFloat(m.value)),Math.floor(100*parseFloat(k.value)));"custom"!=q.value&&t.checked&&(f=new mxRectangle(0,0,
-f.height,f.width));b&&y||f.width==M.width&&f.height==M.height||(M=f,null!=d&&d(M))};mxEvent.addListener(b,"click",function(a){l.checked=!0;L(a);mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){t.checked=!0;L(a);mxEvent.consume(a)});mxEvent.addListener(m,"blur",L);mxEvent.addListener(m,"click",L);mxEvent.addListener(k,"blur",L);mxEvent.addListener(k,"click",L);mxEvent.addListener(t,"change",L);mxEvent.addListener(l,"change",L);mxEvent.addListener(q,"change",function(a){y="custom"==q.value;
-L(a,!0)});L();return{set:function(a){e=a;n(null,null,!0)},get:function(){return M},widthInput:m,heightInput:k}};
+var PageSetupDialog=function(a){function b(){null==g||g==mxConstants.NONE?(f.style.backgroundColor="",f.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(f.style.backgroundColor=g,f.style.backgroundImage="")}function e(){null==t?(p.removeAttribute("title"),p.style.fontSize="",p.innerHTML=mxUtils.htmlEntities(mxResources.get("change"))+"..."):(p.setAttribute("title",t.src),p.style.fontSize="11px",p.innerHTML=mxUtils.htmlEntities(t.src.substring(0,42))+"...")}var d=a.editor.graph,l,
+m,u=document.createElement("table");u.style.width="100%";u.style.height="100%";var q=document.createElement("tbody");l=document.createElement("tr");m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("paperSize")+":");l.appendChild(m);m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";var c=PageSetupDialog.addPageFormatPanel(m,"pagesetupdialog",d.pageFormat);l.appendChild(m);q.appendChild(l);l=document.createElement("tr");
+m=document.createElement("td");mxUtils.write(m,mxResources.get("background")+":");l.appendChild(m);m=document.createElement("td");m.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var f=document.createElement("button");f.style.width="18px";f.style.height="18px";f.style.marginRight="20px";f.style.backgroundPosition="center center";f.style.backgroundRepeat="no-repeat";var g=d.background;b();mxEvent.addListener(f,"click",function(c){a.pickColor(g||"none",function(a){g=
+a;b()});mxEvent.consume(c)});m.appendChild(f);mxUtils.write(m,mxResources.get("gridSize")+":");var k=document.createElement("input");k.setAttribute("type","number");k.setAttribute("min","0");k.style.width="40px";k.style.marginLeft="6px";k.value=d.getGridSize();m.appendChild(k);mxEvent.addListener(k,"change",function(){var a=parseInt(k.value);k.value=Math.max(1,isNaN(a)?d.getGridSize():a)});l.appendChild(m);q.appendChild(l);l=document.createElement("tr");m=document.createElement("td");mxUtils.write(m,
+mxResources.get("image")+":");l.appendChild(m);m=document.createElement("td");var p=document.createElement("a");p.style.textDecoration="underline";p.style.cursor="pointer";p.style.color="#a0a0a0";var t=d.backgroundImage;mxEvent.addListener(p,"click",function(c){a.showBackgroundImageDialog(function(a,c){c||(t=a,e())},t);mxEvent.consume(c)});e();m.appendChild(p);l.appendChild(m);q.appendChild(l);l=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="16px";m.setAttribute("align",
+"right");var v=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});v.className="geBtn";a.editor.cancelFirst&&m.appendChild(v);var A=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=parseInt(k.value);isNaN(b)||d.gridSize===b||d.setGridSize(b);b=new ChangePageSetup(a,g,t,c.get());b.ignoreColor=d.background==g;b.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=t?t.src:null);d.pageFormat.width==b.previousFormat.width&&d.pageFormat.height==
+b.previousFormat.height&&b.ignoreColor&&b.ignoreImage||d.model.execute(b)});A.className="geBtn gePrimaryBtn";m.appendChild(A);a.editor.cancelFirst||m.appendChild(v);l.appendChild(m);q.appendChild(l);u.appendChild(q);this.container=u};
+PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function l(a,b,d){if(d||k!=document.activeElement&&p!=document.activeElement){a=!1;for(b=0;b<v.length;b++)d=v[b],z?"custom"==d.key&&(q.value=d.key,z=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
+e.height==d.format.height?(q.value=d.key,m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0,u.removeAttribute("checked"),u.defaultChecked=!1,u.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(q.value=d.key,m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1,u.setAttribute("checked","checked"),u.defaultChecked=!0,a=u.checked=!0));a?(c.style.display="",g.style.display="none"):(k.value=e.width/100,p.value=e.height/100,m.setAttribute("checked","checked"),
+q.value="custom",c.style.display="none",g.style.display="")}}b="format-"+b;var m=document.createElement("input");m.setAttribute("name",b);m.setAttribute("type","radio");m.setAttribute("value","portrait");var u=document.createElement("input");u.setAttribute("name",b);u.setAttribute("type","radio");u.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var c=document.createElement("div");c.style.marginLeft="4px";c.style.width="210px";
+c.style.height="24px";m.style.marginRight="6px";c.appendChild(m);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));c.appendChild(b);u.style.marginLeft="10px";u.style.marginRight="6px";c.appendChild(u);var f=document.createElement("span");f.style.width="100px";mxUtils.write(f,mxResources.get("landscape"));c.appendChild(f);var g=document.createElement("div");g.style.marginLeft="4px";g.style.width="210px";g.style.height="24px";var k=document.createElement("input");
+k.setAttribute("size","7");k.style.textAlign="right";g.appendChild(k);mxUtils.write(g," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";g.appendChild(p);mxUtils.write(g," in");c.style.display="none";g.style.display="none";for(var t={},v=PageSetupDialog.getFormats(),A=0;A<v.length;A++){var F=v[A];t[F.key]=F;var y=document.createElement("option");y.setAttribute("value",F.key);mxUtils.write(y,F.title);q.appendChild(y)}var z=!1;l();a.appendChild(q);mxUtils.br(a);
+a.appendChild(c);a.appendChild(g);var L=e,M=function(a,b){var f=t[q.value];null!=f.format?(k.value=f.format.width/100,p.value=f.format.height/100,g.style.display="none",c.style.display=""):(c.style.display="none",g.style.display="");f=parseFloat(k.value);if(isNaN(f)||0>=f)k.value=e.width/100;f=parseFloat(p.value);if(isNaN(f)||0>=f)p.value=e.height/100;f=new mxRectangle(0,0,Math.floor(100*parseFloat(k.value)),Math.floor(100*parseFloat(p.value)));"custom"!=q.value&&u.checked&&(f=new mxRectangle(0,0,
+f.height,f.width));b&&z||f.width==L.width&&f.height==L.height||(L=f,null!=d&&d(L))};mxEvent.addListener(b,"click",function(a){m.checked=!0;M(a);mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){u.checked=!0;M(a);mxEvent.consume(a)});mxEvent.addListener(k,"blur",M);mxEvent.addListener(k,"click",M);mxEvent.addListener(p,"blur",M);mxEvent.addListener(p,"click",M);mxEvent.addListener(u,"change",M);mxEvent.addListener(m,"change",M);mxEvent.addListener(q,"change",function(a){z="custom"==q.value;
+M(a,!0)});M();return{set:function(a){e=a;l(null,null,!0)},get:function(){return L},widthInput:k,heightInput:p}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
-var FilenameDialog=function(a,b,e,d,n,l,t,q,c,f,g,m){c=null!=c?c:!0;var k,p,u=document.createElement("table"),A=document.createElement("tbody");u.style.marginTop="8px";k=document.createElement("tr");p=document.createElement("td");p.style.whiteSpace="nowrap";p.style.fontSize="10pt";p.style.width=g?"80px":"120px";mxUtils.write(p,(n||mxResources.get("filename"))+":");k.appendChild(p);var F=document.createElement("input");F.setAttribute("value",b||"");F.style.marginLeft="4px";F.style.width=null!=m?m+
-"px":"180px";var z=mxUtils.button(e,function(){if(null==l||l(F.value))c&&a.hideDialog(),d(F.value)});z.className="geBtn gePrimaryBtn";this.init=function(){if(null!=n||null==t)if(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?F.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=u.parentNode;if(null!=a){var c=null;mxEvent.addListener(a,"dragleave",function(a){null!=c&&(c.style.backgroundColor="",c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
-"dragover",mxUtils.bind(this,function(a){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=F,c.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=c&&(c.style.backgroundColor="",c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(F.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),z.click());a.stopPropagation();a.preventDefault()}))}}};p=document.createElement("td");p.style.whiteSpace=
-"nowrap";p.appendChild(F);k.appendChild(p);if(null!=n||null==t)A.appendChild(k),null!=g&&(null!=a.editor.diagramFileTypes&&(k=FilenameDialog.createFileTypes(a,F,a.editor.diagramFileTypes),k.style.marginLeft="6px",k.style.width="74px",p.appendChild(k),F.style.width=null!=m?m-40+"px":"140px"),p.appendChild(FilenameDialog.createTypeHint(a,F,g)));null!=t&&(k=document.createElement("tr"),p=document.createElement("td"),p.colSpan=2,p.appendChild(t),k.appendChild(p),A.appendChild(k));k=document.createElement("tr");
-p=document.createElement("td");p.colSpan=2;p.style.paddingTop="20px";p.style.whiteSpace="nowrap";p.setAttribute("align","right");g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});g.className="geBtn";a.editor.cancelFirst&&p.appendChild(g);null!=q&&(m=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(q)}),m.className="geBtn",p.appendChild(m));mxEvent.addListener(F,"keypress",function(a){13==a.keyCode&&z.click()});p.appendChild(z);a.editor.cancelFirst||
-p.appendChild(g);k.appendChild(p);A.appendChild(k);u.appendChild(A);this.container=u};FilenameDialog.filenameHelpLink=null;
-FilenameDialog.createTypeHint=function(a,b,e){var d=document.createElement("img");d.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(d,70);var n=function(){d.setAttribute("src",Editor.helpImage);d.setAttribute("title",mxResources.get("help"));for(var a=0;a<e.length;a++)if(0<e[a].ext.length&&b.value.toLowerCase().substring(b.value.length-e[a].ext.length-1)=="."+e[a].ext){d.setAttribute("src",
-mxClient.imageBasePath+"/warning.png");d.setAttribute("title",mxResources.get(e[a].title));break}};mxEvent.addListener(b,"keyup",n);mxEvent.addListener(b,"change",n);mxEvent.addListener(d,"click",function(b){var e=d.getAttribute("title");d.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&a.showError(null,e,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
-mxEvent.consume(b)});n();return d};
-FilenameDialog.createFileTypes=function(a,b,e){var d=document.createElement("select");for(a=0;a<e.length;a++){var n=document.createElement("option");n.setAttribute("value",a);mxUtils.write(n,mxResources.get(e[a].description)+" (."+e[a].extension+")");d.appendChild(n)}mxEvent.addListener(d,"change",function(a){a=e[d.value].extension;var l=b.value.lastIndexOf(".");0<l?(a=e[d.value].extension,b.value=b.value.substring(0,l+1)+a):b.value=b.value+"."+a;"createEvent"in document?(a=document.createEvent("HTMLEvents"),
-a.initEvent("change",!1,!0),b.dispatchEvent(a)):b.fireEvent("onchange")});a=function(a){var l=b.value.lastIndexOf(".");a=0;if(0<l)for(var l=b.value.toLowerCase().substring(l+1),q=0;q<e.length;q++)if(l==e[q].extension){a=q;break}d.value=a};mxEvent.addListener(b,"change",a);mxEvent.addListener(b,"keyup",a);a();return d};
+var FilenameDialog=function(a,b,e,d,l,m,u,q,c,f,g,k){c=null!=c?c:!0;var p,t,v=document.createElement("table"),A=document.createElement("tbody");v.style.marginTop="8px";p=document.createElement("tr");t=document.createElement("td");t.style.whiteSpace="nowrap";t.style.fontSize="10pt";t.style.width=g?"80px":"120px";mxUtils.write(t,(l||mxResources.get("filename"))+":");p.appendChild(t);var F=document.createElement("input");F.setAttribute("value",b||"");F.style.marginLeft="4px";F.style.width=null!=k?k+
+"px":"180px";var y=mxUtils.button(e,function(){if(null==m||m(F.value))c&&a.hideDialog(),d(F.value)});y.className="geBtn gePrimaryBtn";this.init=function(){if(null!=l||null==u)if(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?F.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var a=v.parentNode;if(null!=a){var c=null;mxEvent.addListener(a,"dragleave",function(a){null!=c&&(c.style.backgroundColor="",c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(a,
+"dragover",mxUtils.bind(this,function(a){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=F,c.style.backgroundColor="#ebf2f9");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(a){null!=c&&(c.style.backgroundColor="",c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(F.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),y.click());a.stopPropagation();a.preventDefault()}))}}};t=document.createElement("td");t.style.whiteSpace=
+"nowrap";t.appendChild(F);p.appendChild(t);if(null!=l||null==u)A.appendChild(p),null!=g&&(null!=a.editor.diagramFileTypes&&(p=FilenameDialog.createFileTypes(a,F,a.editor.diagramFileTypes),p.style.marginLeft="6px",p.style.width="74px",t.appendChild(p),F.style.width=null!=k?k-40+"px":"140px"),t.appendChild(FilenameDialog.createTypeHint(a,F,g)));null!=u&&(p=document.createElement("tr"),t=document.createElement("td"),t.colSpan=2,t.appendChild(u),p.appendChild(t),A.appendChild(p));p=document.createElement("tr");
+t=document.createElement("td");t.colSpan=2;t.style.paddingTop="20px";t.style.whiteSpace="nowrap";t.setAttribute("align","right");g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=f&&f()});g.className="geBtn";a.editor.cancelFirst&&t.appendChild(g);null!=q&&(k=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(q)}),k.className="geBtn",t.appendChild(k));mxEvent.addListener(F,"keypress",function(a){13==a.keyCode&&y.click()});t.appendChild(y);a.editor.cancelFirst||
+t.appendChild(g);p.appendChild(t);A.appendChild(p);v.appendChild(A);this.container=v};FilenameDialog.filenameHelpLink=null;
+FilenameDialog.createTypeHint=function(a,b,e){var d=document.createElement("img");d.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;";mxUtils.setOpacity(d,70);var l=function(){d.setAttribute("src",Editor.helpImage);d.setAttribute("title",mxResources.get("help"));for(var a=0;a<e.length;a++)if(0<e[a].ext.length&&b.value.toLowerCase().substring(b.value.length-e[a].ext.length-1)=="."+e[a].ext){d.setAttribute("src",
+mxClient.imageBasePath+"/warning.png");d.setAttribute("title",mxResources.get(e[a].title));break}};mxEvent.addListener(b,"keyup",l);mxEvent.addListener(b,"change",l);mxEvent.addListener(d,"click",function(b){var e=d.getAttribute("title");d.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&a.showError(null,e,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);
+mxEvent.consume(b)});l();return d};
+FilenameDialog.createFileTypes=function(a,b,e){var d=document.createElement("select");for(a=0;a<e.length;a++){var l=document.createElement("option");l.setAttribute("value",a);mxUtils.write(l,mxResources.get(e[a].description)+" (."+e[a].extension+")");d.appendChild(l)}mxEvent.addListener(d,"change",function(a){a=e[d.value].extension;var m=b.value.lastIndexOf(".");0<m?(a=e[d.value].extension,b.value=b.value.substring(0,m+1)+a):b.value=b.value+"."+a;"createEvent"in document?(a=document.createEvent("HTMLEvents"),
+a.initEvent("change",!1,!0),b.dispatchEvent(a)):b.fireEvent("onchange")});a=function(a){var m=b.value.lastIndexOf(".");a=0;if(0<m)for(var m=b.value.toLowerCase().substring(m+1),q=0;q<e.length;q++)if(m==e[q].extension){a=q;break}d.value=a};mxEvent.addListener(b,"change",a);mxEvent.addListener(b,"keyup",a);a();return d};
(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var b=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(b),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,
this.backgroundPageShape.init(a.container),c.style.position="absolute",a.container.insertBefore(this.backgroundPageShape.node,c),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(c){a.dblClick(c)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){null!=
a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=b,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null);this.validateBackgroundStyles()}};
@@ -2110,55 +2111,55 @@ mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,b=nul
")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,a.view.backgroundPageShape.node.style.backgroundImage=d,a.view.backgroundPageShape.node.style.backgroundColor=b,a.view.backgroundPageShape.node.style.borderColor=
a.defaultPageBorderColor,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=g,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],g=1;g<this.gridSteps;g++){var e=g*b;d.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+
" "+c)}return'<svg width="'+c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,d){a.apply(this,arguments);
-if(null!=this.shiftPreview1){var c=this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+b,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+d,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,g=this.view.translate,e=this.pageFormat,k=d*this.pageScale,p=this.view.getBackgroundPageBounds();
-b=p.width;c=p.height;var u=new mxRectangle(d*g.x,d*g.y,e.width*k,e.height*k),l=(a=a&&Math.min(u.width,u.height)>this.minPageBreakDist)?Math.ceil(c/u.height)-1:0,q=a?Math.ceil(b/u.width)-1:0,n=p.x+b,y=p.y+c;null==this.horizontalPageBreaks&&0<l&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<q&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?l:q,b=0;b<=c;b++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(p.x),
-Math.round(p.y+(b+1)*u.height)),new mxPoint(Math.round(n),Math.round(p.y+(b+1)*u.height))]:[new mxPoint(Math.round(p.x+(b+1)*u.width),Math.round(p.y)),new mxPoint(Math.round(p.x+(b+1)*u.width),Math.round(y))];null!=a[b]?(a[b].points=d,a[b].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[b]=d)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);
+if(null!=this.shiftPreview1){var c=this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+b,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+d,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,g=this.view.translate,e=this.pageFormat,p=d*this.pageScale,t=this.view.getBackgroundPageBounds();
+b=t.width;c=t.height;var v=new mxRectangle(d*g.x,d*g.y,e.width*p,e.height*p),m=(a=a&&Math.min(v.width,v.height)>this.minPageBreakDist)?Math.ceil(c/v.height)-1:0,q=a?Math.ceil(b/v.width)-1:0,l=t.x+b,z=t.y+c;null==this.horizontalPageBreaks&&0<m&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<q&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?m:q,b=0;b<=c;b++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(t.x),
+Math.round(t.y+(b+1)*v.height)),new mxPoint(Math.round(l),Math.round(t.y+(b+1)*v.height))]:[new mxPoint(Math.round(t.x+(b+1)*v.width),Math.round(t.y)),new mxPoint(Math.round(t.x+(b+1)*v.width),Math.round(z))];null!=a[b]?(a[b].points=d,a[b].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[b]=d)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);
a(this.verticalPageBreaks)};var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,d,c){for(var f=0;f<d.length;f++){if(this.graph.isTableCell(d[f])||this.graph.isTableRow(d[f]))return!1;if(this.graph.getModel().isVertex(d[f])){var g=this.graph.getCellGeometry(d[f]);if(null!=g&&g.relative)return!1}}return b.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=
e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,
-g=this.graph.pageScale,e=d.width*g,d=d.height*g,g=Math.floor(Math.min(0,b)/e),k=Math.floor(Math.min(0,c)/d);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+k*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-k)*d)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
-this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var n=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,g,e){var f=n.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var l=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
-function(a,b,c){var d,g=this.graph.model.getParent(a);if(b)d=this.graph.model.isEdge(a)?null:this.graph.getCellGeometry(a),d=!this.graph.model.isEdge(g)&&!this.graph.isSiblingSelected(a)&&(null!=d&&d.relative||!this.graph.isContainer(g)||this.graph.isPart(a));else if(d=l.apply(this,arguments),this.graph.isTableCell(a)||this.graph.isTableRow(a))d=g,this.graph.isTable(d)||(d=this.graph.model.getParent(d)),d=!this.graph.selectionCellsHandler.isHandled(d)||this.graph.isCellSelected(d)&&this.graph.isToggleEvent(c.getEvent())||
+g=this.graph.pageScale,e=d.width*g,d=d.height*g,g=Math.floor(Math.min(0,b)/e),p=Math.floor(Math.min(0,c)/d);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+p*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-p)*d)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
+this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var l=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,g,e){var f=l.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var m=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
+function(a,b,c){var d,g=this.graph.model.getParent(a);if(b)d=this.graph.model.isEdge(a)?null:this.graph.getCellGeometry(a),d=!this.graph.model.isEdge(g)&&!this.graph.isSiblingSelected(a)&&(null!=d&&d.relative||!this.graph.isContainer(g)||this.graph.isPart(a));else if(d=m.apply(this,arguments),this.graph.isTableCell(a)||this.graph.isTableRow(a))d=g,this.graph.isTable(d)||(d=this.graph.model.getParent(d)),d=!this.graph.selectionCellsHandler.isHandled(d)||this.graph.isCellSelected(d)&&this.graph.isToggleEvent(c.getEvent())||
this.graph.isCellSelected(a)&&!this.graph.isToggleEvent(c.getEvent())||this.graph.isTableCell(a)&&this.graph.isCellSelected(g);return d};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a),d=this.graph.view.getState(c),g=this.graph.isCellSelected(a);null!=d&&(b.isVertex(c)||b.isEdge(c));){var e=this.graph.isCellSelected(c),g=g||e;if(e||!g&&(this.graph.isTableCell(a)||this.graph.isTableRow(a)))a=c;c=b.getParent(c)}return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=e;this.initialDefaultVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.initialDefaultEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=
-mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!d.standalone){var n="rounded shadow glass dashed dashPattern labelBackgroundColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),
-l="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var f=d.getCellStyle(b);a=[];var b=[],g;for(g in c.style)f[g]!=c.style[g]&&(a.push(c.style[g]),b.push(g));for(var e=d.getModel().getStyle(c.cell),k=null!=e?e.split(";"):[],e=0;e<k.length;e++){var m=
-k[e],p=m.indexOf("=");if(0<=p){g=m.substring(0,p);var u=m.substring(p+1);null!=f[g]&&"none"==u&&(a.push(u),b.push(g))}}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",b,"values",a,"cells",[c.cell]))}}catch(Y){this.handleError(Y)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
-"keys",[],"values",[],"cells",[]))};var t=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<t.length;b++)0>mxUtils.indexOf(n,t[b])&&n.push(t[b]);var q="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),c=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],["opacity"],["align"],["html"]];for(b=0;b<c.length;b++)for(e=0;e<c[b].length;e++)n.push(c[b][e]);
-for(b=0;b<l.length;b++)0>mxUtils.indexOf(n,l[b])&&n.push(l[b]);var f=function(a,b,f,g,e){g=null!=g?g:d.currentVertexStyle;e=null!=e?e:d.currentEdgeStyle;f=null!=f?f:d.getModel();f.beginUpdate();try{for(var k=0;k<a.length;k++){var x=a[k],m;if(b)m=["fontSize","fontFamily","fontColor"];else{var p=f.getStyle(x),u=null!=p?p.split(";"):[];m=n.slice();for(var B=0;B<u.length;B++){var q=u[B],z=q.indexOf("=");if(0<=z){var y=q.substring(0,z),A=mxUtils.indexOf(m,y);0<=A&&m.splice(A,1);for(var t=0;t<c.length;t++){var Q=
-c[t];if(0<=mxUtils.indexOf(Q,y))for(var H=0;H<Q.length;H++){var F=mxUtils.indexOf(m,Q[H]);0<=F&&m.splice(F,1)}}}}}for(var M=f.isEdge(x),t=M?e:g,L=f.getStyle(x),B=0;B<m.length;B++){var y=m[B],I=t[y];null==I||"shape"==y&&!M||M&&!(0>mxUtils.indexOf(l,y))||(L=mxUtils.setStyle(L,y,I))}Editor.simpleLabels&&(L=mxUtils.setStyle(mxUtils.setStyle(L,"html",null),"whiteSpace",null));f.setStyle(x,L)}}finally{f.endUpdate()}};d.addListener("cellsInserted",function(a,c){f(c.getProperty("cells"))});d.addListener("textInserted",
-function(a,c){f(c.getProperty("cells"),!0)});this.insertHandler=f;this.createDivs();this.createUi();this.refresh();var g=mxUtils.bind(this,function(a){null==a&&(a=window.event);return d.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=g,this.menubarContainer.onmousedown=g,this.toolbarContainer.onselectstart=g,this.toolbarContainer.onmousedown=g,this.diagramContainer.onselectstart=g,this.diagramContainer.onmousedown=g,this.sidebarContainer.onselectstart=
-g,this.sidebarContainer.onmousedown=g,this.formatContainer.onselectstart=g,this.formatContainer.onmousedown=g,this.footerContainer.onselectstart=g,this.footerContainer.onmousedown=g,null!=this.tabContainer&&(this.tabContainer.onselectstart=g));!this.editor.chromeless||this.editor.editable?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}}return g(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||
-9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var m=d.graphHandler.start;d.graphHandler.start=function(){null!=G.hoverIcons&&G.hoverIcons.reset();m.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,
-"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var k=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return k||p.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=
-a.which||d.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(k=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor="";k=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var u=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return u.apply(this,
-arguments)||k||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return A.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var F=d.isZoomWheelEvent;
-d.isZoomWheelEvent=function(){return k||F.apply(this,arguments)};var z=!1,y=null,M=null,L=null,I=mxUtils.bind(this,function(){if(null!=this.toolbar&&z!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var b=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));a=b}a=this.toolbar.fontMenu;b=this.toolbar.sizeMenu;if(null==L)this.toolbar.createTextToolbar();else{for(var f=0;f<L.length;f++)this.toolbar.container.appendChild(L[f]);
-this.toolbar.fontMenu=y;this.toolbar.sizeMenu=M}z=d.cellEditor.isContentEditing();y=a;M=b;L=c}}),G=this,K=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){K.apply(this,arguments);I();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=d.getSelectedEditingElement();null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=G.toolbar&&(G.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),G.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},
-0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var E=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){try{E.apply(this,arguments),I()}catch(Q){G.handleError(Q)}};d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(H){}var J=
-d.fireMouseEvent;d.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();J.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};d.connectionHandler.addListener(mxEvent.CONNECT,
-function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));f(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=d.getModel().isVertex(b[e])||f,!(g=d.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=c.getProperty("keys"),k=c.getProperty("values"),e=0;e<b.length;e++){var m=0<=mxUtils.indexOf(t,b[e]);if("strokeColor"!=b[e]||null!=k[e]&&"none"!=
-k[e])if(0<=mxUtils.indexOf(l,b[e]))g||0<=mxUtils.indexOf(q,b[e])?null==k[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=k[e]:f&&0<=mxUtils.indexOf(n,b[e])&&(null==k[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=k[e]);else if(0<=mxUtils.indexOf(n,b[e])){if(f||m)null==k[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=k[e];if(g||m||0<=mxUtils.indexOf(q,b[e]))null==k[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=k[e]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||
-Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
-d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?
-"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
-this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);
-this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),f=c.getProperty("parent");d.getModel().isLayer(f)&&!d.isCellVisible(f)&&null!=b&&0<b.length&&d.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,
-this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,
-"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph()}this.init();d.standalone||this.open()};
-mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;
-EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
+mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!d.standalone){var l="rounded shadow glass dashed dashPattern labelBackgroundColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),
+m="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" ");this.setDefaultStyle=function(a){try{var c=d.view.getState(a);if(null!=c){var b=a.clone();b.style="";var f=d.getCellStyle(b);a=[];var b=[],g;for(g in c.style)f[g]!=c.style[g]&&(a.push(c.style[g]),b.push(g));for(var e=d.getModel().getStyle(c.cell),p=null!=e?e.split(";"):[],e=0;e<p.length;e++){var k=
+p[e],t=k.indexOf("=");if(0<=t){g=k.substring(0,t);var v=k.substring(t+1);null!=f[g]&&"none"==v&&(a.push(v),b.push(g))}}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",b,"values",a,"cells",[c.cell]))}}catch(X){this.handleError(X)}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged",
+"keys",[],"values",[],"cells",[]))};var u=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<u.length;b++)0>mxUtils.indexOf(l,u[b])&&l.push(u[b]);var q="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),c=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],["opacity"],["align"],["html"]];for(b=0;b<c.length;b++)for(e=0;e<c[b].length;e++)l.push(c[b][e]);
+for(b=0;b<m.length;b++)0>mxUtils.indexOf(l,m[b])&&l.push(m[b]);var f=function(a,b,f,g,e,p,k){g=null!=g?g:d.currentVertexStyle;e=null!=e?e:d.currentEdgeStyle;f=null!=f?f:d.getModel();if(k){k=[];for(var n=0;n<a.length;n++)k=k.concat(f.getDescendants(a[n]));a=k}f.beginUpdate();try{for(n=0;n<a.length;n++){var t=a[n],v;if(b)v=["fontSize","fontFamily","fontColor"];else{var C=f.getStyle(t),B=null!=C?C.split(";"):[];v=l.slice();for(var q=0;q<B.length;q++){var y=B[q],z=y.indexOf("=");if(0<=z){var A=y.substring(0,
+z),ka=mxUtils.indexOf(v,A);0<=ka&&v.splice(ka,1);for(k=0;k<c.length;k++){var u=c[k];if(0<=mxUtils.indexOf(u,A))for(var N=0;N<u.length;N++){var I=mxUtils.indexOf(v,u[N]);0<=I&&v.splice(I,1)}}}}}var F=f.isEdge(t);k=F?e:g;for(var L=f.getStyle(t),q=0;q<v.length;q++){var A=v[q],G=k[A];null!=G&&("shape"!=A||F)&&(!F||p||0>mxUtils.indexOf(m,A))&&(L=mxUtils.setStyle(L,A,G))}Editor.simpleLabels&&(L=mxUtils.setStyle(mxUtils.setStyle(L,"html",null),"whiteSpace",null));f.setStyle(t,L)}}finally{f.endUpdate()}};
+d.addListener("cellsInserted",function(a,c){f(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){f(c.getProperty("cells"),!0)});this.insertHandler=f;this.createDivs();this.createUi();this.refresh();var g=mxUtils.bind(this,function(a){null==a&&(a=window.event);return d.isEditing()||null!=a&&this.isSelectionAllowed(a)});this.container==document.body&&(this.menubarContainer.onselectstart=g,this.menubarContainer.onmousedown=g,this.toolbarContainer.onselectstart=g,this.toolbarContainer.onmousedown=
+g,this.diagramContainer.onselectstart=g,this.diagramContainer.onmousedown=g,this.sidebarContainer.onselectstart=g,this.sidebarContainer.onmousedown=g,this.formatContainer.onselectstart=g,this.formatContainer.onmousedown=g,this.footerContainer.onselectstart=g,this.footerContainer.onmousedown=g,null!=this.tabContainer&&(this.tabContainer.onselectstart=g));!this.editor.chromeless||this.editor.editable?(b=function(a){if(null!=a){var c=mxEvent.getSource(a);if("A"==c.nodeName)for(;null!=c;){if("geHint"==
+c.className)return!0;c=c.parentNode}}return g(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=d.graphHandler){var k=d.graphHandler.start;
+d.graphHandler.start=function(){null!=J.hoverIcons&&J.hoverIcons.reset();k.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var p=!1,t=this.hoverIcons.isResetEvent;
+this.hoverIcons.isResetEvent=function(a,c){return p||t.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32!=a.which||d.isEditing()?mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(p=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor="";p=!1});mxEvent.addListener(document,
+"keyup",this.keyupHandler);var v=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return v.apply(this,arguments)||p||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var A=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return A.apply(this,arguments)||13==a.keyCode&&
+(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var F=d.isZoomWheelEvent;d.isZoomWheelEvent=function(){return p||F.apply(this,arguments)};var y=!1,z=null,L=null,M=null,G=mxUtils.bind(this,function(){if(null!=this.toolbar&&y!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var b=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));
+a=b}a=this.toolbar.fontMenu;b=this.toolbar.sizeMenu;if(null==M)this.toolbar.createTextToolbar();else{for(var f=0;f<M.length;f++)this.toolbar.container.appendChild(M[f]);this.toolbar.fontMenu=z;this.toolbar.sizeMenu=L}y=d.cellEditor.isContentEditing();z=a;L=b;M=c}}),J=this,H=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){H.apply(this,arguments);G();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){var c=d.getSelectedEditingElement();null!=
+c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=J.toolbar&&(J.toolbar.setFontName(Graph.stripQuotes(c.fontFamily)),J.toolbar.setFontSize(parseInt(c.fontSize))));a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var D=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){try{D.apply(this,arguments),G()}catch(N){J.handleError(N)}};
+d.container.setAttribute("tabindex","0");d.container.style.cursor="default";if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(I){}var K=d.fireMouseEvent;d.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();K.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
+function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};d.connectionHandler.addListener(mxEvent.CONNECT,function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));f(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=d.getModel().isVertex(b[e])||f,!(g=d.getModel().isEdge(b[e])||
+g)||!f);e++);else g=f=!0;for(var b=c.getProperty("keys"),p=c.getProperty("values"),e=0;e<b.length;e++){var k=0<=mxUtils.indexOf(u,b[e]);if("strokeColor"!=b[e]||null!=p[e]&&"none"!=p[e])if(0<=mxUtils.indexOf(m,b[e]))g||0<=mxUtils.indexOf(q,b[e])?null==p[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=p[e]:f&&0<=mxUtils.indexOf(l,b[e])&&(null==p[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=p[e]);else if(0<=mxUtils.indexOf(l,b[e])){if(f||k)null==p[e]?delete d.currentVertexStyle[b[e]]:
+d.currentVertexStyle[b[e]]=p[e];if(g||k||0<=mxUtils.indexOf(q,b[e]))null==p[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=p[e]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?
+"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?
+"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=
+this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||
+"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),f=c.getProperty("parent");d.getModel().isLayer(f)&&
+!d.isCellVisible(f)&&null!=b&&0<b.length&&d.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=
+mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",
+mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph()}this.init();d.standalone||this.open()};mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;
+EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"!=urlParams["shape-picker"]&&this.installShapePicker();mxEvent.addListener(a.container,"scroll",mxUtils.bind(this,function(){a.tooltipHandler.hide();null!=a.connectionHandler&&null!=a.connectionHandler.constraintHandler&&a.connectionHandler.constraintHandler.reset()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){a.tooltipHandler.hide();var b=a.getRubberband();null!=b&&b.cancel()}));mxEvent.addListener(a.container,
"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));var b=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){b.apply(this,
arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};
EditorUi.prototype.installShapePicker=function(){var a=this.editor.graph,b=this;a.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){"mouseDown"==d.getProperty("eventName")&&b.hideShapePicker()}));a.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){b.hideShapePicker(!0)}));var e=
-a.popupMenuHandler.isMenuShowing;a.popupMenuHandler.isMenuShowing=function(){return e.apply(this,arguments)||null!=b.shapePicker};var d=a.dblClick;a.dblClick=function(a,e){if(this.isEnabled())if(null!=e||null==b.sidebar||mxEvent.isShiftDown(a))d.apply(this,arguments);else{mxEvent.consume(a);var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(c.x,c.y)}),30)}};if(null!=this.hoverIcons){var n=this.hoverIcons.drag;
-this.hoverIcons.drag=function(){b.hideShapePicker();n.apply(this,arguments)};var l=this.hoverIcons.execute;this.hoverIcons.execute=function(d,e,c){var f=c.getEvent();this.graph.isCloneEvent(f)||mxEvent.isShiftDown(f)?l.apply(this,arguments):this.graph.connectVertex(d.cell,e,this.graph.defaultEdgeLength,f,null,null,mxUtils.bind(this,function(f,m,k){var g=a.getCompositeParent(d.cell);f=a.getCellGeometry(g);for(c.consume();null!=g&&a.model.isVertex(g)&&null!=f&&f.relative;)cell=g,g=a.model.getParent(cell),
-f=a.getCellGeometry(g);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(c.getGraphX(),c.getGraphY(),g,mxUtils.bind(this,function(a){k(a)}),e)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,f,this)}))}}};
-EditorUi.prototype.showShapePicker=function(a,b,e,d,n){a=this.createShapePicker(a,b,e,d,n,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(e));null!=a&&(null!=this.hoverIcons&&this.hoverIcons.reset(),b=this.editor.graph,b.popupMenuHandler.hideMenu(),b.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=d,this.shapePicker=a)};
-EditorUi.prototype.createShapePicker=function(a,b,e,d,n,l,t){var q=null;if(null!=t&&0<t.length){var c=this,f=this.editor.graph,q=document.createElement("div");n=f.view.getState(e);var g=null==e||null!=n&&f.isTransparentState(n)?null:f.copyStyle(e);e=6>t.length?35*t.length:140;q.className="geToolbarContainer geSidebarContainer geSidebar";q.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;";
-mxUtils.setPrefixedStyle(q.style,"transform","translate(-22px,-22px)");null!=f.background&&f.background!=mxConstants.NONE&&(q.style.backgroundColor=f.background);f.container.appendChild(q);e=mxUtils.bind(this,function(e){var k=document.createElement("a");k.className="geItem";k.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";q.appendChild(k);null!=g&&"1"!=urlParams.sketch?this.sidebar.graph.pasteStyle(g,
-[e]):c.insertHandler([e],""!=e.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([e],25,25,k,null,!0,!1,e.geometry.width,e.geometry.height);mxEvent.addListener(k,"click",function(){var g=f.cloneCell(e);if(null!=d)d(g);else{g.geometry.x=f.snap(Math.round(a/f.view.scale)-f.view.translate.x-e.geometry.width/2);g.geometry.y=f.snap(Math.round(b/f.view.scale)-f.view.translate.y-e.geometry.height/2);f.model.beginUpdate();try{f.addCell(g)}finally{f.model.endUpdate()}f.setSelectionCell(g);
-f.scrollCellToVisible(g);f.startEditingAtCell(g);null!=c.hoverIcons&&c.hoverIcons.update(f.view.getState(g))}null!=l&&l()})});for(n=0;n<t.length;n++)e(t[n])}return q};
-EditorUi.prototype.getCellsForShapePicker=function(a){var b=mxUtils.bind(this,function(a,b,n,l){return this.editor.graph.createVertex(null,null,l||"",0,0,b||120,n||60,a,!1)});return[null!=a?this.editor.graph.cloneCell(a):b("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text"),b("whiteSpace=wrap;html=1;"),b("rounded=1;whiteSpace=wrap;html=1;"),b("ellipse;whiteSpace=wrap;html=1;"),b("rhombus;whiteSpace=wrap;html=1;",80,80),b("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),
+a.popupMenuHandler.isMenuShowing;a.popupMenuHandler.isMenuShowing=function(){return e.apply(this,arguments)||null!=b.shapePicker};var d=a.dblClick;a.dblClick=function(a,e){if(this.isEnabled())if(null!=e||null==b.sidebar||mxEvent.isShiftDown(a))d.apply(this,arguments);else{mxEvent.consume(a);var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(c.x,c.y)}),30)}};if(null!=this.hoverIcons){var l=this.hoverIcons.drag;
+this.hoverIcons.drag=function(){b.hideShapePicker();l.apply(this,arguments)};var m=this.hoverIcons.execute;this.hoverIcons.execute=function(d,e,c){var f=c.getEvent();this.graph.isCloneEvent(f)||mxEvent.isShiftDown(f)?m.apply(this,arguments):this.graph.connectVertex(d.cell,e,this.graph.defaultEdgeLength,f,null,null,mxUtils.bind(this,function(f,k,p){var g=a.getCompositeParent(d.cell);f=a.getCellGeometry(g);for(c.consume();null!=g&&a.model.isVertex(g)&&null!=f&&f.relative;)cell=g,g=a.model.getParent(cell),
+f=a.getCellGeometry(g);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(c.getGraphX(),c.getGraphY(),g,mxUtils.bind(this,function(a){p(a)}),e)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,f,this)}))}}};
+EditorUi.prototype.showShapePicker=function(a,b,e,d,l){a=this.createShapePicker(a,b,e,d,l,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(e));null!=a&&(null!=this.hoverIcons&&this.hoverIcons.reset(),b=this.editor.graph,b.popupMenuHandler.hideMenu(),b.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=d,this.shapePicker=a)};
+EditorUi.prototype.createShapePicker=function(a,b,e,d,l,m,u){var q=null;if(null!=u&&0<u.length){var c=this,f=this.editor.graph,q=document.createElement("div");l=f.view.getState(e);var g=null==e||null!=l&&f.isTransparentState(l)?null:f.copyStyle(e);e=6>u.length?35*u.length:140;q.className="geToolbarContainer geSidebarContainer geSidebar";q.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;";
+mxUtils.setPrefixedStyle(q.style,"transform","translate(-22px,-22px)");null!=f.background&&f.background!=mxConstants.NONE&&(q.style.backgroundColor=f.background);f.container.appendChild(q);e=mxUtils.bind(this,function(e){var p=document.createElement("a");p.className="geItem";p.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";q.appendChild(p);null!=g&&"1"!=urlParams.sketch?this.sidebar.graph.pasteStyle(g,
+[e]):c.insertHandler([e],""!=e.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([e],25,25,p,null,!0,!1,e.geometry.width,e.geometry.height);mxEvent.addListener(p,"click",function(){var g=f.cloneCell(e);if(null!=d)d(g);else{g.geometry.x=f.snap(Math.round(a/f.view.scale)-f.view.translate.x-e.geometry.width/2);g.geometry.y=f.snap(Math.round(b/f.view.scale)-f.view.translate.y-e.geometry.height/2);f.model.beginUpdate();try{f.addCell(g)}finally{f.model.endUpdate()}f.setSelectionCell(g);
+f.scrollCellToVisible(g);f.startEditingAtCell(g);null!=c.hoverIcons&&c.hoverIcons.update(f.view.getState(g))}null!=m&&m()})});for(l=0;l<u.length;l++)e(u[l])}return q};
+EditorUi.prototype.getCellsForShapePicker=function(a){var b=mxUtils.bind(this,function(a,b,l,m){return this.editor.graph.createVertex(null,null,m||"",0,0,b||120,l||60,a,!1)});return[null!=a?this.editor.graph.cloneCell(a):b("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",40,20,"Text"),b("whiteSpace=wrap;html=1;"),b("rounded=1;whiteSpace=wrap;html=1;"),b("ellipse;whiteSpace=wrap;html=1;"),b("rhombus;whiteSpace=wrap;html=1;",80,80),b("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),
b("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60),b("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80),b("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;"),b("triangle;whiteSpace=wrap;html=1;",60,80),b("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80),b("shape=tape;whiteSpace=wrap;html=1;",120,100),b("ellipse;shape=cloud;whiteSpace=wrap;html=1;",
120,80),b("shape=cylinder;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;",60,80),b("shape=callout;rounded=1;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;",120,80),b("shape=doubleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.3;"),b("shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;",80,60),b("shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;flipH=1;",80,60),b("shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;",
40,40)]};EditorUi.prototype.hideShapePicker=function(a){null!=this.shapePicker&&(this.shapePicker.parentNode.removeChild(this.shapePicker),this.shapePicker=null,a||null==this.shapePickerCallback||this.shapePickerCallback(),this.shapePickerCallback=null)};EditorUi.prototype.onKeyDown=function(a){var b=this.editor.graph;9!=a.which||!b.isEnabled()||mxEvent.isAltDown(a)||b.isEditing()&&mxEvent.isShiftDown(a)||(b.isEditing()?b.stopEditing(!1):b.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))};
@@ -2169,48 +2170,48 @@ EditorUi.prototype.getCssClassForMarker=function(a,b,e,d){return"flexArrow"==b?n
e==mxConstants.ARROW_DIAMOND_THIN?"1"==d?"geSprite geSprite-"+a+"thindiamond":"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==d?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==d||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==
e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,b=this.actions.get("paste"),e=this.actions.get("pasteHere");b.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(b.isEnabled())};
-EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(d){d.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(b){var d=null;if(b.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var d=d||b.getSelectionCells(),d=b.getExportableCells(b.model.getTopmostCells(d)),e={},c=b.createCellLookup(d),f=b.cloneCells(d,null,e),g=new mxGraphModel,m=g.getChildAt(g.getRoot(),
-0),k=0;k<f.length;k++){g.add(m,f[k]);var p=b.view.getState(d[k]);if(null!=p){var u=b.getCellGeometry(f[k]);null!=u&&u.relative&&!g.isEdge(d[k])&&null==c[mxObjectIdentity.get(g.getParent(d[k]))]&&(u.offset=null,u.relative=!1,u.x=p.x/p.view.scale-p.view.translate.x,u.y=p.y/p.view.scale-p.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(e,c),f);mxClipboard.insertCount=1;mxClipboard.setCells(f)}a.updatePasteActionStates();return d};var e=mxClipboard.paste;mxClipboard.paste=function(b){var d=
-null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):d=e.apply(this,arguments);a.updatePasteActionStates();return d};var d=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){d.apply(this,arguments);a.updatePasteActionStates()};var n=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,d){n.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
+EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(d){d.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};mxClipboard.copy=function(b){var d=null;if(b.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var d=d||b.getSelectionCells(),d=b.getExportableCells(b.model.getTopmostCells(d)),e={},c=b.createCellLookup(d),f=b.cloneCells(d,null,e),g=new mxGraphModel,k=g.getChildAt(g.getRoot(),
+0),p=0;p<f.length;p++){g.add(k,f[p]);var t=b.view.getState(d[p]);if(null!=t){var v=b.getCellGeometry(f[p]);null!=v&&v.relative&&!g.isEdge(d[p])&&null==c[mxObjectIdentity.get(g.getParent(d[p]))]&&(v.offset=null,v.relative=!1,v.x=t.x/t.view.scale-t.view.translate.x,v.y=t.y/t.view.scale-t.view.translate.y)}}b.updateCustomLinks(b.createCellMapping(e,c),f);mxClipboard.insertCount=1;mxClipboard.setCells(f)}a.updatePasteActionStates();return d};var e=mxClipboard.paste;mxClipboard.paste=function(b){var d=
+null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):d=e.apply(this,arguments);a.updatePasteActionStates();return d};var d=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){d.apply(this,arguments);a.updatePasteActionStates()};var l=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,d){l.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),c=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*c.width),this.scale*(this.translate.y+a.y*c.height),this.scale*a.width*c.width,
-this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,d,f){if(null!=a.container&&!a.isViewer()){d=null!=d?d:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),k=a.view.translate,x=a.view.scale,m=mxRectangle.fromRectangle(g);
-m.x=m.x/x-k.x;m.y=m.y/x-k.y;m.width/=x;m.height/=x;var k=a.container.scrollTop,p=a.container.scrollLeft,u=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)u+=3;var C=a.container.offsetWidth-u,u=a.container.offsetHeight-u;c=c?Math.max(.3,Math.min(b||1,C/m.width)):x;b=(C-c*m.width)/2/c;var l=0==this.lightboxVerticalDivider?0:(u-c*m.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),l=Math.max(l,0));if(e||g.width<C||g.height<u)a.view.scaleAndTranslate(c,Math.floor(b-
-m.x),Math.floor(l-m.y)),a.container.scrollTop=k*c/x,a.container.scrollLeft=p*c/x;else if(0!=d||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/x),Math.floor(g.y+f/x))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
-function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var n=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
-"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var l=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top=
-"0":this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",l);l();var t=0,l=mxUtils.bind(this,function(a,c,b){t++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=b&&d.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");
-a.setAttribute("src",c);d.appendChild(a);this.chromelessToolbar.appendChild(d);return d});null!=n.backBtn&&l(mxUtils.bind(this,function(a){window.location.href=n.backBtn.url;mxEvent.consume(a)}),Editor.backLargeImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var q=l(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),c=document.createElement("div");c.style.display="inline-block";
-c.style.verticalAlign="top";c.style.fontFamily="Helvetica,Arial";c.style.marginTop="8px";c.style.fontSize="14px";c.style.color="#ffffff";this.chromelessToolbar.appendChild(c);var f=l(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),g=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(c.innerHTML="",mxUtils.write(c,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+
-this.pages.length))});q.style.paddingLeft="0px";q.style.paddingRight="4px";f.style.paddingLeft="4px";f.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(f.style.display="",q.style.display="",c.style.display="inline-block"):(f.style.display="none",q.style.display="none",c.style.display="none");g()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",g)}l(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
-mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");l(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");l(mxUtils.bind(this,function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var k=null,p=null,u=mxUtils.bind(this,
-function(a){null!=k&&(window.clearTimeout(k),k=null);null!=p&&(window.clearTimeout(p),p=null);k=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);k=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";p=null}),600)}),a||200)}),A=mxUtils.bind(this,function(a){null!=k&&(window.clearTimeout(k),k=null);null!=p&&(window.clearTimeout(p),p=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
-a||30)});if("1"==urlParams.layers){this.layersDialog=null;var F=l(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=F.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius",
+this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,d,f){if(null!=a.container&&!a.isViewer()){d=null!=d?d:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),p=a.view.translate,n=a.view.scale,k=mxRectangle.fromRectangle(g);
+k.x=k.x/n-p.x;k.y=k.y/n-p.y;k.width/=n;k.height/=n;var p=a.container.scrollTop,t=a.container.scrollLeft,v=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)v+=3;var C=a.container.offsetWidth-v,v=a.container.offsetHeight-v;c=c?Math.max(.3,Math.min(b||1,C/k.width)):n;b=(C-c*k.width)/2/c;var m=0==this.lightboxVerticalDivider?0:(v-c*k.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),m=Math.max(m,0));if(e||g.width<C||g.height<v)a.view.scaleAndTranslate(c,Math.floor(b-
+k.x),Math.floor(m-k.y)),a.container.scrollTop=p*c/n,a.container.scrollLeft=t*c/n;else if(0!=d||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/n),Math.floor(g.y+f/n))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var l=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
+"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var m=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);a.isViewer()?this.chromelessToolbar.style.top=
+"0":this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",m);m();var u=0,m=mxUtils.bind(this,function(a,c,b){u++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=b&&d.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");
+a.setAttribute("src",c);d.appendChild(a);this.chromelessToolbar.appendChild(d);return d});null!=l.backBtn&&m(mxUtils.bind(this,function(a){window.location.href=l.backBtn.url;mxEvent.consume(a)}),Editor.backLargeImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var q=m(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),c=document.createElement("div");c.style.display="inline-block";
+c.style.verticalAlign="top";c.style.fontFamily="Helvetica,Arial";c.style.marginTop="8px";c.style.fontSize="14px";c.style.color="#ffffff";this.chromelessToolbar.appendChild(c);var f=m(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")),g=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(c.innerHTML="",mxUtils.write(c,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+
+this.pages.length))});q.style.paddingLeft="0px";q.style.paddingRight="4px";f.style.paddingLeft="4px";f.style.paddingRight="0px";var k=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(f.style.display="",q.style.display="",c.style.display="inline-block"):(f.style.display="none",q.style.display="none",c.style.display="none");g()});this.editor.addListener("resetGraphView",k);this.editor.addListener("pageSelected",g)}m(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();
+mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");m(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");m(mxUtils.bind(this,function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var p=null,t=null,v=mxUtils.bind(this,
+function(a){null!=p&&(window.clearTimeout(p),p=null);null!=t&&(window.clearTimeout(t),t=null);p=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);p=null;t=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";t=null}),600)}),a||200)}),A=mxUtils.bind(this,function(a){null!=p&&(window.clearTimeout(p),p=null);null!=t&&(window.clearTimeout(t),t=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,
+a||30)});if("1"==urlParams.layers){this.layersDialog=null;var F=m(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=F.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius",
"5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);
-this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),z=a.getModel();z.addListener(mxEvent.CHANGE,function(){F.style.display=1<z.getChildCount(z.root)?"":"none"})}"1"!=urlParams.openInSameWin&&this.addChromelessToolbarItems(l);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||l(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==
-this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(m=0;m<this.lightboxToolbarActions.length;m++){var y=this.lightboxToolbarActions[m];l(y.fn,y.icon,y.tooltip)}null!=n.refreshBtn&&l(mxUtils.bind(this,function(a){n.refreshBtn.url?window.location.href=n.refreshBtn.url:window.location.reload();mxEvent.consume(a)}),Editor.refreshLargeImage,
-mxResources.get("refresh",null,"Refresh"));null!=n.fullscreenBtn&&window.self!==window.top&&l(mxUtils.bind(this,function(c){n.fullscreenBtn.url?a.openLink(n.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(c)}),Editor.fullscreenLargeImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(n.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&l(mxUtils.bind(this,function(a){"1"==urlParams.close||n.closeBtn?window.close():
-(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||A(30),u())}));mxEvent.addListener(this.chromelessToolbar,
-mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?u():A(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?u():A(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||A(30)}));var M=a.getTolerance();a.addMouseListener({startX:0,
-startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<M&&Math.abs(this.scrollTop-a.container.scrollTop)<M&&Math.abs(this.startX-b.getGraphX())<M&&Math.abs(this.startY-b.getGraphY())<M&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?
-u():A(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var L=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=a.y-(this.y0||0)*c.height}L.apply(this,arguments)};if(!a.isViewer()){var I=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=
-this.getPageLayout(),b=this.getPagePadding(),d=this.getPageSize(),f=Math.ceil(2*b.x+c.width*d.width),g=Math.ceil(2*b.y+c.height*d.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-c.x*d.width;b=b.y-c.y*d.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==b?I.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=
-Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((b-d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var G=a.view.getBackgroundPane(),K=a.view.getDrawPane();a.cumulativeZoomFactor=1;var E=null,J=null,H=null,X=null,Q=null,x=function(c){null!=E&&window.clearTimeout(E);window.setTimeout(function(){if(!a.isMouseDown||X)E=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
-null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),K.style.transformOrigin="",G.style.transformOrigin="",mxClient.IS_SF?(K.style.transform="scale(1)",G.style.transform="scale(1)",window.setTimeout(function(){K.style.transform="";G.style.transform=""},0)):(K.style.transform="",G.style.transform=""),a.view.getDecoratorPane().style.opacity="",
-a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),d=mxUtils.getOffset(a.container),f=a.view.scale,g=0,k=0;null!=J&&(g=a.container.offsetWidth/2-J.x+d.x,k=a.container.offsetHeight/2-J.y+d.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=f&&(null!=H&&(g+=c.x-H.x,k+=c.y-H.y),null!=b&&e.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),k*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==k||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
-1),a.container.scrollTop-=k*(a.cumulativeZoomFactor-1)));null!=Q&&K.setAttribute("filter",Q);a.cumulativeZoomFactor=1;Q=X=J=H=E=null}),null!=c?c:a.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},B=Date.now();a.lazyZoom=function(c,b,d){(b=b||!a.scrollbars)&&(J=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(!(15>Date.now()-B)){B=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+
+this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),y=a.getModel();y.addListener(mxEvent.CHANGE,function(){F.style.display=1<y.getChildCount(y.root)?"":"none"})}"1"!=urlParams.openInSameWin&&this.addChromelessToolbarItems(m);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||m(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==
+this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(k=0;k<this.lightboxToolbarActions.length;k++){var z=this.lightboxToolbarActions[k];m(z.fn,z.icon,z.tooltip)}null!=l.refreshBtn&&m(mxUtils.bind(this,function(a){l.refreshBtn.url?window.location.href=l.refreshBtn.url:window.location.reload();mxEvent.consume(a)}),Editor.refreshLargeImage,
+mxResources.get("refresh",null,"Refresh"));null!=l.fullscreenBtn&&window.self!==window.top&&m(mxUtils.bind(this,function(c){l.fullscreenBtn.url?a.openLink(l.fullscreenBtn.url):a.openLink(window.location.href);mxEvent.consume(c)}),Editor.fullscreenLargeImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(l.closeBtn&&window.self===window.top||a.lightbox&&("1"==urlParams.close||this.container!=document.body))&&m(mxUtils.bind(this,function(a){"1"==urlParams.close||l.closeBtn?window.close():
+(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";a.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||A(30),v())}));mxEvent.addListener(this.chromelessToolbar,
+mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?v():A(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?v():A(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||A(30)}));var L=a.getTolerance();a.addMouseListener({startX:0,
+startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<L&&Math.abs(this.scrollTop-a.container.scrollTop)<L&&Math.abs(this.startX-b.getGraphX())<L&&Math.abs(this.startY-b.getGraphY())<L&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?
+v():A(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var M=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=a.y-(this.y0||0)*c.height}M.apply(this,arguments)};if(!a.isViewer()){var G=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=
+this.getPageLayout(),b=this.getPagePadding(),d=this.getPageSize(),f=Math.ceil(2*b.x+c.width*d.width),g=Math.ceil(2*b.y+c.height*d.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-c.x*d.width;b=b.y-c.y*d.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==b?G.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=
+Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((b-d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var J=a.view.getBackgroundPane(),H=a.view.getDrawPane();a.cumulativeZoomFactor=1;var D=null,K=null,I=null,R=null,N=null,n=function(c){null!=D&&window.clearTimeout(D);window.setTimeout(function(){if(!a.isMouseDown||R)D=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&
+null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform-origin",null),mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,"transform",null)),H.style.transformOrigin="",J.style.transformOrigin="",mxClient.IS_SF?(H.style.transform="scale(1)",J.style.transform="scale(1)",window.setTimeout(function(){H.style.transform="";J.style.transform=""},0)):(H.style.transform="",J.style.transform=""),a.view.getDecoratorPane().style.opacity="",
+a.view.getOverlayPane().style.opacity="");var c=new mxPoint(a.container.scrollLeft,a.container.scrollTop),d=mxUtils.getOffset(a.container),f=a.view.scale,g=0,p=0;null!=K&&(g=a.container.offsetWidth/2-K.x+d.x,p=a.container.offsetHeight/2-K.y+d.y);a.zoom(a.cumulativeZoomFactor);a.view.scale!=f&&(null!=I&&(g+=c.x-I.x,p+=c.y-I.y),null!=b&&e.chromelessResize(!1,null,g*(a.cumulativeZoomFactor-1),p*(a.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==g&&0==p||(a.container.scrollLeft-=g*(a.cumulativeZoomFactor-
+1),a.container.scrollTop-=p*(a.cumulativeZoomFactor-1)));null!=N&&H.setAttribute("filter",N);a.cumulativeZoomFactor=1;N=R=K=I=D=null}),null!=c?c:a.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},B=Date.now();a.lazyZoom=function(c,b,d){(b=b||!a.scrollbars)&&(K=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));if(!(15>Date.now()-B)){B=Date.now();c?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+
.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,
-160))/this.view.scale;if(a.isFastZoomEnabled()){null==Q&&""!=K.getAttribute("filter")&&(Q=K.getAttribute("filter"),K.removeAttribute("filter"));H=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=b?a.container.scrollLeft+a.container.clientWidth/2:J.x+a.container.scrollLeft-a.container.offsetLeft;var f=b?a.container.scrollTop+a.container.clientHeight/2:J.y+a.container.scrollTop-a.container.offsetTop;K.style.transformOrigin=c+"px "+f+"px";K.style.transform="scale("+this.cumulativeZoomFactor+
-")";G.style.transformOrigin=c+"px "+f+"px";G.style.transform="scale("+this.cumulativeZoomFactor+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(c=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(c.style,"transform-origin",(b?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":J.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(b?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":J.y+a.container.scrollTop-c.offsetTop-
-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(c.style,"transform","scale("+this.cumulativeZoomFactor+")"));a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset()}x(d)}};mxEvent.addGestureListeners(a.container,function(a){null!=E&&window.clearTimeout(E)},null,function(c){1!=a.cumulativeZoomFactor&&x(0)});mxEvent.addListener(a.container,"scroll",function(c){null==E||a.isMouseDown||1==a.cumulativeZoomFactor||x(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,
-function(c,b,d,f,g){if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!d&&a.isScrollWheelEvent(c))d=a.view.getTranslate(),f=40/a.view.scale,mxEvent.isShiftDown(c)?a.view.setTranslate(d.x+(b?-f:f),d.y):a.view.setTranslate(d.x,d.y+(b?f:-f));else if(d||a.isZoomWheelEvent(c))for(var e=mxEvent.getSource(c);null!=e;){if(e==a.container)return a.tooltipHandler.hideTooltip(),J=null!=f&&null!=g?new mxPoint(f,g):new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c)),X=d,a.lazyZoom(b),mxEvent.consume(c),
+160))/this.view.scale;if(a.isFastZoomEnabled()){null==N&&""!=H.getAttribute("filter")&&(N=H.getAttribute("filter"),H.removeAttribute("filter"));I=new mxPoint(a.container.scrollLeft,a.container.scrollTop);c=b?a.container.scrollLeft+a.container.clientWidth/2:K.x+a.container.scrollLeft-a.container.offsetLeft;var f=b?a.container.scrollTop+a.container.clientHeight/2:K.y+a.container.scrollTop-a.container.offsetTop;H.style.transformOrigin=c+"px "+f+"px";H.style.transform="scale("+this.cumulativeZoomFactor+
+")";J.style.transformOrigin=c+"px "+f+"px";J.style.transform="scale("+this.cumulativeZoomFactor+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(c=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(c.style,"transform-origin",(b?a.container.clientWidth/2+a.container.scrollLeft-c.offsetLeft+"px":K.x+a.container.scrollLeft-c.offsetLeft-a.container.offsetLeft+"px")+" "+(b?a.container.clientHeight/2+a.container.scrollTop-c.offsetTop+"px":K.y+a.container.scrollTop-c.offsetTop-
+a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(c.style,"transform","scale("+this.cumulativeZoomFactor+")"));a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset()}n(d)}};mxEvent.addGestureListeners(a.container,function(a){null!=D&&window.clearTimeout(D)},null,function(c){1!=a.cumulativeZoomFactor&&n(0)});mxEvent.addListener(a.container,"scroll",function(c){null==D||a.isMouseDown||1==a.cumulativeZoomFactor||n(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,
+function(c,b,d,f,g){if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!d&&a.isScrollWheelEvent(c))d=a.view.getTranslate(),f=40/a.view.scale,mxEvent.isShiftDown(c)?a.view.setTranslate(d.x+(b?-f:f),d.y):a.view.setTranslate(d.x,d.y+(b?f:-f));else if(d||a.isZoomWheelEvent(c))for(var e=mxEvent.getSource(c);null!=e;){if(e==a.container)return a.tooltipHandler.hideTooltip(),K=null!=f&&null!=g?new mxPoint(f,g):new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c)),R=d,a.lazyZoom(b),mxEvent.consume(c),
!1;e=e.parentNode}}),a.container);a.panningHandler.zoomGraph=function(c){a.cumulativeZoomFactor=c.scale;a.lazyZoom(0<c.scale,!0);mxEvent.consume(c)}};EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))};EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};
EditorUi.prototype.createTemporaryGraph=function(a){var b=new Graph(document.createElement("div"));b.stylesheet.styles=mxUtils.clone(a.styles);b.resetViewOnRootChange=!1;b.setConnectable(!1);b.gridEnabled=!1;b.autoScroll=!1;b.setTooltips(!1);b.setEnabled(!1);b.container.style.visibility="hidden";b.container.style.position="absolute";b.container.style.overflow="hidden";b.container.style.height="1px";b.container.style.width="1px";return b};
EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){a=null!=a?a:0==this.formatWidth;null!=this.format&&(this.formatWidth=a?240:0,this.formatContainer.style.display=a?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,e=60;null!=b&&(e=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};
EditorUi.prototype.isSelectionAllowed=function(a){return"SELECT"==mxEvent.getSource(a).nodeName||"INPUT"==mxEvent.getSource(a).nodeName&&mxUtils.isAncestorNode(this.formatContainer,mxEvent.getSource(a))};EditorUi.prototype.addBeforeUnloadListener=function(){window.onbeforeunload=mxUtils.bind(this,function(){if(!this.editor.isChromelessView())return this.onBeforeUnload()})};EditorUi.prototype.onBeforeUnload=function(){if(this.editor.modified)return mxResources.get("allChangesLost")};
EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=b&&(this.editor.setFilename(b),this.updateDocumentTitle())}catch(d){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+d.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange();
-this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.showPopupMenu=function(a,b,e,d){this.editor.graph.popupMenuHandler.hideMenu();var n=new mxPopupMenu(a);n.div.className+=" geMenubarMenu";n.smartSeparators=!0;n.showDisabled=!0;n.autoExpand=!0;n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments);n.destroy()});n.popup(b,e,null,d);this.setCurrentMenu(n)};
+this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.showPopupMenu=function(a,b,e,d){this.editor.graph.popupMenuHandler.hideMenu();var l=new mxPopupMenu(a);l.div.className+=" geMenubarMenu";l.smartSeparators=!0;l.showDisabled=!0;l.autoExpand=!0;l.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(l,arguments);l.destroy()});l.popup(b,e,null,d);this.setCurrentMenu(l)};
EditorUi.prototype.setCurrentMenu=function(a,b){this.currentMenuElt=b;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())};EditorUi.prototype.updateDocumentTitle=function(){var a=this.editor.getOrCreateFilename();null!=this.editor.appName&&(a+=" - "+this.editor.appName);document.title=a};
EditorUi.prototype.createHoverIcons=function(){return new HoverIcons(this.editor.graph)};EditorUi.prototype.redo=function(){try{this.editor.graph.isEditing()?document.execCommand("redo",!1,null):this.editor.undoManager.redo()}catch(a){}};EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var b=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);b==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};
EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()};EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==b?a+"?":a+"&",a+=e+"="+urlParams[e],b++;return a};
@@ -2218,27 +2219,27 @@ EditorUi.prototype.setScrollbars=function(a){var b=this.editor.graph,e=b.contain
EditorUi.prototype.resetScrollbars=function(){var a=this.editor.graph;if(!this.editor.extendCanvas)a.container.scrollTop=0,a.container.scrollLeft=0,mxUtils.hasScrollbars(a.container)||a.view.setTranslate(0,0);else if(!this.editor.isChromelessView())if(mxUtils.hasScrollbars(a.container))if(a.pageVisible){var b=a.getPagePadding();a.container.scrollTop=Math.floor(b.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(b.x,(a.container.scrollWidth-a.container.clientWidth)/2))-
1;b=a.getGraphBounds();0<b.width&&0<b.height&&(b.x>a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(b.x+b.width-a.container.clientWidth,b.x-10)),b.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(b.y+b.height-a.container.clientHeight,b.y-10)))}else{var b=a.getGraphBounds(),e=Math.max(b.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,b.y-Math.max(20,(a.container.clientHeight-Math.max(b.height,
a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,b.x-Math.max(0,(a.container.clientWidth-e)/2)))}else{var b=mxRectangle.fromRectangle(a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds()),e=a.view.translate,d=a.view.scale;b.x=b.x/d-e.x;b.y=b.y/d-e.y;b.width/=d;b.height/=d;a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-b.width)/2)-b.x+2),Math.floor((a.pageVisible?0:Math.max(0,(a.container.clientHeight-b.height)/4))-b.y+1))}};
-EditorUi.prototype.setPageVisible=function(a){var b=this.editor.graph,e=mxUtils.hasScrollbars(b.container),d=0,n=0;e&&(d=b.view.translate.x*b.view.scale-b.container.scrollLeft,n=b.view.translate.y*b.view.scale-b.container.scrollTop);b.pageVisible=a;b.pageBreaksVisible=a;b.preferPageSize=a;b.view.validateBackground();e&&(a=b.getSelectionCells(),b.clearSelection(),b.setSelectionCells(a));b.sizeDidChange();e&&(b.container.scrollLeft=b.view.translate.x*b.view.scale-d,b.container.scrollTop=b.view.translate.y*
-b.view.scale-n);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangeGridColor(a,b){this.ui=a;this.color=b}ChangeGridColor.prototype.execute=function(){var a=this.ui.editor.graph.view.gridColor;this.ui.setGridColor(this.color);this.color=a};(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);mxCodecRegistry.register(a)})();
-function ChangePageSetup(a,b,e,d,n){this.ui=a;this.previousColor=this.color=b;this.previousImage=this.image=e;this.previousFormat=this.format=d;this.previousPageScale=this.pageScale=n;this.ignoreImage=this.ignoreColor=!1}
+EditorUi.prototype.setPageVisible=function(a){var b=this.editor.graph,e=mxUtils.hasScrollbars(b.container),d=0,l=0;e&&(d=b.view.translate.x*b.view.scale-b.container.scrollLeft,l=b.view.translate.y*b.view.scale-b.container.scrollTop);b.pageVisible=a;b.pageBreaksVisible=a;b.preferPageSize=a;b.view.validateBackground();e&&(a=b.getSelectionCells(),b.clearSelection(),b.setSelectionCells(a));b.sizeDidChange();e&&(b.container.scrollLeft=b.view.translate.x*b.view.scale-d,b.container.scrollTop=b.view.translate.y*
+b.view.scale-l);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangeGridColor(a,b){this.ui=a;this.color=b}ChangeGridColor.prototype.execute=function(){var a=this.ui.editor.graph.view.gridColor;this.ui.setGridColor(this.color);this.color=a};(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);mxCodecRegistry.register(a)})();
+function ChangePageSetup(a,b,e,d,l){this.ui=a;this.previousColor=this.color=b;this.previousImage=this.image=e;this.previousFormat=this.format=d;this.previousPageScale=this.pageScale=l;this.ignoreImage=this.ignoreColor=!1}
ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var b=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=b}this.ignoreImage||(this.image=this.previousImage,b=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=b);null!=this.previousFormat&&(this.format=this.previousFormat,b=a.pageFormat,this.previousFormat.width!=b.width||this.previousFormat.height!=b.height)&&(this.ui.setPageFormat(this.previousFormat),
this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled);null!=this.previousPageScale&&(a=this.ui.editor.graph.pageScale,this.previousPageScale!=a&&(this.ui.setPageScale(this.previousPageScale),this.previousPageScale=a))};
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat","previousPageScale"]);a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;d.previousPageScale=d.pageScale;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);return d};mxCodecRegistry.register(a)})();EditorUi.prototype.setBackgroundColor=function(a){this.editor.graph.background=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};
EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageFormatChanged"))};
EditorUi.prototype.setPageScale=function(a){this.editor.graph.pageScale=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))};EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
-EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var n=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){n.apply(this,arguments);d()};var l=this.editor.graph.cellEditor.stopEditing;
-this.editor.graph.cellEditor.stopEditing=function(a,b){l.apply(this,arguments);d()};d()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,d=!1,n=!1,l=a.getSelectionCells();if(null!=l)for(var t=0;t<l.length;t++){var q=l[t];a.getModel().isEdge(q)&&(n=!0);a.getModel().isVertex(q)&&(e=!0,0<a.getModel().getChildCount(q)||a.isContainer(q))&&(d=!0);if(n&&e)break}l="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(t=
-0;t<l.length;t++)this.actions.get(l[t]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(n);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);n=e&&1==
-a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||n&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(d);this.actions.get("removeFromGroup").setEnabled(n&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));
+EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var l=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){l.apply(this,arguments);d()};var m=this.editor.graph.cellEditor.stopEditing;
+this.editor.graph.cellEditor.stopEditing=function(a,b){m.apply(this,arguments);d()};d()};
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,d=!1,l=!1,m=a.getSelectionCells();if(null!=m)for(var u=0;u<m.length;u++){var q=m[u];a.getModel().isEdge(q)&&(l=!0);a.getModel().isVertex(q)&&(e=!0,0<a.getModel().getChildCount(q)||a.isContainer(q))&&(d=!0);if(l&&e)break}m="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(u=
+0;u<m.length;u++)this.actions.get(m[u]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(l);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);l=e&&1==
+a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||l&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(d);this.actions.get("removeFromGroup").setEnabled(l&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));
this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));b=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(b);this.actions.get("collapse").setEnabled(b);this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==a.getSelectionCount()&&
null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);b=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(b);this.menus.get("insert").setEnabled(b);this.menus.get("direction").setEnabled(b&&e);this.menus.get("align").setEnabled(b&&e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(b&&e&&1<a.getSelectionCount());this.actions.get("selectVertices").setEnabled(b);
this.actions.get("selectEdges").setEnabled(b);this.actions.get("selectAll").setEnabled(b);this.actions.get("selectNone").setEnabled(b);this.updatePasteActionStates()};EditorUi.prototype.zeroOffset=new mxPoint(0,0);EditorUi.prototype.getDiagramContainerOffset=function(){return this.zeroOffset};
-EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var b=this.container.clientWidth,e=this.container.clientHeight;this.container==document.body&&(b=document.body.clientWidth||document.documentElement.clientWidth,e=document.documentElement.clientHeight);var d=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&(d=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var n=Math.max(0,Math.min(this.hsplitPosition,b-this.splitSize-
-20)),l=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",l+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",l+=this.toolbarHeight);0<l&&(l+=1);b=0;if(null!=this.sidebarFooterContainer){var t=this.footerHeight+d,b=Math.max(0,Math.min(e-l-t,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=n+"px";this.sidebarFooterContainer.style.height=b+"px";
-this.sidebarFooterContainer.style.bottom=t+"px"}e=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=l+"px";this.sidebarContainer.style.width=n+"px";this.formatContainer.style.top=l+"px";this.formatContainer.style.width=e+"px";this.formatContainer.style.display=null!=this.format?"":"none";var t=this.getDiagramContainerOffset(),q=null!=this.hsplit.parentNode?n+this.splitSize:0;this.diagramContainer.style.left=q+t.x+"px";this.diagramContainer.style.top=l+t.y+"px";this.footerContainer.style.height=
-this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+d+"px";this.hsplit.style.left=n+"px";this.footerContainer.style.display=0==this.footerHeight?"none":"";null!=this.tabContainer&&(this.tabContainer.style.left=q+"px");0<this.footerHeight&&(this.footerContainer.style.bottom=d+"px");this.diagramContainer.style.right=e+"px";n=0;null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+d+"px",this.tabContainer.style.right=
-this.diagramContainer.style.right,n=this.tabContainer.clientHeight);this.sidebarContainer.style.bottom=this.footerHeight+b+d+"px";this.formatContainer.style.bottom=this.footerHeight+d+"px";this.diagramContainer.style.bottom=this.footerHeight+d+n+"px";a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
+EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var b=this.container.clientWidth,e=this.container.clientHeight;this.container==document.body&&(b=document.body.clientWidth||document.documentElement.clientWidth,e=document.documentElement.clientHeight);var d=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&(d=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var l=Math.max(0,Math.min(this.hsplitPosition,b-this.splitSize-
+20)),m=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",m+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",m+=this.toolbarHeight);0<m&&(m+=1);b=0;if(null!=this.sidebarFooterContainer){var u=this.footerHeight+d,b=Math.max(0,Math.min(e-m-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=l+"px";this.sidebarFooterContainer.style.height=b+"px";
+this.sidebarFooterContainer.style.bottom=u+"px"}e=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=m+"px";this.sidebarContainer.style.width=l+"px";this.formatContainer.style.top=m+"px";this.formatContainer.style.width=e+"px";this.formatContainer.style.display=null!=this.format?"":"none";var u=this.getDiagramContainerOffset(),q=null!=this.hsplit.parentNode?l+this.splitSize:0;this.diagramContainer.style.left=q+u.x+"px";this.diagramContainer.style.top=m+u.y+"px";this.footerContainer.style.height=
+this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+d+"px";this.hsplit.style.left=l+"px";this.footerContainer.style.display=0==this.footerHeight?"none":"";null!=this.tabContainer&&(this.tabContainer.style.left=q+"px");0<this.footerHeight&&(this.footerContainer.style.bottom=d+"px");this.diagramContainer.style.right=e+"px";l=0;null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+d+"px",this.tabContainer.style.right=
+this.diagramContainer.style.right,l=this.tabContainer.clientHeight);this.sidebarContainer.style.bottom=this.footerHeight+b+d+"px";this.formatContainer.style.bottom=this.footerHeight+d+"px";this.diagramContainer.style.bottom=this.footerHeight+d+l+"px";a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand"));
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.formatContainer.style.right="0px";this.formatContainer.style.zIndex="1";this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px";this.footerContainer.style.left="0px";this.footerContainer.style.right="0px";this.footerContainer.style.bottom=
"0px";this.footerContainer.style.zIndex=mxPopupMenu.prototype.zIndex-2;this.hsplit.style.width=this.splitSize+"px";if(this.sidebarFooterContainer=this.createSidebarFooterContainer())this.sidebarFooterContainer.style.left="0px";this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()};EditorUi.prototype.createSidebarFooterContainer=function(){return null};
@@ -2247,15 +2248,15 @@ this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContaine
this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
!0,0,mxUtils.bind(this,function(a){this.hsplitPosition=a;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};
EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
-EditorUi.prototype.addSplitHandler=function(a,b,e,d){function n(a){if(null!=t){var k=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,q+(b?k.x-t.x:t.y-k.y)-e));mxEvent.consume(a);q!=g()&&(c=!0,f=null)}}function l(a){n(a);t=q=null}var t=null,q=null,c=!0,f=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var g=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){t=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));q=g();c=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!c&&this.hsplitClickEnabled){var b=null!=f?f-e:0;f=g();d(b);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,n,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,n,l)})};
-EditorUi.prototype.handleError=function(a,b,e,d,n){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=b){n=mxUtils.htmlEntities(mxResources.get("unknownError"));var l=mxResources.get("ok");b=null!=b?b:mxResources.get("error");null!=a&&null!=a.message&&(n=mxUtils.htmlEntities(a.message));this.showError(b,n,l,e,null,null,null,null,null,null,null,null,d?e:null)}else null!=e&&e()};
-EditorUi.prototype.showError=function(a,b,e,d,n,l,t,q,c,f,g,m,k){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),d,n,l,t,m,q,c);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,f||340,g||100+20*b,!0,!1,k);a.init()};EditorUi.prototype.showDialog=function(a,b,e,d,n,l,t,q,c,f){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,n,l,t,q,c,f);this.dialogs.push(this.dialog)};
+EditorUi.prototype.addSplitHandler=function(a,b,e,d){function l(a){if(null!=u){var p=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,q+(b?p.x-u.x:u.y-p.y)-e));mxEvent.consume(a);q!=g()&&(c=!0,f=null)}}function m(a){l(a);u=q=null}var u=null,q=null,c=!0,f=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var g=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){u=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));q=g();c=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!c&&this.hsplitClickEnabled){var b=null!=f?f-e:0;f=g();d(b);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,l,m);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,l,m)})};
+EditorUi.prototype.handleError=function(a,b,e,d,l){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=b){l=mxUtils.htmlEntities(mxResources.get("unknownError"));var m=mxResources.get("ok");b=null!=b?b:mxResources.get("error");null!=a&&null!=a.message&&(l=mxUtils.htmlEntities(a.message));this.showError(b,l,m,e,null,null,null,null,null,null,null,null,d?e:null)}else null!=e&&e()};
+EditorUi.prototype.showError=function(a,b,e,d,l,m,u,q,c,f,g,k,p){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),d,l,m,u,k,q,c);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,f||340,g||100+20*b,!0,!1,p);a.init()};EditorUi.prototype.showDialog=function(a,b,e,d,l,m,u,q,c,f){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,l,m,u,q,c,f);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a,b,e){null!=this.dialogs&&0<this.dialogs.length&&(null==e||e==this.dialog.container.firstChild)&&(e=this.dialogs.pop(),0==e.close(a,b)?this.dialogs.push(e):(this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new mxEventObject("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(mxUtils.bind(this,function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?
-this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var a=this.editor.graph;if(a.isEnabled())try{for(var b=a.getSelectionCells(),e=new mxDictionary,d=[],n=0;n<b.length;n++){var l=a.isTableCell(b[n])?a.model.getParent(b[n]):b[n];null==l||e.get(l)||(e.put(l,!0),d.push(l))}a.setSelectionCells(a.duplicateCells(d,!1))}catch(t){this.handleError(t)}};
-EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),n=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),l=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(l.container,230,n,!0,!1);l.init()};
+this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var a=this.editor.graph;if(a.isEnabled())try{for(var b=a.getSelectionCells(),e=new mxDictionary,d=[],l=0;l<b.length;l++){var m=a.isTableCell(b[l])?a.model.getParent(b[l]):b[l];null==m||e.get(m)||(e.put(m,!0),d.push(m))}a.setSelectionCells(a.duplicateCells(d,!1))}catch(u){this.handleError(u)}};
+EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),l=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),m=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(m.container,230,l,!0,!1);m.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
-EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var d=a.lastIndexOf("&lt;/mxGraphModel&gt;");d>e&&(b=a.substring(e,d+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(n){}return b};
+EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var d=a.lastIndexOf("&lt;/mxGraphModel&gt;");d>e&&(b=a.substring(e,d+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(l){}return b};
EditorUi.prototype.readGraphModelFromClipboard=function(a){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){null!=b?a(b):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){if(null!=b){var d=decodeURIComponent(b);this.isCompatibleString(d)&&(b=d)}a(b)}),"text")}),"html")};
EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,b){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0<e.length&&"html"==b&&0<=mxUtils.indexOf(e[0].types,"text/html"))e[0].getType("text/html").then(mxUtils.bind(this,function(b){b.text().then(mxUtils.bind(this,function(b){try{var d=this.parseHtmlData(b),e="text/plain"!=d.getAttribute("data-type")?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);try{var q=e.lastIndexOf("%3E");
0<=q&&q<e.length-3&&(e=e.substring(0,q+3))}catch(g){}try{var c=d.getElementsByTagName("span"),f=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(f)&&(e=f)}catch(g){}}catch(g){}a(this.isCompatibleString(e)?e:null)}))["catch"](function(b){a(null)})}))["catch"](function(b){a(null)});else if(null!=e&&0<e.length&&"text"==b&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(b){b.text().then(function(b){a(b)})["catch"](function(){a(null)})})["catch"](function(){a(null)});
@@ -2268,95 +2269,95 @@ EditorUi.prototype.extractGraphModelFromEvent=function(a){var b=null,e=null;null
(b=e);return b};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())};
EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var b=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,b);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(b.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(b))).simulate(document,
"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(b);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}};
-EditorUi.prototype.executeLayout=function(a,b,e){var d=this.editor.graph;if(d.isEnabled()){d.getModel().beginUpdate();try{a()}catch(n){throw n;}finally{this.allowAnimation&&b&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("Camino"))?(a=new mxMorphing(d),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){d.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(d.getModel().endUpdate(),null!=e&&e())}}};
-EditorUi.prototype.showImageDialog=function(a,b,e,d){d=this.editor.graph.cellEditor;var n=d.saveSelection(),l=mxUtils.prompt(a,b);d.restoreSelection(n);if(null!=l&&0<l.length){var t=new Image;t.onload=function(){e(l,t.width,t.height)};t.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};t.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
+EditorUi.prototype.executeLayout=function(a,b,e){var d=this.editor.graph;if(d.isEnabled()){d.getModel().beginUpdate();try{a()}catch(l){throw l;}finally{this.allowAnimation&&b&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("Camino"))?(a=new mxMorphing(d),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){d.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(d.getModel().endUpdate(),null!=e&&e())}}};
+EditorUi.prototype.showImageDialog=function(a,b,e,d){d=this.editor.graph.cellEditor;var l=d.saveSelection(),m=mxUtils.prompt(a,b);d.restoreSelection(l);if(null!=m&&0<m.length){var u=new Image;u.onload=function(){e(m,u.width,u.height)};u.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};u.src=m}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
EditorUi.prototype.showDataDialog=function(a){null!=a&&(a=new EditDataDialog(this,a),this.showDialog(a.container,480,420,!0,!1,null,!1),a.init())};
EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var e=mxUtils.prompt(mxResources.get("backgroundImage"),null!=b?b.src:"");null!=e&&0<e.length?(b=new Image,b.onload=function(){a(new mxImage(e,b.width,b.height),!1)},b.onerror=function(){a(null,!0);mxUtils.alert(mxResources.get("fileNotFound"))},b.src=e):a(null)};
EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,b,e){mxUtils.confirm(a)?null!=b&&b():null!=e&&e()};
EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.graph);b.border=20;mxEvent.addListener(window,"resize",function(){b.update()});this.addListener("pageFormatChanged",function(){b.update()});return b};EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize",66:"copyData",69:"pasteData"};
-EditorUi.prototype.createKeyHandler=function(a){function b(a,c,b){t.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(c=null!=c?c:1,b){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++)if(d.getModel().isVertex(f[g])&&d.isCellResizable(f[g])){var e=d.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),d.getModel().setGeometry(f[g],e))}}finally{d.getModel().endUpdate()}}else{var k=
-d.getSelectionCell(),e=d.model.getParent(k),f=null;1==d.getSelectionCount()&&d.model.isVertex(k)&&null!=d.layoutManager&&!d.isCellLocked(k)&&(f=d.layoutManager.getLayout(e));if(null!=f&&f.constructor==mxStackLayout)f=e.getIndex(k),37==a||38==a?d.model.add(e,k,Math.max(0,f-1)):39!=a&&40!=a||d.model.add(e,k,Math.min(d.model.getChildCount(e),f+1));else{f=d.getMovableCells(d.getSelectionCells());k=[];for(g=0;g<f.length;g++)e=d.getCurrentCellStyle(f[g]),"1"==mxUtils.getValue(e,"part","0")?(e=d.model.getParent(f[g]),
-d.model.isVertex(e)&&0>mxUtils.indexOf(f,e)&&k.push(e)):k.push(f[g]);0<k.length&&(f=e=0,37==a?e=-c:38==a?f=-c:39==a?e=c:40==a&&(f=c),d.moveCells(k,e,f))}}});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<t.length){d.getModel().beginUpdate();try{for(var a=0;a<t.length;a++)t[a]();t=[]}finally{d.getModel().endUpdate()}}},200)}var e=this,d=this.editor.graph,n=new mxKeyHandler(d),l=n.isEventIgnored;n.isEventIgnored=function(a){return!(mxEvent.isShiftDown(a)&&9==a.keyCode)&&(!this.isControlDown(a)||
-mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&l.apply(this,arguments)};n.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};n.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var t=[],q=
-null,c={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},f=n.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var g=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=g)return g.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return d.cellEditor.isContentEditing()?function(){document.execCommand("outdent",!1,null)}:mxEvent.isShiftDown(a)?function(){d.selectParentCell()}:
+EditorUi.prototype.createKeyHandler=function(a){function b(a,c,b){u.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(c=null!=c?c:1,b){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++)if(d.getModel().isVertex(f[g])&&d.isCellResizable(f[g])){var e=d.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),d.getModel().setGeometry(f[g],e))}}finally{d.getModel().endUpdate()}}else{var p=
+d.getSelectionCell(),e=d.model.getParent(p),f=null;1==d.getSelectionCount()&&d.model.isVertex(p)&&null!=d.layoutManager&&!d.isCellLocked(p)&&(f=d.layoutManager.getLayout(e));if(null!=f&&f.constructor==mxStackLayout)f=e.getIndex(p),37==a||38==a?d.model.add(e,p,Math.max(0,f-1)):39!=a&&40!=a||d.model.add(e,p,Math.min(d.model.getChildCount(e),f+1));else{f=d.getMovableCells(d.getSelectionCells());p=[];for(g=0;g<f.length;g++)e=d.getCurrentCellStyle(f[g]),"1"==mxUtils.getValue(e,"part","0")?(e=d.model.getParent(f[g]),
+d.model.isVertex(e)&&0>mxUtils.indexOf(f,e)&&p.push(e)):p.push(f[g]);0<p.length&&(f=e=0,37==a?e=-c:38==a?f=-c:39==a?e=c:40==a&&(f=c),d.moveCells(p,e,f))}}});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<u.length){d.getModel().beginUpdate();try{for(var a=0;a<u.length;a++)u[a]();u=[]}finally{d.getModel().endUpdate()}}},200)}var e=this,d=this.editor.graph,l=new mxKeyHandler(d),m=l.isEventIgnored;l.isEventIgnored=function(a){return!(mxEvent.isShiftDown(a)&&9==a.keyCode)&&(!this.isControlDown(a)||
+mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&m.apply(this,arguments)};l.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};l.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var u=[],q=
+null,c={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},f=l.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var g=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=g)return g.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return d.cellEditor.isContentEditing()?function(){document.execCommand("outdent",!1,null)}:mxEvent.isShiftDown(a)?function(){d.selectParentCell()}:
function(){d.selectChildCell()};if(null!=c[a.keyCode]&&!d.isSelectionEmpty())if(!this.isControlDown(a)&&mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var b=d.connectVertex(d.getSelectionCell(),c[a.keyCode],d.defaultEdgeLength,a,!0);null!=b&&0<b.length&&(1==b.length&&d.model.isEdge(b[0])?d.setSelectionCell(d.model.getTerminal(b[0],!1)):d.setSelectionCell(b[b.length-1]),d.scrollCellToVisible(d.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?
-function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return f.apply(this,arguments)};n.bindAction=mxUtils.bind(this,function(a,c,b,d){var f=this.actions.get(b);null!=f&&(b=function(){f.isEnabled()&&f.funct()},c?d?n.bindControlShiftKey(a,b):n.bindControlKey(a,b):d?n.bindShiftKey(a,b):n.bindKey(a,b))});var g=this,m=n.escape;n.escape=function(a){m.apply(this,arguments)};n.enter=function(){};n.bindControlShiftKey(36,function(){d.exitGroup()});
-n.bindControlShiftKey(35,function(){d.enterGroup()});n.bindShiftKey(36,function(){d.home()});n.bindKey(35,function(){d.refresh()});n.bindAction(107,!0,"zoomIn");n.bindAction(109,!0,"zoomOut");n.bindAction(80,!0,"print");n.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)n.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),n.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),n.bindControlKey(13,function(){g.ctrlEnter()}),n.bindAction(8,!1,"delete"),
-n.bindAction(8,!0,"deleteAll"),n.bindAction(8,!1,"deleteLabels",!0),n.bindAction(46,!1,"delete"),n.bindAction(46,!0,"deleteAll"),n.bindAction(46,!1,"deleteLabels",!0),n.bindAction(36,!1,"resetView"),n.bindAction(72,!0,"fitWindow",!0),n.bindAction(74,!0,"fitPage"),n.bindAction(74,!0,"fitTwoPages",!0),n.bindAction(48,!0,"customZoom"),n.bindAction(82,!0,"turn"),n.bindAction(82,!0,"clearDefaultStyle",!0),n.bindAction(83,!0,"save"),n.bindAction(83,!0,"saveAs",!0),n.bindAction(65,!0,"selectAll"),n.bindAction(65,
-!0,"selectNone",!0),n.bindAction(73,!0,"selectVertices",!0),n.bindAction(69,!0,"selectEdges",!0),n.bindAction(69,!0,"editStyle"),n.bindAction(66,!0,"bold"),n.bindAction(66,!0,"toBack",!0),n.bindAction(70,!0,"toFront",!0),n.bindAction(68,!0,"duplicate"),n.bindAction(68,!0,"setAsDefaultStyle",!0),n.bindAction(90,!0,"undo"),n.bindAction(89,!0,"autosize",!0),n.bindAction(88,!0,"cut"),n.bindAction(67,!0,"copy"),n.bindAction(86,!0,"paste"),n.bindAction(71,!0,"group"),n.bindAction(77,!0,"editData"),n.bindAction(71,
-!0,"grid",!0),n.bindAction(73,!0,"italic"),n.bindAction(76,!0,"lockUnlock"),n.bindAction(76,!0,"layers",!0),n.bindAction(80,!0,"formatPanel",!0),n.bindAction(85,!0,"underline"),n.bindAction(85,!0,"ungroup",!0),n.bindAction(190,!0,"superscript"),n.bindAction(188,!0,"subscript"),n.bindAction(9,!1,"indent",!0),n.bindKey(13,function(){d.isEnabled()&&d.startEditingAtCell()}),n.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?n.bindAction(89,!0,"redo"):n.bindAction(90,!0,"redo",
-!0);return n};
+function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return f.apply(this,arguments)};l.bindAction=mxUtils.bind(this,function(a,c,b,d){var f=this.actions.get(b);null!=f&&(b=function(){f.isEnabled()&&f.funct()},c?d?l.bindControlShiftKey(a,b):l.bindControlKey(a,b):d?l.bindShiftKey(a,b):l.bindKey(a,b))});var g=this,k=l.escape;l.escape=function(a){k.apply(this,arguments)};l.enter=function(){};l.bindControlShiftKey(36,function(){d.exitGroup()});
+l.bindControlShiftKey(35,function(){d.enterGroup()});l.bindShiftKey(36,function(){d.home()});l.bindKey(35,function(){d.refresh()});l.bindAction(107,!0,"zoomIn");l.bindAction(109,!0,"zoomOut");l.bindAction(80,!0,"print");l.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)l.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),l.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),l.bindControlKey(13,function(){g.ctrlEnter()}),l.bindAction(8,!1,"delete"),
+l.bindAction(8,!0,"deleteAll"),l.bindAction(8,!1,"deleteLabels",!0),l.bindAction(46,!1,"delete"),l.bindAction(46,!0,"deleteAll"),l.bindAction(46,!1,"deleteLabels",!0),l.bindAction(36,!1,"resetView"),l.bindAction(72,!0,"fitWindow",!0),l.bindAction(74,!0,"fitPage"),l.bindAction(74,!0,"fitTwoPages",!0),l.bindAction(48,!0,"customZoom"),l.bindAction(82,!0,"turn"),l.bindAction(82,!0,"clearDefaultStyle",!0),l.bindAction(83,!0,"save"),l.bindAction(83,!0,"saveAs",!0),l.bindAction(65,!0,"selectAll"),l.bindAction(65,
+!0,"selectNone",!0),l.bindAction(73,!0,"selectVertices",!0),l.bindAction(69,!0,"selectEdges",!0),l.bindAction(69,!0,"editStyle"),l.bindAction(66,!0,"bold"),l.bindAction(66,!0,"toBack",!0),l.bindAction(70,!0,"toFront",!0),l.bindAction(68,!0,"duplicate"),l.bindAction(68,!0,"setAsDefaultStyle",!0),l.bindAction(90,!0,"undo"),l.bindAction(89,!0,"autosize",!0),l.bindAction(88,!0,"cut"),l.bindAction(67,!0,"copy"),l.bindAction(86,!0,"paste"),l.bindAction(71,!0,"group"),l.bindAction(77,!0,"editData"),l.bindAction(71,
+!0,"grid",!0),l.bindAction(73,!0,"italic"),l.bindAction(76,!0,"lockUnlock"),l.bindAction(76,!0,"layers",!0),l.bindAction(80,!0,"formatPanel",!0),l.bindAction(85,!0,"underline"),l.bindAction(85,!0,"ungroup",!0),l.bindAction(190,!0,"superscript"),l.bindAction(188,!0,"subscript"),l.bindAction(9,!1,"indent",!0),l.bindKey(13,function(){d.isEnabled()&&d.startEditingAtCell()}),l.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?l.bindAction(89,!0,"redo"):l.bindAction(90,!0,"redo",
+!0);return l};
EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&(this.menubar.destroy(),this.menubar=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null);null!=this.sidebar&&(this.sidebar.destroy(),this.sidebar=null);null!=this.keyHandler&&(this.keyHandler.destroy(),this.keyHandler=null);null!=this.keydownHandler&&(mxEvent.removeListener(document,"keydown",this.keydownHandler),this.keydownHandler=null);null!=this.keyupHandler&&(mxEvent.removeListener(document,
"keyup",this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window,"scroll",this.scrollHandler),
this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);(function(){var a=[["nbsp","160"],["shy","173"]],b=mxUtils.parseXml;mxUtils.parseXml=function(e){for(var d=0;d<a.length;d++)e=e.replace(new RegExp("&"+a[d][0]+";","g"),"&#"+a[d][1]+";");return b(e)}})();
Date.prototype.toISOString||function(){function a(a){a=String(a);1===a.length&&(a="0"+a);return a}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1E3).toFixed(3)).slice(2,5)+"Z"}}();Date.now||(Date.now=function(){return(new Date).getTime()});
-Uint8Array.from||(Uint8Array.from=function(){var a=Object.prototype.toString,b=function(b){return"function"===typeof b||"[object Function]"===a.call(b)},e=Math.pow(2,53)-1;return function(a){var d=Object(a);if(null==a)throw new TypeError("Array.from requires an array-like object - not null or undefined");var l=1<arguments.length?arguments[1]:void 0,t;if("undefined"!==typeof l){if(!b(l))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(t=
-arguments[2])}var q;q=Number(d.length);q=isNaN(q)?0:0!==q&&isFinite(q)?(0<q?1:-1)*Math.floor(Math.abs(q)):q;q=Math.min(Math.max(q,0),e);for(var c=b(this)?Object(new this(q)):Array(q),f=0,g;f<q;)g=d[f],c[f]=l?"undefined"===typeof t?l(g,f):l.call(t,g,f):g,f+=1;c.length=q;return c}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
+Uint8Array.from||(Uint8Array.from=function(){var a=Object.prototype.toString,b=function(b){return"function"===typeof b||"[object Function]"===a.call(b)},e=Math.pow(2,53)-1;return function(a){var d=Object(a);if(null==a)throw new TypeError("Array.from requires an array-like object - not null or undefined");var m=1<arguments.length?arguments[1]:void 0,u;if("undefined"!==typeof m){if(!b(m))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(u=
+arguments[2])}var q;q=Number(d.length);q=isNaN(q)?0:0!==q&&isFinite(q)?(0<q?1:-1)*Math.floor(Math.abs(q)):q;q=Math.min(Math.max(q,0),e);for(var c=b(this)?Object(new this(q)):Array(q),f=0,g;f<q;)g=d[f],c[f]=m?"undefined"===typeof u?m(g,f):m.call(u,g,f):g,f+=1;c.length=q;return c}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.defaultGridColor="#d0d0d0";mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultGridColor;mxGraphView.prototype.unit=mxConstants.POINTS;
mxGraphView.prototype.setUnit=function(a){this.unit!=a&&(this.unit=a,this.fireEvent(new mxEventObject("unitChanged","unit",a)))};mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";mxShape.prototype.getConstraints=function(a,b,e){return null};
mxImageShape.prototype.getImageDataUri=function(){var a=this.image;if("data:image/svg+xml;base64,"==a.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=a)this.clippedSvg=Graph.clipSvgDataUri(a),this.clippedImage=a;a=this.clippedSvg}return a};
-Graph=function(a,b,e,d,n,l){mxGraph.call(this,a,b,e,d);this.themes=n||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=l?l:!1;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){a=this.getCurrentCellStyle(a);
-return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var t=null,q=null,c=null,f=null,g=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event"),e=d.getState();if(!mxEvent.isAltDown(d.getEvent())&&null!=e)if(this.model.isEdge(e.cell))if(t=new mxPoint(d.getGraphX(),d.getGraphY()),g=this.isCellSelected(e.cell),c=e,q=d,null!=e.text&&null!=e.text.boundingBox&&
-mxUtils.contains(e.text.boundingBox,d.getGraphX(),d.getGraphY()))f=mxEvent.LABEL_HANDLE;else{var x=this.selectionCellsHandler.getHandler(e.cell);null!=x&&null!=x.bends&&0<x.bends.length&&(f=x.getHandleForEvent(d))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&&(x=this.selectionCellsHandler.getHandler(e.cell),null==x||null==x.getHandleForEvent(d))){var k=new mxRectangle(d.getGraphX()-1,d.getGraphY()-1);k.grow(mxEvent.isTouchEvent(d.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(e.cell)&&!this.isCellSelected(e.cell)){var m=this.model.getParent(e.cell),x=this.model.getParent(m);if(!this.isCellSelected(x)&&(mxUtils.intersects(k,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(x,0)!=m||mxUtils.intersects(k,new mxRectangle(e.x,e.y+e.height-2,e.width,3))||mxUtils.intersects(k,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(m,0)!=e.cell||mxUtils.intersects(k,new mxRectangle(e.x+e.width-
-2,e.y,2,e.height)))&&(m=this.selectionCellsHandler.isHandled(x),this.selectCellForEvent(x,d.getEvent()),x=this.selectionCellsHandler.getHandler(x),null!=x)){var p=x.getHandleForEvent(d);null!=p&&(x.start(d.getGraphX(),d.getGraphY(),p),x.blockDelayedSelection=!m,d.consume())}}for(;!d.isConsumed()&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));)this.isSwimlane(e.cell)&&(x=this.getActualStartSize(e.cell),m=this.view.scale,(0<x.x||0<x.width)&&mxUtils.intersects(k,
-new mxRectangle(e.x+(x.x-x.width-1)*m+(0==x.x?e.width:0),e.y,1,e.height))||(0<x.y||0<x.height)&&mxUtils.intersects(k,new mxRectangle(e.x,e.y+(x.y-x.height-1)*m+(0==x.y?e.height:0),e.width,1)))&&(this.selectCellForEvent(e.cell,d.getEvent()),x=this.selectionCellsHandler.getHandler(e.cell),null!=x&&(p=mxEvent.CUSTOM_HANDLE-x.customHandles.length+1,x.start(d.getGraphX(),d.getGraphY(),p),d.consume())),e=this.view.getState(this.model.getParent(e.cell))}}}));this.addMouseListener({mouseDown:function(a,c){},
-mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,e;for(e in d)if(null!=d[e].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(b.getEvent()))if(e=this.tolerance,null!=t&&null!=c&&null!=q){if(d=c,Math.abs(t.x-b.getGraphX())>e||Math.abs(t.y-b.getGraphY())>e){var x=this.selectionCellsHandler.getHandler(d.cell);null==x&&this.model.isEdge(d.cell)&&(x=this.createHandler(d));if(null!=x&&null!=x.bends&&0<x.bends.length){e=x.getHandleForEvent(q);
-var k=this.view.getEdgeStyle(d),m=k==mxEdgeStyle.EntityRelation;g||f!=mxEvent.LABEL_HANDLE||(e=f);if(m&&0!=e&&e!=x.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!m||null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==x.bends.length-1||null!=d.visibleTargetState)m||e==mxEvent.LABEL_HANDLE||(m=d.absolutePoints,null!=m&&(null==k&&null==e||k==mxEdgeStyle.OrthConnector)&&(e=f,null==e&&(e=new mxRectangle(t.x,
-t.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,m[0].x,m[0].y)?e=0:mxUtils.contains(e,m[m.length-1].x,m[m.length-1].y)?e=x.bends.length-1:null!=k&&(2==m.length||3==m.length&&(0==Math.round(m[0].x-m[1].x)&&0==Math.round(m[1].x-m[2].x)||0==Math.round(m[0].y-m[1].y)&&0==Math.round(m[1].y-m[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,t.x,t.y),e=null==k?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),x.start(b.getGraphX(),b.getGraphX(),e),b.consume(),this.graphHandler.reset()}null!=
-x&&(this.selectionCellsHandler.isHandlerActive(x)?this.isCellSelected(d.cell)||(this.selectionCellsHandler.handlers.put(d.cell,x),this.selectCellForEvent(d.cell,b.getEvent())):this.isCellSelected(d.cell)||x.destroy());g=!1;t=q=c=f=null}}else if(d=b.getState(),null!=d){x=null;if(this.model.isEdge(d.cell)){if(e=new mxRectangle(b.getGraphX(),b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),m=d.absolutePoints,null!=m)if(null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,
-b.getGraphX(),b.getGraphY()))x="move";else if(mxUtils.contains(e,m[0].x,m[0].y)||mxUtils.contains(e,m[m.length-1].x,m[m.length-1].y))x="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)e=this.view.getEdgeStyle(d),x="crosshair",e!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(e=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),e<m.length-1&&0<=e&&(x=0==Math.round(m[e].x-m[e+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){e=new mxRectangle(b.getGraphX()-
-1,b.getGraphY()-1);e.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(d.cell)&&(m=this.model.getParent(d.cell),k=this.model.getParent(m),!this.isCellSelected(k)))if(mxUtils.intersects(e,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(m,0)!=d.cell||mxUtils.intersects(e,new mxRectangle(d.x+d.width-2,d.y,2,d.height)))x="col-resize";else if(mxUtils.intersects(e,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(k,0)!=m||mxUtils.intersects(e,new mxRectangle(d.x,
-d.y+d.height-2,d.width,3)))x="row-resize";for(m=d;null==x&&null!=m&&(this.isTableCell(m.cell)||this.isTableRow(m.cell)||this.isTable(m.cell));){if(this.isSwimlane(m.cell)){var k=this.getActualStartSize(m.cell),p=this.view.scale;(0<k.x||0<k.width)&&mxUtils.intersects(e,new mxRectangle(m.x+(k.x-k.width-1)*p+(0==k.x?m.width*p:0),m.y,1,m.height))?x="col-resize":(0<k.y||0<k.height)&&mxUtils.intersects(e,new mxRectangle(m.x,m.y+(k.y-k.height-1)*p+(0==k.y?m.height:0),m.width,1))&&(x="row-resize")}m=this.view.getState(this.model.getParent(m.cell))}}null!=
-x&&d.setCursor(x)}}),mouseUp:mxUtils.bind(this,function(a,b){f=t=q=c=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=
-this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var a=m.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,
-d=this.graph.pageScale,f=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)c.push(new mxRectangle(((g.x+k)*f+d.x)*e,(g.y*b+d.y)*e,f*e,b*e));for(k=1;k<g.height;k++)c.push(new mxRectangle((g.x*f+d.x)*e,((g.y+k)*b+d.y)*e,f*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=
-function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var k=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var c=k.apply(this,arguments),b=new mxDictionary,d=[],f=0;f<c.length;f++){var e=this.graph.isTableCell(a)&&this.graph.isTableCell(c[f])&&this.graph.isCellSelected(c[f])?this.graph.model.getParent(c[f]):this.graph.isTableRow(a)&&this.graph.isTableRow(c[f])&&
-this.graph.isCellSelected(c[f])?c[f]:this.graph.getCompositeParent(c[f]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}return d};var p=this.graphHandler.start;this.graphHandler.start=function(a,c,b,d){var f=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?f=!0:a=this.graph.model.getParent(a));f||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));p.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,c){c=this.graph.getCompositeParent(c);
-return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var u=new mxRubberband(this);this.getRubberband=function(){return u};var A=(new Date).getTime(),F=0,z=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;z.apply(this,arguments);a!=this.currentState?(A=(new Date).getTime(),F=0):F=(new Date).getTime()-A};var y=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=
-this.currentState&&a.getState()==this.currentState&&2E3<F||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&y.apply(this,arguments)};var M=this.isToggleEvent;this.isToggleEvent=function(a){return M.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var L=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(a){return L.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&
-mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var I=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(I=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=I)}));this.popupMenuHandler.autoExpand=
-!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var G=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return G.apply(this,arguments);var b=c?a.sourceState.cell:a.getCell();null!=b&&(b=this.getClickableLinkForCell(b),null!=b&&(this.isCustomLink(b)?this.customLinkClicked(b):this.openLink(b)));this.isEnabled()&&c&&this.clearSelection()};this.tooltipHandler.getStateForEvent=
-function(a){return a.sourceState};var K=this.tooltipHandler.show;this.tooltipHandler.show=function(){K.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),c=0;c<a.length;c++)null!=a[c].getAttribute("href")&&null==a[c].getAttribute("target")&&a[c].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);
-return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var E=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return E.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getCells(a.x,a.y,a.width,a.height,null,null,null,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);this.selectCellsForEvent(b,c);return b};var J=
-this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,b){return this.graph.isCellSelected(a)?!1:J.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),"locked","0"))return!0;a=this.model.getParent(a)}return!1};var H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var b=c.getProperty("event").getState();H=null==
-b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var b=c.getProperty("event"),d=c.getProperty("cell");null==d?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),u.start(b.x,b.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);H=null;c.consume()}}));this.connectionHandler.selectCells=
+Graph=function(a,b,e,d,l,m){mxGraph.call(this,a,b,e,d);this.themes=l||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=m?m:!1;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){a=this.getCurrentCellStyle(a);
+return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var u=null,q=null,c=null,f=null,g=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event"),e=d.getState();if(!mxEvent.isAltDown(d.getEvent())&&null!=e)if(this.model.isEdge(e.cell))if(u=new mxPoint(d.getGraphX(),d.getGraphY()),g=this.isCellSelected(e.cell),c=e,q=d,null!=e.text&&null!=e.text.boundingBox&&
+mxUtils.contains(e.text.boundingBox,d.getGraphX(),d.getGraphY()))f=mxEvent.LABEL_HANDLE;else{var n=this.selectionCellsHandler.getHandler(e.cell);null!=n&&null!=n.bends&&0<n.bends.length&&(f=n.getHandleForEvent(d))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&&(n=this.selectionCellsHandler.getHandler(e.cell),null==n||null==n.getHandleForEvent(d))){var p=new mxRectangle(d.getGraphX()-1,d.getGraphY()-1);p.grow(mxEvent.isTouchEvent(d.getEvent())?mxShape.prototype.svgStrokeTolerance-
+1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(e.cell)&&!this.isCellSelected(e.cell)){var k=this.model.getParent(e.cell),n=this.model.getParent(k);if(!this.isCellSelected(n)&&(mxUtils.intersects(p,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(n,0)!=k||mxUtils.intersects(p,new mxRectangle(e.x,e.y+e.height-2,e.width,3))||mxUtils.intersects(p,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(k,0)!=e.cell||mxUtils.intersects(p,new mxRectangle(e.x+e.width-
+2,e.y,2,e.height)))&&(k=this.selectionCellsHandler.isHandled(n),this.selectCellForEvent(n,d.getEvent()),n=this.selectionCellsHandler.getHandler(n),null!=n)){var t=n.getHandleForEvent(d);null!=t&&(n.start(d.getGraphX(),d.getGraphY(),t),n.blockDelayedSelection=!k,d.consume())}}for(;!d.isConsumed()&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));)this.isSwimlane(e.cell)&&(n=this.getActualStartSize(e.cell),k=this.view.scale,(0<n.x||0<n.width)&&mxUtils.intersects(p,
+new mxRectangle(e.x+(n.x-n.width-1)*k+(0==n.x?e.width:0),e.y,1,e.height))||(0<n.y||0<n.height)&&mxUtils.intersects(p,new mxRectangle(e.x,e.y+(n.y-n.height-1)*k+(0==n.y?e.height:0),e.width,1)))&&(this.selectCellForEvent(e.cell,d.getEvent()),n=this.selectionCellsHandler.getHandler(e.cell),null!=n&&(t=mxEvent.CUSTOM_HANDLE-n.customHandles.length+1,n.start(d.getGraphX(),d.getGraphY(),t),d.consume())),e=this.view.getState(this.model.getParent(e.cell))}}}));this.addMouseListener({mouseDown:function(a,c){},
+mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,e;for(e in d)if(null!=d[e].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(b.getEvent()))if(e=this.tolerance,null!=u&&null!=c&&null!=q){if(d=c,Math.abs(u.x-b.getGraphX())>e||Math.abs(u.y-b.getGraphY())>e){var n=this.selectionCellsHandler.getHandler(d.cell);null==n&&this.model.isEdge(d.cell)&&(n=this.createHandler(d));if(null!=n&&null!=n.bends&&0<n.bends.length){e=n.getHandleForEvent(q);
+var p=this.view.getEdgeStyle(d),k=p==mxEdgeStyle.EntityRelation;g||f!=mxEvent.LABEL_HANDLE||(e=f);if(k&&0!=e&&e!=n.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!k||null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==n.bends.length-1||null!=d.visibleTargetState)k||e==mxEvent.LABEL_HANDLE||(k=d.absolutePoints,null!=k&&(null==p&&null==e||p==mxEdgeStyle.OrthConnector)&&(e=f,null==e&&(e=new mxRectangle(u.x,
+u.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,k[0].x,k[0].y)?e=0:mxUtils.contains(e,k[k.length-1].x,k[k.length-1].y)?e=n.bends.length-1:null!=p&&(2==k.length||3==k.length&&(0==Math.round(k[0].x-k[1].x)&&0==Math.round(k[1].x-k[2].x)||0==Math.round(k[0].y-k[1].y)&&0==Math.round(k[1].y-k[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,u.x,u.y),e=null==p?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),n.start(b.getGraphX(),b.getGraphX(),e),b.consume(),this.graphHandler.reset()}null!=
+n&&(this.selectionCellsHandler.isHandlerActive(n)?this.isCellSelected(d.cell)||(this.selectionCellsHandler.handlers.put(d.cell,n),this.selectCellForEvent(d.cell,b.getEvent())):this.isCellSelected(d.cell)||n.destroy());g=!1;u=q=c=f=null}}else if(d=b.getState(),null!=d){n=null;if(this.model.isEdge(d.cell)){if(e=new mxRectangle(b.getGraphX(),b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),k=d.absolutePoints,null!=k)if(null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,
+b.getGraphX(),b.getGraphY()))n="move";else if(mxUtils.contains(e,k[0].x,k[0].y)||mxUtils.contains(e,k[k.length-1].x,k[k.length-1].y))n="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)e=this.view.getEdgeStyle(d),n="crosshair",e!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(e=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),e<k.length-1&&0<=e&&(n=0==Math.round(k[e].x-k[e+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){e=new mxRectangle(b.getGraphX()-
+1,b.getGraphY()-1);e.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(d.cell)&&(k=this.model.getParent(d.cell),p=this.model.getParent(k),!this.isCellSelected(p)))if(mxUtils.intersects(e,new mxRectangle(d.x-2,d.y,2,d.height))&&this.model.getChildAt(k,0)!=d.cell||mxUtils.intersects(e,new mxRectangle(d.x+d.width-2,d.y,2,d.height)))n="col-resize";else if(mxUtils.intersects(e,new mxRectangle(d.x,d.y-2,d.width,3))&&this.model.getChildAt(p,0)!=k||mxUtils.intersects(e,new mxRectangle(d.x,
+d.y+d.height-2,d.width,3)))n="row-resize";for(k=d;null==n&&null!=k&&(this.isTableCell(k.cell)||this.isTableRow(k.cell)||this.isTable(k.cell));){if(this.isSwimlane(k.cell)){var p=this.getActualStartSize(k.cell),t=this.view.scale;(0<p.x||0<p.width)&&mxUtils.intersects(e,new mxRectangle(k.x+(p.x-p.width-1)*t+(0==p.x?k.width*t:0),k.y,1,k.height))?n="col-resize":(0<p.y||0<p.height)&&mxUtils.intersects(e,new mxRectangle(k.x,k.y+(p.y-p.height-1)*t+(0==p.y?k.height:0),k.width,1))&&(n="row-resize")}k=this.view.getState(this.model.getParent(k.cell))}}null!=
+n&&d.setCursor(n)}}),mouseUp:mxUtils.bind(this,function(a,b){f=u=q=c=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=
+this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var k=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var a=k.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,
+d=this.graph.pageScale,f=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,g=this.graph.getPageLayout(),p=0;p<g.width;p++)c.push(new mxRectangle(((g.x+p)*f+d.x)*e,(g.y*b+d.y)*e,f*e,b*e));for(p=1;p<g.height;p++)c.push(new mxRectangle((g.x*f+d.x)*e,((g.y+p)*b+d.y)*e,f*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=
+function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var p=this.graphHandler.getCells;this.graphHandler.getCells=function(a){for(var c=p.apply(this,arguments),b=new mxDictionary,d=[],f=0;f<c.length;f++){var e=this.graph.isTableCell(a)&&this.graph.isTableCell(c[f])&&this.graph.isCellSelected(c[f])?this.graph.model.getParent(c[f]):this.graph.isTableRow(a)&&this.graph.isTableRow(c[f])&&
+this.graph.isCellSelected(c[f])?c[f]:this.graph.getCompositeParent(c[f]);null==e||b.get(e)||(b.put(e,!0),d.push(e))}return d};var t=this.graphHandler.start;this.graphHandler.start=function(a,c,b,d){var f=!1;this.graph.isTableCell(a)&&(this.graph.isCellSelected(a)?f=!0:a=this.graph.model.getParent(a));f||this.graph.isTableRow(a)&&this.graph.isCellSelected(a)||(a=this.graph.getCompositeParent(a));t.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(a,c){c=this.graph.getCompositeParent(c);
+return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);this.getRubberband=function(){return v};var A=(new Date).getTime(),F=0,y=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;y.apply(this,arguments);a!=this.currentState?(A=(new Date).getTime(),F=0):F=(new Date).getTime()-A};var z=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=
+this.currentState&&a.getState()==this.currentState&&2E3<F||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&z.apply(this,arguments)};var L=this.isToggleEvent;this.isToggleEvent=function(a){return L.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var M=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(a){return M.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&
+mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var G=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(G=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=G)}));this.popupMenuHandler.autoExpand=
+!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var J=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return J.apply(this,arguments);var b=c?a.sourceState.cell:a.getCell();null!=b&&(b=this.getClickableLinkForCell(b),null!=b&&(this.isCustomLink(b)?this.customLinkClicked(b):this.openLink(b)));this.isEnabled()&&c&&this.clearSelection()};this.tooltipHandler.getStateForEvent=
+function(a){return a.sourceState};var H=this.tooltipHandler.show;this.tooltipHandler.show=function(){H.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),c=0;c<a.length;c++)null!=a[c].getAttribute("href")&&null==a[c].getAttribute("target")&&a[c].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);
+return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var D=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return D.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getCells(a.x,a.y,a.width,a.height,null,null,null,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);this.selectCellsForEvent(b,c);return b};var K=
+this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,b){return this.graph.isCellSelected(a)?!1:K.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),"locked","0"))return!0;a=this.model.getParent(a)}return!1};var I=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var b=c.getProperty("event").getState();I=null==
+b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var b=c.getProperty("event"),d=c.getProperty("cell");null==d?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),v.start(b.x,b.y)):null!=I?this.addSelectionCells(I):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);I=null;c.consume()}}));this.connectionHandler.selectCells=
function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){var b=a.view.graph;return c&&(b.isCellSelected(a.cell)||b.isTableRow(a.cell)&&b.selectionCellsHandler.isHandled(b.model.getParent(a.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));
-Graph.touchStyle&&this.initTouch();var X=this.updateMouseEvent;this.updateMouseEvent=function(a){a=X.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
+Graph.touchStyle&&this.initTouch();var R=this.updateMouseEvent;this.updateMouseEvent=function(a){a=R.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";
Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
-Graph.createSvgImage=function(a,b,e,d,n){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" '+(null!=d&&null!=n?'viewBox="0 0 '+d+" "+n+'" ':"")+'version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)};
-Graph.zapGremlins=function(a){for(var b=0,e=[],d=0;d<a.length;d++){var n=a.charCodeAt(d);(32<=n||9==n||10==n||13==n)&&65535!=n&&65534!=n||(e.push(a.substring(b,d)),b=d+1)}0<b&&b<a.length&&e.push(a.substring(b));return 0==e.length?a:e.join("")};Graph.stringToBytes=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=a.charCodeAt(e);return b};Graph.bytesToString=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=String.fromCharCode(a[e]);return b.join("")};
+Graph.createSvgImage=function(a,b,e,d,l){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" '+(null!=d&&null!=l?'viewBox="0 0 '+d+" "+l+'" ':"")+'version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)};
+Graph.zapGremlins=function(a){for(var b=0,e=[],d=0;d<a.length;d++){var l=a.charCodeAt(d);(32<=l||9==l||10==l||13==l)&&65535!=l&&65534!=l||(e.push(a.substring(b,d)),b=d+1)}0<b&&b<a.length&&e.push(a.substring(b));return 0==e.length?a:e.join("")};Graph.stringToBytes=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=a.charCodeAt(e);return b};Graph.bytesToString=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=String.fromCharCode(a[e]);return b.join("")};
Graph.base64EncodeUnicode=function(a){return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,function(a,e){return String.fromCharCode(parseInt(e,16))}))};Graph.base64DecodeUnicode=function(a){return decodeURIComponent(Array.prototype.map.call(atob(a),function(a){return"%"+("00"+a.charCodeAt(0).toString(16)).slice(-2)}).join(""))};Graph.compressNode=function(a,b){var e=mxUtils.getXml(a);return Graph.compress(b?e:Graph.zapGremlins(e))};
Graph.arrayBufferToString=function(a){var b="";a=new Uint8Array(a);for(var e=a.byteLength,d=0;d<e;d++)b+=String.fromCharCode(a[d]);return b};Graph.stringToArrayBuffer=function(a){return Uint8Array.from(a,function(a){return a.charCodeAt(0)})};
-Graph.arrayBufferIndexOfString=function(a,b,e){var d=b.charCodeAt(0),n=1,l=-1;for(e=e||0;e<a.byteLength;e++)if(a[e]==d){l=e;break}for(e=l+1;-1<l&&e<a.byteLength&&e<l+b.length-1;e++){if(a[e]!=b.charCodeAt(n))return Graph.arrayBufferIndexOfString(a,b,l+1);n++}return n==b.length-1?l:-1};Graph.compress=function(a,b){if(null==a||0==a.length||"undefined"===typeof pako)return a;var e=b?pako.deflate(encodeURIComponent(a)):pako.deflateRaw(encodeURIComponent(a));return btoa(Graph.arrayBufferToString(new Uint8Array(e)))};
+Graph.arrayBufferIndexOfString=function(a,b,e){var d=b.charCodeAt(0),l=1,m=-1;for(e=e||0;e<a.byteLength;e++)if(a[e]==d){m=e;break}for(e=m+1;-1<m&&e<a.byteLength&&e<m+b.length-1;e++){if(a[e]!=b.charCodeAt(l))return Graph.arrayBufferIndexOfString(a,b,m+1);l++}return l==b.length-1?m:-1};Graph.compress=function(a,b){if(null==a||0==a.length||"undefined"===typeof pako)return a;var e=b?pako.deflate(encodeURIComponent(a)):pako.deflateRaw(encodeURIComponent(a));return btoa(Graph.arrayBufferToString(new Uint8Array(e)))};
Graph.decompress=function(a,b,e){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=Graph.stringToArrayBuffer(atob(a));b=decodeURIComponent(b?pako.inflate(a,{to:"string"}):pako.inflateRaw(a,{to:"string"}));return e?b:Graph.zapGremlins(b)};Graph.removePasteFormatting=function(a){for(;null!=a;)null!=a.firstChild&&Graph.removePasteFormatting(a.firstChild),a.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=a.style&&(a.style.whiteSpace="","#000000"==a.style.color&&(a.style.color="")),a=a.nextSibling};
-Graph.sanitizeHtml=function(a,b){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};Graph.sanitizeSvg=function(a){for(var b=a.getElementsByTagName("*"),e=0;e<b.length;e++)for(var d=0;d<b[e].attributes.length;d++){var n=b[e].attributes[d];2<n.name.length&&"on"==n.name.toLowerCase().substring(0,2)&&b[e].removeAttribute(n.name)}for(a=a.getElementsByTagName("script");0<a.length;)a[0].parentNode.removeChild(a[0])};
-Graph.clipSvgDataUri=function(a){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=a&&"data:image/svg+xml;base64,"==a.substring(0,26))try{var b=document.createElement("div");b.style.position="absolute";b.style.visibility="hidden";var e=decodeURIComponent(escape(atob(a.substring(26)))),d=e.indexOf("<svg");if(0<=d){b.innerHTML=e.substring(d);Graph.sanitizeSvg(b);var n=b.getElementsByTagName("svg");if(0<n.length){document.body.appendChild(b);try{var l=n[0].getBBox();0<l.width&&0<l.height&&(b.getElementsByTagName("svg")[0].setAttribute("viewBox",
-l.x+" "+l.y+" "+l.width+" "+l.height),b.getElementsByTagName("svg")[0].setAttribute("width",l.width),b.getElementsByTagName("svg")[0].setAttribute("height",l.height))}catch(t){}finally{document.body.removeChild(b)}a=Editor.createSvgDataUri(mxUtils.getXml(n[0]))}}}catch(t){}return a};
+Graph.sanitizeHtml=function(a,b){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};Graph.sanitizeSvg=function(a){for(var b=a.getElementsByTagName("*"),e=0;e<b.length;e++)for(var d=0;d<b[e].attributes.length;d++){var l=b[e].attributes[d];2<l.name.length&&"on"==l.name.toLowerCase().substring(0,2)&&b[e].removeAttribute(l.name)}for(a=a.getElementsByTagName("script");0<a.length;)a[0].parentNode.removeChild(a[0])};
+Graph.clipSvgDataUri=function(a){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=a&&"data:image/svg+xml;base64,"==a.substring(0,26))try{var b=document.createElement("div");b.style.position="absolute";b.style.visibility="hidden";var e=decodeURIComponent(escape(atob(a.substring(26)))),d=e.indexOf("<svg");if(0<=d){b.innerHTML=e.substring(d);Graph.sanitizeSvg(b);var l=b.getElementsByTagName("svg");if(0<l.length){document.body.appendChild(b);try{var m=l[0].getBBox();0<m.width&&0<m.height&&(b.getElementsByTagName("svg")[0].setAttribute("viewBox",
+m.x+" "+m.y+" "+m.width+" "+m.height),b.getElementsByTagName("svg")[0].setAttribute("width",m.width),b.getElementsByTagName("svg")[0].setAttribute("height",m.height))}catch(u){}finally{document.body.removeChild(b)}a=Editor.createSvgDataUri(mxUtils.getXml(l[0]))}}}catch(u){}return a};
Graph.stripQuotes=function(a){null!=a&&("'"==a.charAt(0)&&(a=a.substring(1)),"'"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),'"'==a.charAt(0)&&(a=a.substring(1)),'"'==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)));return a};Graph.isLink=function(a){return null!=a&&Graph.linkPattern.test(a)};Graph.linkPattern=/^(https?:\/\/)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?(\#[-a-z\d_]*)?$/i;mxUtils.extend(Graph,mxGraph);
Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkPolicy="frame"==urlParams.target?"blank":urlParams.target||"auto";Graph.prototype.linkTarget="frame"==urlParams.target?"_self":"_blank";Graph.prototype.linkRelation="nofollow noopener noreferrer";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.defaultGridEnabled=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultPageBackgroundColor="#ffffff";
Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.selectParentAfterDelete=!1;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}]+)%","g");Graph.prototype.absoluteUrlPattern=/^(?:[a-z]+:)?\/\//i;Graph.prototype.defaultThemeName="default";
Graph.prototype.defaultThemes={};Graph.prototype.baseUrl=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"];Graph.prototype.standalone=!1;Graph.prototype.enableFlowAnimation=!1;
-Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,b){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var d=a.view.graph.tolerance,e=!0,t=null,q=mxUtils.bind(this,function(a){e=!0;t=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),c=mxUtils.bind(this,function(a){e=e&&null!=t&&Math.abs(t.x-mxEvent.getClientX(a))<d&&Math.abs(t.y-mxEvent.getClientY(a))<d}),f=mxUtils.bind(this,function(c){if(e)for(var d=mxEvent.getSource(c);null!=
+Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,b){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var d=a.view.graph.tolerance,e=!0,u=null,q=mxUtils.bind(this,function(a){e=!0;u=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),c=mxUtils.bind(this,function(a){e=e&&null!=u&&Math.abs(u.x-mxEvent.getClientX(a))<d&&Math.abs(u.y-mxEvent.getClientY(a))<d}),f=mxUtils.bind(this,function(c){if(e)for(var d=mxEvent.getSource(c);null!=
d&&d!=b.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(b.node,q,c,f);mxEvent.addListener(b.node,"click",function(a){mxEvent.consume(a)})};if(null!=this.tooltipHandler){var b=this.tooltipHandler.init;this.tooltipHandler.init=function(){b.apply(this,arguments);null!=this.div&&mxEvent.addListener(this.div,"click",mxUtils.bind(this,function(a){var b=mxEvent.getSource(a);"A"==b.nodeName&&(b=b.getAttribute("href"),null!=
b&&this.graph.isCustomLink(b)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&this.graph.customLinkClicked(b)&&mxEvent.consume(a))}))}}this.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){if(null!=this.container&&this.flowAnimationStyle){var d=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(d)}}));this.initLayoutManager()};
(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.getVerticesAndEdges=function(a,b){a=null!=a?a:!0;b=null!=b?b:!0;var d=this.model;return d.filterDescendants(function(c){return a&&d.isVertex(c)||b&&d.isEdge(c)},d.getRoot())};Graph.prototype.getCommonStyle=function(a){for(var b={},d=0;d<a.length;d++){var c=this.view.getState(a[d]);this.mergeStyle(c.style,b,0==d)}return b};Graph.prototype.mergeStyle=function(a,
b,d){if(null!=a){var c={},f;for(f in a){var e=a[f];null!=e&&(c[f]=!0,null==b[f]&&d?b[f]=e:b[f]!=e&&delete b[f])}for(f in b)c[f]||delete b[f]}};Graph.prototype.getStartEditingCell=function(a,b){var d=this.getCellStyle(a),d=parseInt(mxUtils.getValue(d,mxConstants.STYLE_STARTSIZE,0));this.isTable(a)&&(!this.isSwimlane(a)||0==d)&&""==this.getLabel(a)&&0<this.model.getChildCount(a)&&(a=this.model.getChildAt(a,0),d=this.getCellStyle(a),d=parseInt(mxUtils.getValue(d,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(a)&&
(!this.isSwimlane(a)||0==d)&&""==this.getLabel(a)&&0<this.model.getChildCount(a))for(d=0;d<this.model.getChildCount(a);d++){var c=this.model.getChildAt(a,d);if(this.isCellEditable(c)){a=c;break}}return a};Graph.prototype.copyStyle=function(a){var b=null;if(null!=a){b=mxUtils.clone(this.getCurrentCellStyle(a));a=this.model.getStyle(a);a=null!=a?a.split(";"):[];for(var d=0;d<a.length;d++){var c=a[d],f=c.indexOf("=");if(0<=f){var e=c.substring(0,f),c=c.substring(f+1);null==b[e]&&c==mxConstants.NONE&&
-(b[e]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,d){d=null!=d?d:Graph.pasteStyles;this.model.beginUpdate();try{for(var c=0;c<b.length;c++)for(var f=this.getCurrentCellStyle(b[c]),e=0;e<d.length;e++){var m=f[d[e]],k=a[d[e]];m==k||null==m&&k==mxConstants.NONE||this.setCellStyles(d[e],k,[b[c]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&this.isCssTransformsSupported()};
+(b[e]=mxConstants.NONE)}}}return b};Graph.prototype.pasteStyle=function(a,b,d){d=null!=d?d:Graph.pasteStyles;this.model.beginUpdate();try{for(var c=0;c<b.length;c++)for(var f=this.getCurrentCellStyle(b[c]),e=0;e<d.length;e++){var k=f[d[e]],p=a[d[e]];k==p||null==k&&p==mxConstants.NONE||this.setCellStyles(d[e],p,[b[c]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&this.isCssTransformsSupported()};
Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(a,b,d,c,f,e){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,b,d,c,f,e){c=null!=c?c:!0;f=null!=f?f:!0;null==d&&(d=this.getCurrentRoot(),null==d&&(d=this.getModel().getRoot()));
-if(null!=d)for(var g=this.model.getChildCount(d)-1;0<=g;g--){var k=this.model.getChildAt(d,g),p=this.getScaledCellAt(a,b,k,c,f,e);if(null!=p)return p;if(this.isCellVisible(k)&&(f&&this.model.isEdge(k)||c&&this.model.isVertex(k))&&(p=this.view.getState(k),null!=p&&(null==e||!e(p,a,b))&&this.intersects(p,a,b)))return k}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,
+if(null!=d)for(var g=this.model.getChildCount(d)-1;0<=g;g--){var p=this.model.getChildAt(d,g),t=this.getScaledCellAt(a,b,p,c,f,e);if(null!=t)return t;if(this.isCellVisible(p)&&(f&&this.model.isEdge(p)||c&&this.model.isVertex(p))&&(t=this.view.getState(p),null!=t&&(null==e||!e(t,a,b))&&this.intersects(t,a,b)))return p}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0<this.model.getChildCount(a.cell)&&!this.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,
"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};Graph.prototype.isPart=function(a){return"1"==mxUtils.getValue(this.getCurrentCellStyle(a),"part","0")||this.isTableCell(a)||this.isTableRow(a)};Graph.prototype.getCompositeParent=function(a){for(;this.isPart(a);){var b=this.model.getParent(a);if(!this.model.isVertex(b))break;a=b}return a};Graph.prototype.filterSelectionCells=function(a){var b=this.getSelectionCells();if(null!=a){for(var d=[],c=0;c<b.length;c++)a(b[c])||d.push(b[c]);
b=d}return b};mxCellHighlight.prototype.getStrokeWidth=function(a){a=this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,d=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*d,(a.y+b.y)*d,a.width*d,a.height*d);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();
this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=
this.graph.currentTranslate.y)};var b=mxGraph.prototype.getCellsForGroup;Graph.prototype.getCellsForGroup=function(a){a=b.apply(this,arguments);for(var d=[],e=0;e<a.length;e++)this.isTableRow(a[e])||this.isTableCell(a[e])||d.push(a[e]);return d};var e=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=function(a){a=e.apply(this,arguments);for(var b=[],d=0;d<a.length;d++)this.isTable(a[d])||this.isTableRow(a[d])||this.isTableCell(a[d])||b.push(a[d]);return b};Graph.prototype.updateCssTransform=
function(){var a=this.view.getDrawPane();if(null!=a)if(a=a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");var d=Math.round(100*this.currentScale)/100;a.setAttribute("transform","scale("+d+","+d+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/100+")");if(b!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var c=a.style.display;a.style.display="none";a.getBBox();a.style.display=c}}catch(f){}}else a.removeAttribute("transformOrigin"),
-a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,b=this.scale,e=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=b,this.translate=e)};var n=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,d){var c=this.useCssTransforms,f=this.view.scale,e=this.view.translate;
-c&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);n.apply(this,arguments);c&&(this.view.scale=f,this.view.translate=e,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
+a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,b=this.scale,e=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=b,this.translate=e)};var l=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,d){var c=this.useCssTransforms,f=this.view.scale,e=this.view.translate;
+c&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);l.apply(this,arguments);c&&(this.view.scale=f,this.view.translate=e,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&(mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e))){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}};
-Graph.prototype.openLink=function(a,b,e){var d=window;try{if("_self"==b&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top){var n=a.split("#")[1];window.location.hash=="#"+n&&(window.location.hash="");window.location.hash=n}else d=window.open(a,null!=b?b:"_blank"),null==d||e||(d.opener=null)}catch(l){}return d};
+Graph.prototype.openLink=function(a,b,e){var d=window;try{if("_self"==b&&window!=window.top)window.location.href=a;else if(a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top){var l=a.split("#")[1];window.location.hash=="#"+l&&(window.location.hash="");window.location.hash=l}else d=window.open(a,null!=b?b:"_blank"),null==d||e||(d.opener=null)}catch(m){}return d};
Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
Graph.prototype.isRelativeUrl=function(a){return null!=a&&!this.absoluteUrlPattern.test(a)&&"data:"!==a.substring(0,5)&&!this.isExternalProtocol(a)};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};
Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.hasLayout=function(a,b){return null!=this.graph.getCellStyle(a).childLayout};this.layoutManager.getLayout=function(a,b){var e=this.graph.model.getParent(a);if(b!=mxEvent.BEGIN_UPDATE||this.hasLayout(e,b)){e=this.graph.getCellStyle(a);if("stackLayout"==e.childLayout){var d=new mxStackLayout(this.graph,!0);d.resizeParentMax="1"==mxUtils.getValue(e,"resizeParentMax","1");d.horizontal="1"==mxUtils.getValue(e,
@@ -2371,38 +2372,38 @@ Graph.prototype.isSplitTarget=function(a,b,e){return!this.model.isEdge(b[0])&&!m
Graph.prototype.isLabelMovable=function(a){var b=this.getCurrentCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(b,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))};Graph.prototype.setDefaultParent=function(a){this.defaultParent=a;this.fireEvent(new mxEventObject("defaultParentChanged"))};
Graph.prototype.getClickableLinkForCell=function(a){do{var b=this.getLinkForCell(a);if(null!=b)return b;a=this.model.getParent(a)}while(null!=a);return null};Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b};
Graph.prototype.formatDate=function(a,b,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
-shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var d=this.dateFormatCache,n=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,t=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",c=a[q+"Date"](),f=a[q+"Day"](),g=a[q+"Month"](),m=a[q+"FullYear"](),k=a[q+"Hours"](),p=a[q+"Minutes"](),u=a[q+"Seconds"](),q=a[q+"Milliseconds"](),A=e?0:a.getTimezoneOffset(),F={d:c,dd:t(c),ddd:d.i18n.dayNames[f],dddd:d.i18n.dayNames[f+7],m:g+1,mm:t(g+1),mmm:d.i18n.monthNames[g],mmmm:d.i18n.monthNames[g+
-12],yy:String(m).slice(2),yyyy:m,h:k%12||12,hh:t(k%12||12),H:k,HH:t(k),M:p,MM:t(p),s:u,ss:t(u),l:t(q,3),L:t(99<q?Math.round(q/10):q),t:12>k?"a":"p",tt:12>k?"am":"pm",T:12>k?"A":"P",TT:12>k?"AM":"PM",Z:e?"UTC":(String(a).match(n)||[""]).pop().replace(l,""),o:(0<A?"-":"+")+t(100*Math.floor(Math.abs(A)/60)+Math.abs(A)%60,4),S:["th","st","nd","rd"][3<c%10?0:(10!=c%100-c%10)*c%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in F?F[a]:a.slice(1,
+shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var d=this.dateFormatCache,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,m=/[^-+\dA-Z]/g,u=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
+/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",c=a[q+"Date"](),f=a[q+"Day"](),g=a[q+"Month"](),k=a[q+"FullYear"](),p=a[q+"Hours"](),t=a[q+"Minutes"](),v=a[q+"Seconds"](),q=a[q+"Milliseconds"](),A=e?0:a.getTimezoneOffset(),F={d:c,dd:u(c),ddd:d.i18n.dayNames[f],dddd:d.i18n.dayNames[f+7],m:g+1,mm:u(g+1),mmm:d.i18n.monthNames[g],mmmm:d.i18n.monthNames[g+
+12],yy:String(k).slice(2),yyyy:k,h:p%12||12,hh:u(p%12||12),H:p,HH:u(p),M:t,MM:u(t),s:v,ss:u(v),l:u(q,3),L:u(99<q?Math.round(q/10):q),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:e?"UTC":(String(a).match(l)||[""]).pop().replace(m,""),o:(0<A?"-":"+")+u(100*Math.floor(Math.abs(A)/60)+Math.abs(A)%60,4),S:["th","st","nd","rd"][3<c%10?0:(10!=c%100-c%10)*c%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in F?F[a]:a.slice(1,
a.length-1)})};
-Graph.prototype.createLayersDialog=function(a){var b=document.createElement("div");b.style.position="absolute";for(var e=this.getModel(),d=e.getChildCount(e.root),n=0;n<d;n++)mxUtils.bind(this,function(d){var n=document.createElement("div");n.style.overflow="hidden";n.style.textOverflow="ellipsis";n.style.padding="2px";n.style.whiteSpace="nowrap";var l=document.createElement("input");l.style.display="inline-block";l.setAttribute("type","checkbox");e.isVisible(d)&&(l.setAttribute("checked","checked"),
-l.defaultChecked=!0);n.appendChild(l);var c=this.convertValueToString(d)||mxResources.get("background")||"Background";n.setAttribute("title",c);mxUtils.write(n,c);b.appendChild(n);mxEvent.addListener(l,"click",function(){null!=l.getAttribute("checked")?l.removeAttribute("checked"):l.setAttribute("checked","checked");e.setVisible(d,l.checked);null!=a&&a(d)})})(e.getChildAt(e.root,n));return b};
-Graph.prototype.replacePlaceholders=function(a,b,e,d){d=[];if(null!=b){for(var n=0;match=this.placeholderPattern.exec(b);){var l=match[0];if(2<l.length&&"%label%"!=l&&"%tooltip%"!=l){var t=null;if(match.index>n&&"%"==b.charAt(match.index-1))t=l.substring(1);else{var q=l.substring(1,l.length-1);if("id"==q)t=a.id;else if(0>q.indexOf("{"))for(var c=a;null==t&&null!=c;)null!=c.value&&"object"==typeof c.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(t=c.getAttribute(q+"_"+Graph.diagramLanguage)),
-null==t&&(t=c.hasAttribute(q)?null!=c.getAttribute(q)?c.getAttribute(q):"":null)),c=this.model.getParent(c);null==t&&(t=this.getGlobalVariable(q));null==t&&null!=e&&(t=e[q])}d.push(b.substring(n,match.index)+(null!=t?t:l));n=match.index+l.length}}d.push(b.substring(n))}return d.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var b=[],e=0;e<a.length;e++){var d=this.model.getCell(a[e].id);null!=d&&b.push(d)}this.setSelectionCells(b)}else this.clearSelection()};
+Graph.prototype.createLayersDialog=function(a){var b=document.createElement("div");b.style.position="absolute";for(var e=this.getModel(),d=e.getChildCount(e.root),l=0;l<d;l++)mxUtils.bind(this,function(d){var l=document.createElement("div");l.style.overflow="hidden";l.style.textOverflow="ellipsis";l.style.padding="2px";l.style.whiteSpace="nowrap";var m=document.createElement("input");m.style.display="inline-block";m.setAttribute("type","checkbox");e.isVisible(d)&&(m.setAttribute("checked","checked"),
+m.defaultChecked=!0);l.appendChild(m);var c=this.convertValueToString(d)||mxResources.get("background")||"Background";l.setAttribute("title",c);mxUtils.write(l,c);b.appendChild(l);mxEvent.addListener(m,"click",function(){null!=m.getAttribute("checked")?m.removeAttribute("checked"):m.setAttribute("checked","checked");e.setVisible(d,m.checked);null!=a&&a(d)})})(e.getChildAt(e.root,l));return b};
+Graph.prototype.replacePlaceholders=function(a,b,e,d){d=[];if(null!=b){for(var l=0;match=this.placeholderPattern.exec(b);){var m=match[0];if(2<m.length&&"%label%"!=m&&"%tooltip%"!=m){var u=null;if(match.index>l&&"%"==b.charAt(match.index-1))u=m.substring(1);else{var q=m.substring(1,m.length-1);if("id"==q)u=a.id;else if(0>q.indexOf("{"))for(var c=a;null==u&&null!=c;)null!=c.value&&"object"==typeof c.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(u=c.getAttribute(q+"_"+Graph.diagramLanguage)),
+null==u&&(u=c.hasAttribute(q)?null!=c.getAttribute(q)?c.getAttribute(q):"":null)),c=this.model.getParent(c);null==u&&(u=this.getGlobalVariable(q));null==u&&null!=e&&(u=e[q])}d.push(b.substring(l,match.index)+(null!=u?u:m));l=match.index+m.length}}d.push(b.substring(l))}return d.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var b=[],e=0;e<a.length;e++){var d=this.model.getCell(a[e].id);null!=d&&b.push(d)}this.setSelectionCells(b)}else this.clearSelection()};
Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset())):this.setSelectionCells(a)};Graph.prototype.isCloneConnectSource=function(a){var b=null;null!=this.layoutManager&&(b=this.layoutManager.getLayout(this.model.getParent(a)));return this.isTableRow(a)||this.isTableCell(a)||null!=b&&b.constructor==mxStackLayout};
-Graph.prototype.connectVertex=function(a,b,e,d,n,l,t,q){l=l?l:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var c=this.isCloneConnectSource(a),f=c?a:this.getCompositeParent(a),g=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(f.geometry.x,f.geometry.y);b==mxConstants.DIRECTION_NORTH?(g.x+=f.geometry.width/2,g.y-=e):b==
-mxConstants.DIRECTION_SOUTH?(g.x+=f.geometry.width/2,g.y+=f.geometry.height+e):(g.x=b==mxConstants.DIRECTION_WEST?g.x-e:g.x+(f.geometry.width+e),g.y+=f.geometry.height/2);var m=this.view.getState(this.model.getParent(a));e=this.view.scale;var k=this.view.translate,f=k.x*e,k=k.y*e;null!=m&&this.model.isVertex(m.cell)&&(f=m.x,k=m.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(g.x+=a.parent.geometry.x,g.y+=a.parent.geometry.y);l=l?null:(new mxRectangle(f+g.x*e,k+g.y*e)).grow(40);l=null!=l?this.getCells(0,
-0,0,0,null,null,l):null;var p=null!=l&&0<l.length?l.reverse()[0]:null,u=!1;null!=p&&this.model.isAncestor(p,a)&&(u=!0,p=null);null==p&&(l=this.getSwimlaneAt(f+g.x*e,k+g.y*e),null!=l&&(u=!1,p=l));for(l=p;null!=l;){if(this.isCellLocked(l)){p=null;break}l=this.model.getParent(l)}null!=p&&(l=this.view.getState(a),m=this.view.getState(p),null!=l&&null!=m&&mxUtils.intersects(l,m)&&(p=null));var A=!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||n;A&&("1"!=urlParams.sketch||n)&&(b==mxConstants.DIRECTION_NORTH?
-g.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?g.y+=a.geometry.height/2:g.x=b==mxConstants.DIRECTION_WEST?g.x-a.geometry.width/2:g.x+a.geometry.width/2);null==p||this.isCellConnectable(p)||this.isSwimlane(p)||(n=this.getModel().getParent(p),this.getModel().isVertex(n)&&this.isCellConnectable(n)&&(p=n));if(p==a||this.model.isEdge(p)||!this.isCellConnectable(p)&&!this.isSwimlane(p))p=null;var F=[],z=null!=p&&this.isSwimlane(p),y=z?null:p;n=mxUtils.bind(this,function(f){if(null==t||null!=f||
-null==p&&c){this.model.beginUpdate();try{if(null==y&&A){for(var e=null!=f?f:a,k=this.getCellGeometry(e);null!=k&&k.relative;)e=this.getModel().getParent(e),k=this.getCellGeometry(e);e=c?a:this.getCompositeParent(e);y=null!=f?f:this.duplicateCells([e],!1)[0];null!=f&&this.addCells([y],this.model.getParent(a),null,null,null,!0);k=this.getCellGeometry(y);null!=k&&(null!=f&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?g.y-=k.height/2:b==mxConstants.DIRECTION_SOUTH?g.y+=k.height/2:g.x=b==mxConstants.DIRECTION_WEST?
-g.x-k.width/2:g.x+k.width/2),k.x=g.x-k.width/2,k.y=g.y-k.height/2);z?(this.addCells([y],p,null,null,null,!0),p=null):!A||null!=p||u||c||this.addCells([y],this.getDefaultParent(),null,null,null,!0)}var m=mxEvent.isControlDown(d)&&mxEvent.isShiftDown(d)&&A||null==p&&c?null:this.insertEdge(this.model.getParent(a),null,"",a,y,this.createCurrentEdgeStyle());if(null!=m&&this.connectionHandler.insertBeforeSource){var n=null;for(f=a;null!=f.parent&&null!=f.geometry&&f.geometry.relative&&f.parent!=m.parent;)f=
-this.model.getParent(f);null!=f&&null!=f.parent&&f.parent==m.parent&&(n=f.parent.getIndex(f),this.model.add(f.parent,m,n))}null==p&&null!=y&&null!=a.parent&&c&&b==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,y,n));null!=m&&F.push(m);null==p&&null!=y&&F.push(y);null==y&&null!=m&&m.geometry.setTerminalPoint(g,!1);null!=m&&this.fireEvent(new mxEventObject("cellsInserted","cells",[m]))}finally{this.model.endUpdate()}}if(null!=q)q(F);else return F});if(null==t||null!=y||
-!A||null==p&&c)return n(y);t(f+g.x*e,k+g.y*e,n)};Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")};
+Graph.prototype.connectVertex=function(a,b,e,d,l,m,u,q){m=m?m:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var c=this.isCloneConnectSource(a),f=c?a:this.getCompositeParent(a),g=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(f.geometry.x,f.geometry.y);b==mxConstants.DIRECTION_NORTH?(g.x+=f.geometry.width/2,g.y-=e):b==
+mxConstants.DIRECTION_SOUTH?(g.x+=f.geometry.width/2,g.y+=f.geometry.height+e):(g.x=b==mxConstants.DIRECTION_WEST?g.x-e:g.x+(f.geometry.width+e),g.y+=f.geometry.height/2);var k=this.view.getState(this.model.getParent(a));e=this.view.scale;var p=this.view.translate,f=p.x*e,p=p.y*e;null!=k&&this.model.isVertex(k.cell)&&(f=k.x,p=k.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(g.x+=a.parent.geometry.x,g.y+=a.parent.geometry.y);m=m?null:(new mxRectangle(f+g.x*e,p+g.y*e)).grow(40);m=null!=m?this.getCells(0,
+0,0,0,null,null,m):null;var t=null!=m&&0<m.length?m.reverse()[0]:null,v=!1;null!=t&&this.model.isAncestor(t,a)&&(v=!0,t=null);null==t&&(m=this.getSwimlaneAt(f+g.x*e,p+g.y*e),null!=m&&(v=!1,t=m));for(m=t;null!=m;){if(this.isCellLocked(m)){t=null;break}m=this.model.getParent(m)}null!=t&&(m=this.view.getState(a),k=this.view.getState(t),null!=m&&null!=k&&mxUtils.intersects(m,k)&&(t=null));var A=!mxEvent.isShiftDown(d)||mxEvent.isControlDown(d)||l;A&&("1"!=urlParams.sketch||l)&&(b==mxConstants.DIRECTION_NORTH?
+g.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?g.y+=a.geometry.height/2:g.x=b==mxConstants.DIRECTION_WEST?g.x-a.geometry.width/2:g.x+a.geometry.width/2);null==t||this.isCellConnectable(t)||this.isSwimlane(t)||(l=this.getModel().getParent(t),this.getModel().isVertex(l)&&this.isCellConnectable(l)&&(t=l));if(t==a||this.model.isEdge(t)||!this.isCellConnectable(t)&&!this.isSwimlane(t))t=null;var F=[],y=null!=t&&this.isSwimlane(t),z=y?null:t;l=mxUtils.bind(this,function(f){if(null==u||null!=f||
+null==t&&c){this.model.beginUpdate();try{if(null==z&&A){for(var e=null!=f?f:a,k=this.getCellGeometry(e);null!=k&&k.relative;)e=this.getModel().getParent(e),k=this.getCellGeometry(e);e=c?a:this.getCompositeParent(e);z=null!=f?f:this.duplicateCells([e],!1)[0];null!=f&&this.addCells([z],this.model.getParent(a),null,null,null,!0);k=this.getCellGeometry(z);null!=k&&(null!=f&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?g.y-=k.height/2:b==mxConstants.DIRECTION_SOUTH?g.y+=k.height/2:g.x=b==mxConstants.DIRECTION_WEST?
+g.x-k.width/2:g.x+k.width/2),k.x=g.x-k.width/2,k.y=g.y-k.height/2);y?(this.addCells([z],t,null,null,null,!0),t=null):!A||null!=t||v||c||this.addCells([z],this.getDefaultParent(),null,null,null,!0)}var p=mxEvent.isControlDown(d)&&mxEvent.isShiftDown(d)&&A||null==t&&c?null:this.insertEdge(this.model.getParent(a),null,"",a,z,this.createCurrentEdgeStyle());if(null!=p&&this.connectionHandler.insertBeforeSource){var l=null;for(f=a;null!=f.parent&&null!=f.geometry&&f.geometry.relative&&f.parent!=p.parent;)f=
+this.model.getParent(f);null!=f&&null!=f.parent&&f.parent==p.parent&&(l=f.parent.getIndex(f),this.model.add(f.parent,p,l))}null==t&&null!=z&&null!=a.parent&&c&&b==mxConstants.DIRECTION_WEST&&(l=a.parent.getIndex(a),this.model.add(a.parent,z,l));null!=p&&F.push(p);null==t&&null!=z&&F.push(z);null==z&&null!=p&&p.geometry.setTerminalPoint(g,!1);null!=p&&this.fireEvent(new mxEventObject("cellsInserted","cells",[p]))}finally{this.model.endUpdate()}}if(null!=q)q(F);else return F});if(null==u||null!=z||
+!A||null==t&&c)return l(z);u(f+g.x*e,p+g.y*e,l)};Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){var b=this.model.getValue(a);if(null!=b&&"object"==typeof b){var e=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),d=a;null==e&&null!=d;)null!=d.value&&"object"==typeof d.value&&(e=d.hasAttribute(b)?null!=d.getAttribute(b)?d.getAttribute(b):"":null),d=this.model.getParent(d);else e=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=b.getAttribute("label_"+Graph.diagramLanguage)),
null==e&&(e=b.getAttribute("label")||"");return e||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getLinkTargetForCell=function(a){return null!=a.value&&"object"==typeof a.value?a.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b};
Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a,b){return mxEvent.isShiftDown(a)||"1"==mxUtils.getValue(b.style,"moveCells","0")};
-Graph.prototype.foldCells=function(a,b,e,d,n){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var t=this.view.getState(e[l]),q=this.getCellGeometry(e[l]);if(null!=t&&null!=q){var c=Math.round(q.width-t.width/this.view.scale),f=Math.round(q.height-t.height/this.view.scale);if(0!=f||0!=c){var g=this.model.getParent(e[l]),m=this.layoutManager.getLayout(g);
-null==m?null!=n&&this.isMoveCellsEvent(n,t)&&this.moveSiblings(t,g,c,f):null!=n&&mxEvent.isAltDown(n)||m.constructor!=mxStackLayout||m.resizeLast||this.resizeParentStacks(g,m,c,f)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
-Graph.prototype.moveSiblings=function(a,b,e,d){this.model.beginUpdate();try{var n=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<n.length;b++)if(n[b]!=a.cell){var l=this.view.getState(n[b]),t=this.getCellGeometry(n[b]);null!=l&&null!=t&&(t=t.clone(),t.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(l.y-a.y)/a.height)))),this.model.setGeometry(n[b],t))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var n=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==n&&!b.resizeLast;){var l=this.getCellGeometry(a),t=this.view.getState(a);null!=t&&null!=l&&(l=l.clone(),b.horizontal?l.width+=e+Math.min(0,t.width/this.view.scale-l.width):l.height+=d+Math.min(0,t.height/this.view.scale-l.height),this.model.setGeometry(a,
-l));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.getCurrentCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.getCurrentCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
+Graph.prototype.foldCells=function(a,b,e,d,l){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var m=0;m<e.length;m++){var u=this.view.getState(e[m]),q=this.getCellGeometry(e[m]);if(null!=u&&null!=q){var c=Math.round(q.width-u.width/this.view.scale),f=Math.round(q.height-u.height/this.view.scale);if(0!=f||0!=c){var g=this.model.getParent(e[m]),k=this.layoutManager.getLayout(g);
+null==k?null!=l&&this.isMoveCellsEvent(l,u)&&this.moveSiblings(u,g,c,f):null!=l&&mxEvent.isAltDown(l)||k.constructor!=mxStackLayout||k.resizeLast||this.resizeParentStacks(g,k,c,f)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.moveSiblings=function(a,b,e,d){this.model.beginUpdate();try{var l=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<l.length;b++)if(l[b]!=a.cell){var m=this.view.getState(l[b]),u=this.getCellGeometry(l[b]);null!=m&&null!=u&&(u=u.clone(),u.translate(Math.round(e*Math.max(0,Math.min(1,(m.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(m.y-a.y)/a.height)))),this.model.setGeometry(l[b],u))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var l=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==l&&!b.resizeLast;){var m=this.getCellGeometry(a),u=this.view.getState(a);null!=u&&null!=m&&(m=m.clone(),b.horizontal?m.width+=e+Math.min(0,u.width/this.view.scale-m.width):m.height+=d+Math.min(0,u.height/this.view.scale-m.height),this.model.setGeometry(a,
+m));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.getCurrentCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.getCurrentCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
Graph.prototype.isLabelMovable=function(a){var b=this.getCurrentCellStyle(a);return null!=b.movableLabel?"0"!=b.movableLabel:mxGraph.prototype.isLabelMovable.apply(this,arguments)};Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,b,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};
Graph.prototype.getSwimlaneAt=function(a,b,e){var d=mxGraph.prototype.getSwimlaneAt.apply(this,arguments);this.isCellLocked(d)&&(d=null);return d};Graph.prototype.isCellFoldable=function(a){var b=this.getCurrentCellStyle(a);return this.foldingEnabled&&("1"==b.treeFolding||!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=b.collapsible||!this.isContainer(a)&&"1"==b.collapsible))};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)};
-Graph.prototype.fitWindow=function(a,b){b=null!=b?b:10;var e=this.container.clientWidth-b,d=this.container.clientHeight-b,n=Math.floor(20*Math.min(e/a.width,d/a.height))/20;this.zoomTo(n);if(mxUtils.hasScrollbars(this.container)){var l=this.view.translate;this.container.scrollTop=(a.y+l.y)*n-Math.max((d-a.height*n)/2+b/2,0);this.container.scrollLeft=(a.x+l.x)*n-Math.max((e-a.width*n)/2+b/2,0)}};
-Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var e=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=a.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==e&&(e=a.value.getAttribute("tooltip"));if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),b=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&(e.push("linkTarget"),e.push("link"));for(var n=0;n<a.length;n++)0>
-mxUtils.indexOf(e,a[n].nodeName)&&0<a[n].nodeValue.length&&d.push({name:a[n].nodeName,value:a[n].nodeValue});d.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});for(n=0;n<d.length;n++)"link"==d[n].name&&this.isCustomLink(d[n].value)||(b+=("link"!=d[n].name?"<b>"+d[n].name+":</b> ":"")+mxUtils.htmlEntities(d[n].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;text-overflow:ellipsis;overflow:hidden;">'+b+"</div>"))}}return b};
+Graph.prototype.fitWindow=function(a,b){b=null!=b?b:10;var e=this.container.clientWidth-b,d=this.container.clientHeight-b,l=Math.floor(20*Math.min(e/a.width,d/a.height))/20;this.zoomTo(l);if(mxUtils.hasScrollbars(this.container)){var m=this.view.translate;this.container.scrollTop=(a.y+m.y)*l-Math.max((d-a.height*l)/2+b/2,0);this.container.scrollLeft=(a.x+m.x)*l-Math.max((e-a.width*l)/2+b/2,0)}};
+Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var e=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=a.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==e&&(e=a.value.getAttribute("tooltip"));if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),b=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&(e.push("linkTarget"),e.push("link"));for(var l=0;l<a.length;l++)0>
+mxUtils.indexOf(e,a[l].nodeName)&&0<a[l].nodeValue.length&&d.push({name:a[l].nodeName,value:a[l].nodeValue});d.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});for(l=0;l<d.length;l++)"link"==d[l].name&&this.isCustomLink(d[l].value)||(b+=("link"!=d[l].name?"<b>"+d[l].name+":</b> ":"")+mxUtils.htmlEntities(d[l].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;text-overflow:ellipsis;overflow:hidden;">'+b+"</div>"))}}return b};
Graph.prototype.getFlowAnimationStyle=function(){var a=document.getElementsByTagName("head")[0];if(null!=a&&null==this.flowAnimationStyle){this.flowAnimationStyle=document.createElement("style");this.flowAnimationStyle.setAttribute("id","geEditorFlowAnimation-"+Editor.guid());this.flowAnimationStyle.type="text/css";var b=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(b);a.appendChild(this.flowAnimationStyle)}return this.flowAnimationStyle};
Graph.prototype.getFlowAnimationStyleCss=function(a){return"."+a+" {\nanimation: "+a+" 0.5s linear;\nanimation-iteration-count: infinite;\n}\n@keyframes "+a+" {\nto {\nstroke-dashoffset: "+-16*this.view.scale+";\n}\n}"};Graph.prototype.stringToBytes=function(a){return Graph.stringToBytes(a)};Graph.prototype.bytesToString=function(a){return Graph.bytesToString(a)};Graph.prototype.compressNode=function(a){return Graph.compressNode(a)};Graph.prototype.compress=function(a,b){return Graph.compress(a,b)};
Graph.prototype.decompress=function(a,b){return Graph.decompress(a,b)};Graph.prototype.zapGremlins=function(a){return Graph.zapGremlins(a)};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;
@@ -2414,8 +2415,8 @@ IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUC
HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.resetHandler=mxUtils.bind(this,function(){this.reset()});this.repaintHandler=
mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);
this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE,this.resetHandler);mxEvent.addListener(this.graph.container,"scroll",this.resetHandler);this.graph.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,
-mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,d){b=!1;var e=d.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var l=this.getState(d.getState());
-null==l&&mxEvent.isTouchEvent(e)||this.update(l)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,d){var e=d.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||this.update(this.getState(d.getState()),d.getGraphX(),d.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,d){var e=d.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));
+mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,d){b=!1;var e=d.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var m=this.getState(d.getState());
+null==m&&mxEvent.isTouchEvent(e)||this.update(m)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,d){var e=d.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||this.update(this.getState(d.getState()),d.getGraphX(),d.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,d){var e=d.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));
this.isResetEvent(e)?this.reset():this.isActive()&&!b&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),d):this.isActive()?1==this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())?this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(d.getGraphX(),d.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,d.getGraphX(),d.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||
this.reset();b=!1;this.resetActiveArrow()})})};HoverIcons.prototype.isResetEvent=function(a,b){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isPopupTrigger(a)&&!this.graph.isCloneEvent(a)};
HoverIcons.prototype.createArrow=function(a,b){var e=null,e=mxUtils.createImage(a.src);e.style.width=a.width+"px";e.style.height=a.height+"px";e.style.padding=this.tolerance+"px";null!=b&&e.setAttribute("title",b);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,
@@ -2424,96 +2425,96 @@ this.resetActiveArrow()}));return e};HoverIcons.prototype.resetActiveArrow=funct
HoverIcons.prototype.visitNodes=function(a){for(var b=0;b<this.elts.length;b++)null!=this.elts[b]&&a(this.elts[b])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(b){b.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState};
HoverIcons.prototype.drag=function(a,b,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,b,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=b&&b.setHandlesVisible(!1),b=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=b&&"orthogonalEdgeStyle"===
mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),b.cell.style=mxUtils.setStyle(b.cell.style,"sourcePortConstraint",a),b.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,b,e){return this.graph.view.getState(this.graph.getCellAt(b,e))};
-HoverIcons.prototype.click=function(a,b,e){var d=e.getEvent(),n=e.getGraphX(),l=e.getGraphY(),n=this.getStateAt(a,n,l);null==n||!this.graph.model.isEdge(n.cell)||this.graph.isCloneEvent(d)||n.getVisibleTerminalState(!0)!=a&&n.getVisibleTerminalState(!1)!=a?null!=a&&this.execute(a,b,e):(this.graph.setSelectionCell(n.cell),this.reset());e.consume()};
+HoverIcons.prototype.click=function(a,b,e){var d=e.getEvent(),l=e.getGraphX(),m=e.getGraphY(),l=this.getStateAt(a,l,m);null==l||!this.graph.model.isEdge(l.cell)||this.graph.isCloneEvent(d)||l.getVisibleTerminalState(!0)!=a&&l.getVisibleTerminalState(!1)!=a?null!=a&&this.execute(a,b,e):(this.graph.setSelectionCell(l.cell),this.reset());e.consume()};
HoverIcons.prototype.execute=function(a,b,e){e=e.getEvent();this.graph.selectCellsForConnectVertex(this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,e,this.graph.isCloneEvent(e),this.graph.isCloneEvent(e)),e,this)};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null};
HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentState){this.currentState=this.getState(this.currentState);if(null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){var a=mxRectangle.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(a=mxRectangle.fromRectangle(this.currentState.shape.boundingBox));a.grow(this.graph.tolerance);a.grow(this.arrowSpacing);
var b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);this.graph.isTableRow(this.currentState.cell)&&(b=this.graph.selectionCellsHandler.getHandler(this.graph.model.getParent(this.currentState.cell)));var e=null;null!=b&&(a.x-=b.horizontalOffset/2,a.y-=b.verticalOffset/2,a.width+=b.horizontalOffset,a.height+=b.verticalOffset,null!=b.rotationShape&&null!=b.rotationShape.node&&"hidden"!=b.rotationShape.node.style.visibility&&"none"!=b.rotationShape.node.style.display&&null!=b.rotationShape.boundingBox&&
(e=b.rotationShape.boundingBox));b=mxUtils.bind(this,function(a,c,b){if(null!=e){var d=new mxRectangle(c,b,a.clientWidth,a.clientHeight);mxUtils.intersects(d,e)&&(a==this.arrowUp?b-=d.y+d.height-e.y:a==this.arrowRight?c+=e.x+e.width-d.x:a==this.arrowDown?b+=e.y+e.height-d.y:a==this.arrowLeft&&(c-=d.x+d.width-e.x))}a.style.left=c+"px";a.style.top=b+"px";mxUtils.setOpacity(a,this.inactiveOpacity)});b(this.arrowUp,Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance),Math.round(a.y-
this.triangleUp.height-this.tolerance));b(this.arrowRight,Math.round(a.x+a.width-this.tolerance),Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance));b(this.arrowDown,parseInt(this.arrowUp.style.left),Math.round(a.y+a.height-this.tolerance));b(this.arrowLeft,Math.round(a.x-this.triangleLeft.width-this.tolerance),parseInt(this.arrowRight.style.top));if(this.checkCollisions){var b=this.graph.getCellAt(a.x+a.width+this.triangleRight.width/2,this.currentState.getCenterY()),
-d=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),n=this.graph.getCellAt(this.currentState.getCenterX(),a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==d&&d==n&&n==a&&(a=n=d=b=null);var l=this.graph.getCellGeometry(this.currentState.cell),t=mxUtils.bind(this,function(a,c){var b=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null==a||this.graph.model.isAncestor(a,
-this.currentState.cell)||this.graph.isSwimlane(a)||!(null==b||null==l||b.height<3*l.height&&b.width<3*l.width)?c.style.visibility="visible":c.style.visibility="hidden"});t(b,this.arrowRight);t(d,this.arrowLeft);t(n,this.arrowUp);t(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),
+d=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),l=this.graph.getCellAt(this.currentState.getCenterX(),a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==d&&d==l&&l==a&&(a=l=d=b=null);var m=this.graph.getCellGeometry(this.currentState.cell),u=mxUtils.bind(this,function(a,c){var b=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null==a||this.graph.model.isAncestor(a,
+this.currentState.cell)||this.graph.isSwimlane(a)||!(null==b||null==m||b.height<3*m.height&&b.width<3*m.width)?c.style.visibility="visible":c.style.visibility="hidden"});u(b,this.arrowRight);u(d,this.arrowLeft);u(l,this.arrowUp);u(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),
this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title",mxResources.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}};
HoverIcons.prototype.computeBoundingBox=function(){var a=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(b){null!=b.parentNode&&(b=new mxRectangle(b.offsetLeft,b.offsetTop,b.offsetWidth,b.offsetHeight),null==a?a=b:a.add(b))});return a};
HoverIcons.prototype.getState=function(a){if(null!=a)if(a=a.cell,this.graph.getModel().contains(a)){if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var b=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(b)&&this.graph.isCellConnectable(b)&&(a=b)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a);null!=a&&null==a.style&&(a=null)}else a=null;return a};
HoverIcons.prototype.update=function(a,b,e){if(!this.graph.connectionArrowsEnabled||null!=a&&"0"==mxUtils.getValue(a.style,"allowArrows","1"))this.reset();else{null!=a&&null!=a.cell.geometry&&a.cell.geometry.relative&&this.graph.model.isEdge(a.cell.parent)&&(a=null);var d=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,d=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||
this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,b,e))}),this.updateDelay+10))):null!=this.startTime&&(d=(new Date).getTime()-this.startTime);this.setDisplay("");null!=this.currentState&&this.currentState!=a&&d<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,b,e)?this.reset(!1):(null!=this.currentState||d>this.activationDelay)&&this.currentState!=a&&(d>this.updateDelay&&null!=a||null==this.bbox||null==b||null==e||!mxUtils.contains(this.bbox,
b,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()):this.reset())}};
-HoverIcons.prototype.setCurrentState=function(a){"eastwest"!=a.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=a};Graph.prototype.createParent=function(a,b,e,d,n){a=this.cloneCell(a);for(var l=0;l<e;l++){var t=this.cloneCell(b),q=this.getCellGeometry(t);null!=q&&(q.x+=l*d,q.y+=l*n);a.insert(t)}return a};
-Graph.prototype.createTable=function(a,b,e,d,n,l,t,q,c){e=null!=e?e:60;d=null!=d?d:40;l=null!=l?l:30;q=null!=q?q:"shape=partialRectangle;html=1;whiteSpace=wrap;collapsible=0;dropTarget=0;pointerEvents=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";c=null!=c?c:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;";return this.createParent(this.createVertex(null,null,null!=n?n:"",
-0,0,b*e,a*d+(null!=n?l:0),null!=t?t:"shape=table;html=1;whiteSpace=wrap;startSize="+(null!=n?l:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,b*e,d,q),this.createVertex(null,null,"",0,0,e,d,c),b,e,0),a,0,d)};
-Graph.prototype.setTableValues=function(a,b,e){for(var d=this.model.getChildCells(a,!0),n=0;n<d.length;n++)if(null!=e&&(d[n].value=e[n]),null!=b)for(var l=this.model.getChildCells(d[n],!0),t=0;t<l.length;t++)null!=b[n][t]&&(l[t].value=b[n][t]);return a};
-Graph.prototype.createCrossFunctionalSwimlane=function(a,b,e,d,n,l,t,q,c){e=null!=e?e:120;d=null!=d?d:120;n=null!=n?n:40;t=null!=t?t:"swimlane;horizontal=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize="+n+";html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";q=null!=q?q:"swimlane;connectable=0;startSize=40;html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";c=null!=c?c:"swimlane;connectable=0;startSize=0;html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";
-n=this.createVertex(null,null,"",0,0,b*e,a*d,null!=l?l:"shape=table;childLayout=tableLayout;rowLines=0;columnLines=0;startSize="+n+";html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");l=mxUtils.getValue(this.getCellStyle(n),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n.geometry.width+=l;n.geometry.height+=l;t=this.createVertex(null,null,"",0,l,b*e+l,d,t);n.insert(this.createParent(t,this.createVertex(null,null,"",l,0,e,d,q),b,e,0));return 1<a?(t.geometry.y=
-d+l,this.createParent(n,this.createParent(t,this.createVertex(null,null,"",l,0,e,d,c),b,e,0),a-1,0,d)):n};Graph.prototype.isTableCell=function(a){return this.model.isVertex(a)&&this.isTableRow(this.model.getParent(a))};Graph.prototype.isTableRow=function(a){return this.model.isVertex(a)&&this.isTable(this.model.getParent(a))};Graph.prototype.isTable=function(a){a=this.getCellStyle(a);return null!=a&&"tableLayout"==a.childLayout};
-Graph.prototype.setTableRowHeight=function(a,b,e){e=null!=e?e:!0;var d=this.getModel();d.beginUpdate();try{var n=this.getCellGeometry(a);if(null!=n){n=n.clone();n.height+=b;d.setGeometry(a,n);var l=d.getParent(a),t=d.getChildCells(l,!0);if(!e){var q=mxUtils.indexOf(t,a);if(q<t.length-1){var c=t[q+1],f=this.getCellGeometry(c);null!=f&&(f=f.clone(),f.y+=b,f.height-=b,d.setGeometry(c,f))}}var g=this.getCellGeometry(l);null!=g&&(e||(e=a==t[t.length-1]),e&&(g=g.clone(),g.height+=b,d.setGeometry(l,g)));
-null!=this.layoutManager&&this.layoutManager.executeLayout(l,!0)}}finally{d.endUpdate()}};
-Graph.prototype.setTableColumnWidth=function(a,b,e){e=null!=e?e:!1;var d=this.getModel(),n=d.getParent(a),l=d.getParent(n),t=d.getChildCells(n,!0);a=mxUtils.indexOf(t,a);var q=a==t.length-1;d.beginUpdate();try{for(var c=d.getChildCells(l,!0),f=0;f<c.length;f++){var n=c[f],t=d.getChildCells(n,!0),g=t[a],m=this.getCellGeometry(g);null!=m&&(m=m.clone(),m.width+=b,d.setGeometry(g,m));a<t.length-1&&(g=t[a+1],m=this.getCellGeometry(g),null!=m&&(m=m.clone(),m.x+=b,e||(m.width-=b),d.setGeometry(g,m)))}if(q||
-e){var k=this.getCellGeometry(l);null!=k&&(k=k.clone(),k.width+=b,d.setGeometry(l,k))}null!=this.layoutManager&&this.layoutManager.executeLayout(l,!0)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
-TableLayout.prototype.getSize=function(a,b){for(var e=0,d=0;d<a.length;d++)if(!this.isVertexIgnored(a[d])){var n=this.graph.getCellGeometry(a[d]);null!=n&&(e+=b?n.width:n.height)}return e};TableLayout.prototype.getRowLayout=function(a,b){for(var e=this.graph.model.getChildCells(a,!0),d=this.graph.getActualStartSize(a,!0),n=this.getSize(e,!0),l=b-d.x-d.width,t=[],d=d.x,q=0;q<e.length;q++){var c=this.graph.getCellGeometry(e[q]);null!=c&&(d+=c.width*l/n,t.push(Math.round(d)))}return t};
-TableLayout.prototype.layoutRow=function(a,b,e,d){var n=this.graph.getModel(),l=n.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var t=a.x,q=0;null!=b&&(b=b.slice(),b.splice(0,0,a.x));for(var c=0;c<l.length;c++){var f=this.graph.getCellGeometry(l[c]);null!=f&&(f=f.clone(),f.y=a.y,f.height=e-a.y-a.height,null!=b?(f.x=b[c],f.width=b[c+1]-f.x,c==l.length-1&&c<b.length-2&&(f.width=d-f.x-a.x-a.width)):(f.x=t,t+=f.width,c==l.length-1?f.width=d-a.x-a.width-q:q+=f.width),n.setGeometry(l[c],f))}return q};
-TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),e=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),n="1"==mxUtils.getValue(d,"resizeLastRow","0"),l="1"==mxUtils.getValue(d,"resizeLast","0"),d="1"==mxUtils.getValue(d,"fixedRows","0"),t=this.graph.getModel(),q=0;t.beginUpdate();try{var c=e.height-b.y-b.height,f=e.width-b.x-b.width,g=t.getChildCells(a,!0),m=this.getSize(g,!1);if(0<c&&0<f&&0<g.length&&0<m){if(n){var k=this.graph.getCellGeometry(g[g.length-
-1]);null!=k&&(k=k.clone(),k.height=c-m+k.height,t.setGeometry(g[g.length-1],k))}for(var p=l?null:this.getRowLayout(g[0],f),u=b.y,A=0;A<g.length;A++)k=this.graph.getCellGeometry(g[A]),null!=k&&(k=k.clone(),k.x=b.x,k.width=f,k.y=Math.round(u),u=n||d?u+k.height:u+k.height/m*c,k.height=Math.round(u)-k.y,t.setGeometry(g[A],k)),q=Math.max(q,this.layoutRow(g[A],p,k.height,f));d&&c<m&&(e=e.clone(),e.height=u+b.height,t.setGeometry(a,e));l&&f<q+Graph.minTableColumnWidth&&(e=e.clone(),e.width=q+b.width+b.x+
-Graph.minTableColumnWidth,t.setGeometry(a,e))}}finally{t.endUpdate()}}};
+HoverIcons.prototype.setCurrentState=function(a){"eastwest"!=a.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=a};Graph.prototype.createParent=function(a,b,e,d,l){a=this.cloneCell(a);for(var m=0;m<e;m++){var u=this.cloneCell(b),q=this.getCellGeometry(u);null!=q&&(q.x+=m*d,q.y+=m*l);a.insert(u)}return a};
+Graph.prototype.createTable=function(a,b,e,d,l,m,u,q,c){e=null!=e?e:60;d=null!=d?d:40;m=null!=m?m:30;q=null!=q?q:"shape=partialRectangle;html=1;whiteSpace=wrap;collapsible=0;dropTarget=0;pointerEvents=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";c=null!=c?c:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;";return this.createParent(this.createVertex(null,null,null!=l?l:"",
+0,0,b*e,a*d+(null!=l?m:0),null!=u?u:"shape=table;html=1;whiteSpace=wrap;startSize="+(null!=l?m:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,b*e,d,q),this.createVertex(null,null,"",0,0,e,d,c),b,e,0),a,0,d)};
+Graph.prototype.setTableValues=function(a,b,e){for(var d=this.model.getChildCells(a,!0),l=0;l<d.length;l++)if(null!=e&&(d[l].value=e[l]),null!=b)for(var m=this.model.getChildCells(d[l],!0),u=0;u<m.length;u++)null!=b[l][u]&&(m[u].value=b[l][u]);return a};
+Graph.prototype.createCrossFunctionalSwimlane=function(a,b,e,d,l,m,u,q,c){e=null!=e?e:120;d=null!=d?d:120;l=null!=l?l:40;u=null!=u?u:"swimlane;horizontal=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize="+l+";html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";q=null!=q?q:"swimlane;connectable=0;startSize=40;html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";c=null!=c?c:"swimlane;connectable=0;startSize=0;html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";
+l=this.createVertex(null,null,"",0,0,b*e,a*d,null!=m?m:"shape=table;childLayout=tableLayout;rowLines=0;columnLines=0;startSize="+l+";html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");m=mxUtils.getValue(this.getCellStyle(l),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);l.geometry.width+=m;l.geometry.height+=m;u=this.createVertex(null,null,"",0,m,b*e+m,d,u);l.insert(this.createParent(u,this.createVertex(null,null,"",m,0,e,d,q),b,e,0));return 1<a?(u.geometry.y=
+d+m,this.createParent(l,this.createParent(u,this.createVertex(null,null,"",m,0,e,d,c),b,e,0),a-1,0,d)):l};Graph.prototype.isTableCell=function(a){return this.model.isVertex(a)&&this.isTableRow(this.model.getParent(a))};Graph.prototype.isTableRow=function(a){return this.model.isVertex(a)&&this.isTable(this.model.getParent(a))};Graph.prototype.isTable=function(a){a=this.getCellStyle(a);return null!=a&&"tableLayout"==a.childLayout};
+Graph.prototype.setTableRowHeight=function(a,b,e){e=null!=e?e:!0;var d=this.getModel();d.beginUpdate();try{var l=this.getCellGeometry(a);if(null!=l){l=l.clone();l.height+=b;d.setGeometry(a,l);var m=d.getParent(a),u=d.getChildCells(m,!0);if(!e){var q=mxUtils.indexOf(u,a);if(q<u.length-1){var c=u[q+1],f=this.getCellGeometry(c);null!=f&&(f=f.clone(),f.y+=b,f.height-=b,d.setGeometry(c,f))}}var g=this.getCellGeometry(m);null!=g&&(e||(e=a==u[u.length-1]),e&&(g=g.clone(),g.height+=b,d.setGeometry(m,g)));
+null!=this.layoutManager&&this.layoutManager.executeLayout(m,!0)}}finally{d.endUpdate()}};
+Graph.prototype.setTableColumnWidth=function(a,b,e){e=null!=e?e:!1;var d=this.getModel(),l=d.getParent(a),m=d.getParent(l),u=d.getChildCells(l,!0);a=mxUtils.indexOf(u,a);var q=a==u.length-1;d.beginUpdate();try{for(var c=d.getChildCells(m,!0),f=0;f<c.length;f++){var l=c[f],u=d.getChildCells(l,!0),g=u[a],k=this.getCellGeometry(g);null!=k&&(k=k.clone(),k.width+=b,d.setGeometry(g,k));a<u.length-1&&(g=u[a+1],k=this.getCellGeometry(g),null!=k&&(k=k.clone(),k.x+=b,e||(k.width-=b),d.setGeometry(g,k)))}if(q||
+e){var p=this.getCellGeometry(m);null!=p&&(p=p.clone(),p.width+=b,d.setGeometry(m,p))}null!=this.layoutManager&&this.layoutManager.executeLayout(m,!0)}finally{d.endUpdate()}};function TableLayout(a){mxGraphLayout.call(this,a)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+TableLayout.prototype.getSize=function(a,b){for(var e=0,d=0;d<a.length;d++)if(!this.isVertexIgnored(a[d])){var l=this.graph.getCellGeometry(a[d]);null!=l&&(e+=b?l.width:l.height)}return e};TableLayout.prototype.getRowLayout=function(a,b){for(var e=this.graph.model.getChildCells(a,!0),d=this.graph.getActualStartSize(a,!0),l=this.getSize(e,!0),m=b-d.x-d.width,u=[],d=d.x,q=0;q<e.length;q++){var c=this.graph.getCellGeometry(e[q]);null!=c&&(d+=c.width*m/l,u.push(Math.round(d)))}return u};
+TableLayout.prototype.layoutRow=function(a,b,e,d){var l=this.graph.getModel(),m=l.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var u=a.x,q=0;null!=b&&(b=b.slice(),b.splice(0,0,a.x));for(var c=0;c<m.length;c++){var f=this.graph.getCellGeometry(m[c]);null!=f&&(f=f.clone(),f.y=a.y,f.height=e-a.y-a.height,null!=b?(f.x=b[c],f.width=b[c+1]-f.x,c==m.length-1&&c<b.length-2&&(f.width=d-f.x-a.x-a.width)):(f.x=u,u+=f.width,c==m.length-1?f.width=d-a.x-a.width-q:q+=f.width),l.setGeometry(m[c],f))}return q};
+TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),e=this.graph.getCellGeometry(a),d=this.graph.getCellStyle(a),l="1"==mxUtils.getValue(d,"resizeLastRow","0"),m="1"==mxUtils.getValue(d,"resizeLast","0"),d="1"==mxUtils.getValue(d,"fixedRows","0"),u=this.graph.getModel(),q=0;u.beginUpdate();try{var c=e.height-b.y-b.height,f=e.width-b.x-b.width,g=u.getChildCells(a,!0),k=this.getSize(g,!1);if(0<c&&0<f&&0<g.length&&0<k){if(l){var p=this.graph.getCellGeometry(g[g.length-
+1]);null!=p&&(p=p.clone(),p.height=c-k+p.height,u.setGeometry(g[g.length-1],p))}for(var t=m?null:this.getRowLayout(g[0],f),v=b.y,A=0;A<g.length;A++)p=this.graph.getCellGeometry(g[A]),null!=p&&(p=p.clone(),p.x=b.x,p.width=f,p.y=Math.round(v),v=l||d?v+p.height:v+p.height/k*c,p.height=Math.round(v)-p.y,u.setGeometry(g[A],p)),q=Math.max(q,this.layoutRow(g[A],t,p.height,f));d&&c<k&&(e=e.clone(),e.height=v+b.height,u.setGeometry(a,e));m&&f<q+Graph.minTableColumnWidth&&(e=e.clone(),e.width=q+b.width+b.x+
+Graph.minTableColumnWidth,u.setGeometry(a,e))}}finally{u.endUpdate()}}};
(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){c=null!=c?c:!0;var d=this.getState(a);null!=d&&c&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=b.apply(this,
arguments);null!=d&&c&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var e=mxShape.prototype.paint;mxShape.prototype.paint=function(){e.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var a=this.node.getElementsByTagName("path");if(1<a.length){"1"!=mxUtils.getValue(this.state.style,
-mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var c=this.state.view.graph.getFlowAnimationStyle();null!=c&&a[1].setAttribute("class",c.getAttribute("id"))}}};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return d.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var n=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
-function(a){n.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var f=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=
-c||e.x!=b||e.y!=f},e=.5*this.scale,b=!1,d=[],g=0;g<c.length-1;g++){for(var n=c[g+1],l=c[g],q=[],t=c[g+2];g<c.length-2&&mxUtils.ptSegDistSq(l.x,l.y,t.x,t.y,n.x,n.y)<1*this.scale*this.scale;)n=t,g++,t=c[g+2];for(var b=f(0,l.x,l.y)||b,I=0;I<this.validEdges.length;I++){var G=this.validEdges[I],K=G.absolutePoints;if(null!=K&&mxUtils.intersects(a,G)&&"1"!=G.style.noJump)for(G=0;G<K.length-1;G++){for(var E=K[G+1],J=K[G],t=K[G+2];G<K.length-2&&mxUtils.ptSegDistSq(J.x,J.y,t.x,t.y,E.x,E.y)<1*this.scale*this.scale;)E=
-t,G++,t=K[G+2];t=mxUtils.intersection(l.x,l.y,n.x,n.y,J.x,J.y,E.x,E.y);if(null!=t&&(Math.abs(t.x-l.x)>e||Math.abs(t.y-l.y)>e)&&(Math.abs(t.x-n.x)>e||Math.abs(t.y-n.y)>e)&&(Math.abs(t.x-J.x)>e||Math.abs(t.y-J.y)>e)&&(Math.abs(t.x-E.x)>e||Math.abs(t.y-E.y)>e)){E=t.x-l.x;J=t.y-l.y;t={distSq:E*E+J*J,x:t.x,y:t.y};for(E=0;E<q.length;E++)if(q[E].distSq>t.distSq){q.splice(E,0,t);t=null;break}null==t||0!=q.length&&q[q.length-1].x===t.x&&q[q.length-1].y===t.y||q.push(t)}}}for(G=0;G<q.length;G++)b=f(1,q[G].x,
-q[G].y)||b}t=c[c.length-1];b=f(0,t.x,t.y)||b}a.routedPoints=d;return b}return!1};var l=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)l.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),g=!0,k=null,m=null,n=[],q=null;a.begin();for(var t=0;t<this.state.routedPoints.length;t++){var G=this.state.routedPoints[t],K=new mxPoint(G.x/this.scale,G.y/this.scale);0==t?K=c[0]:t==this.state.routedPoints.length-1&&(K=c[c.length-1]);var E=!1;if(null!=k&&1==G.type){var J=this.state.routedPoints[t+1],G=J.x/this.scale-K.x,J=J.y/this.scale-K.y,G=G*G+J*J;null==q&&(q=new mxPoint(K.x-k.x,K.y-k.y),
-m=Math.sqrt(q.x*q.x+q.y*q.y),0<m?(q.x=q.x*f/m,q.y=q.y*f/m):q=null);G>f*f&&0<m&&(G=k.x-K.x,J=k.y-K.y,G=G*G+J*J,G>f*f&&(E=new mxPoint(K.x-q.x,K.y-q.y),G=new mxPoint(K.x+q.x,K.y+q.y),n.push(E),this.addPoints(a,n,b,d,!1,null,g),n=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,g=!1,"sharp"==e?(a.lineTo(E.x-q.y*n,E.y+q.x*n),a.lineTo(G.x-q.y*n,G.y+q.x*n),a.lineTo(G.x,G.y)):"arc"==e?(n*=1.3,a.curveTo(E.x-q.y*n,E.y+q.x*n,G.x-q.y*n,G.y+q.x*n,G.x,G.y)):(a.moveTo(G.x,G.y),g=!0),n=[G],E=!0))}else q=
-null;E||(n.push(K),k=K)}this.addPoints(a,n,b,d,!1,null,g);a.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,b,d){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):t.apply(this,arguments)};var q=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,b,d){if(null==c||null==a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)q.apply(this,
-arguments);else{c=this.getTerminalPort(a,c,d);var f=this.getNextPoint(a,b,d),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var m=Math.cos(-g),p=Math.sin(-g),f=mxUtils.getRotatedPoint(f,m,p,k);m=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);m+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(c,
-f,0==g&&e,m);0!=g&&(m=Math.cos(g),p=Math.sin(g),f=mxUtils.getRotatedPoint(f,m,p,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,b,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,f){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var e=0;e<a.length;e++){var g=this.graph.getConnectionPoint(c,a[e]);if(null!=g){var k=(g.x-f.x)*(g.x-f.x)+(g.y-f.y)*(g.y-f.y);if(null==d||k<d)b=g,d=k}}null!=b&&(f=b)}return f};var c=mxStencil.prototype.evaluateTextAttribute;
+mxConstants.STYLE_DASHED,"0")&&a[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var c=this.state.view.graph.getFlowAnimationStyle();null!=c&&a[1].setAttribute("class",c.getAttribute("id"))}}};var d=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return d.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var l=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
+function(a){l.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var f=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=
+c||e.x!=b||e.y!=f},e=.5*this.scale,b=!1,d=[],g=0;g<c.length-1;g++){for(var l=c[g+1],m=c[g],q=[],u=c[g+2];g<c.length-2&&mxUtils.ptSegDistSq(m.x,m.y,u.x,u.y,l.x,l.y)<1*this.scale*this.scale;)l=u,g++,u=c[g+2];for(var b=f(0,m.x,m.y)||b,G=0;G<this.validEdges.length;G++){var J=this.validEdges[G],H=J.absolutePoints;if(null!=H&&mxUtils.intersects(a,J)&&"1"!=J.style.noJump)for(J=0;J<H.length-1;J++){for(var D=H[J+1],K=H[J],u=H[J+2];J<H.length-2&&mxUtils.ptSegDistSq(K.x,K.y,u.x,u.y,D.x,D.y)<1*this.scale*this.scale;)D=
+u,J++,u=H[J+2];u=mxUtils.intersection(m.x,m.y,l.x,l.y,K.x,K.y,D.x,D.y);if(null!=u&&(Math.abs(u.x-m.x)>e||Math.abs(u.y-m.y)>e)&&(Math.abs(u.x-l.x)>e||Math.abs(u.y-l.y)>e)&&(Math.abs(u.x-K.x)>e||Math.abs(u.y-K.y)>e)&&(Math.abs(u.x-D.x)>e||Math.abs(u.y-D.y)>e)){D=u.x-m.x;K=u.y-m.y;u={distSq:D*D+K*K,x:u.x,y:u.y};for(D=0;D<q.length;D++)if(q[D].distSq>u.distSq){q.splice(D,0,u);u=null;break}null==u||0!=q.length&&q[q.length-1].x===u.x&&q[q.length-1].y===u.y||q.push(u)}}}for(J=0;J<q.length;J++)b=f(1,q[J].x,
+q[J].y)||b}u=c[c.length-1];b=f(0,u.x,u.y)||b}a.routedPoints=d;return b}return!1};var m=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)m.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),g=!0,k=null,p=null,l=[],q=null;a.begin();for(var u=0;u<this.state.routedPoints.length;u++){var J=this.state.routedPoints[u],H=new mxPoint(J.x/this.scale,J.y/this.scale);0==u?H=c[0]:u==this.state.routedPoints.length-1&&(H=c[c.length-1]);var D=!1;if(null!=k&&1==J.type){var K=this.state.routedPoints[u+1],J=K.x/this.scale-H.x,K=K.y/this.scale-H.y,J=J*J+K*K;null==q&&(q=new mxPoint(H.x-k.x,H.y-k.y),
+p=Math.sqrt(q.x*q.x+q.y*q.y),0<p?(q.x=q.x*f/p,q.y=q.y*f/p):q=null);J>f*f&&0<p&&(J=k.x-H.x,K=k.y-H.y,J=J*J+K*K,J>f*f&&(D=new mxPoint(H.x-q.x,H.y-q.y),J=new mxPoint(H.x+q.x,H.y+q.y),l.push(D),this.addPoints(a,l,b,d,!1,null,g),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,g=!1,"sharp"==e?(a.lineTo(D.x-q.y*l,D.y+q.x*l),a.lineTo(J.x-q.y*l,J.y+q.x*l),a.lineTo(J.x,J.y)):"arc"==e?(l*=1.3,a.curveTo(D.x-q.y*l,D.y+q.x*l,J.x-q.y*l,J.y+q.x*l,J.x,J.y)):(a.moveTo(J.x,J.y),g=!0),l=[J],D=!0))}else q=
+null;D||(l.push(H),k=H)}this.addPoints(a,l,b,d,!1,null,g);a.stroke()}};var u=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(a,c,b,d){return null!=c&&"centerPerimeter"==c.style[mxConstants.STYLE_PERIMETER]?new mxPoint(c.getCenterX(),c.getCenterY()):u.apply(this,arguments)};var q=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,b,d){if(null==c||null==a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)q.apply(this,
+arguments);else{c=this.getTerminalPort(a,c,d);var f=this.getNextPoint(a,b,d),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var p=Math.cos(-g),t=Math.sin(-g),f=mxUtils.getRotatedPoint(f,p,t,k);p=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);p+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(c,
+f,0==g&&e,p);0!=g&&(p=Math.cos(g),t=Math.sin(g),f=mxUtils.getRotatedPoint(f,p,t,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,b,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,f){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var e=0;e<a.length;e++){var g=this.graph.getConnectionPoint(c,a[e]);if(null!=g){var k=(g.x-f.x)*(g.x-f.x)+(g.y-f.y)*(g.y-f.y);if(null==d||k<d)b=g,d=k}}null!=b&&(f=b)}return f};var c=mxStencil.prototype.evaluateTextAttribute;
mxStencil.prototype.evaluateTextAttribute=function(a,b,d){var f=c.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=d.state&&(f=d.state.view.graph.replacePlaceholders(d.state.cell,f));return f};var f=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"string"===typeof c&&"stencil("==c.substring(0,8))try{var b=c.substring(8,c.length-
-1),d=mxUtils.parseXml(Graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(u){null!=window.console&&console.log("Error in shape: "+u)}}return f.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];mxStencilRegistry.filesLoaded={};
-mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var d=0;d<b.length;d++){var n=b[d];if(!mxStencilRegistry.filesLoaded[n])if(mxStencilRegistry.filesLoaded[n]=!0,".xml"==n.toLowerCase().substring(n.length-4,n.length))mxStencilRegistry.loadStencilSet(n,
-null);else if(".js"==n.toLowerCase().substring(n.length-3,n.length))try{if(mxStencilRegistry.allowEval){var l=mxUtils.load(n);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(t){null!=window.console&&console.log("error in getStencil:",a,e,b,n,t)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
+1),d=mxUtils.parseXml(Graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(v){null!=window.console&&console.log("Error in shape: "+v)}}return f.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];mxStencilRegistry.filesLoaded={};
+mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var d=0;d<b.length;d++){var l=b[d];if(!mxStencilRegistry.filesLoaded[l])if(mxStencilRegistry.filesLoaded[l]=!0,".xml"==l.toLowerCase().substring(l.length-4,l.length))mxStencilRegistry.loadStencilSet(l,
+null);else if(".js"==l.toLowerCase().substring(l.length-3,l.length))try{if(mxStencilRegistry.allowEval){var m=mxUtils.load(l);null!=m&&200<=m.getStatus()&&299>=m.getStatus()&&eval.call(window,m.getText())}}catch(u){null!=window.console&&console.log("error in getStencil:",a,e,b,l,u)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
mxStencilRegistry.getBasenameForStencil=function(a){var b=null;if(null!=a&&"string"===typeof a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var b=a[1],e=2;e<a.length-1;e++)b+="/"+a[e];return b};
-mxStencilRegistry.loadStencilSet=function(a,b,e,d){var n=mxStencilRegistry.packages[a];if(null!=e&&e||null==n){var l=!1;if(null==n)try{if(d){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(d){null!=d&&null!=d.documentElement&&(mxStencilRegistry.packages[a]=d,l=!0,mxStencilRegistry.parseStencilSet(d.documentElement,b,l))}));return}n=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=n;l=!0}catch(t){null!=window.console&&console.log("error in loadStencilSet:",a,t)}null!=n&&null!=
-n.documentElement&&mxStencilRegistry.parseStencilSet(n.documentElement,b,l)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var d=a.firstChild;null!=d;)"shapes"==d.nodeName&&mxStencilRegistry.parseStencilSet(d,b,e),d=d.nextSibling;else{e=null!=e?e:!0;var d=a.firstChild,n="";a=a.getAttribute("name");for(null!=a&&(n=a+".");null!=d;){if(d.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=d.getAttribute("name"),null!=a)){var n=n.toLowerCase(),l=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(n+l.toLowerCase(),new mxStencil(d));if(null!=b){var t=d.getAttribute("w"),
-q=d.getAttribute("h"),t=null==t?80:parseInt(t,10),q=null==q?80:parseInt(q,10);b(n,l,a,t,q)}}d=d.nextSibling}}};
+mxStencilRegistry.loadStencilSet=function(a,b,e,d){var l=mxStencilRegistry.packages[a];if(null!=e&&e||null==l){var m=!1;if(null==l)try{if(d){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(d){null!=d&&null!=d.documentElement&&(mxStencilRegistry.packages[a]=d,m=!0,mxStencilRegistry.parseStencilSet(d.documentElement,b,m))}));return}l=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=l;m=!0}catch(u){null!=window.console&&console.log("error in loadStencilSet:",a,u)}null!=l&&null!=
+l.documentElement&&mxStencilRegistry.parseStencilSet(l.documentElement,b,m)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)};
+mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var d=a.firstChild;null!=d;)"shapes"==d.nodeName&&mxStencilRegistry.parseStencilSet(d,b,e),d=d.nextSibling;else{e=null!=e?e:!0;var d=a.firstChild,l="";a=a.getAttribute("name");for(null!=a&&(l=a+".");null!=d;){if(d.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=d.getAttribute("name"),null!=a)){var l=l.toLowerCase(),m=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(l+m.toLowerCase(),new mxStencil(d));if(null!=b){var u=d.getAttribute("w"),
+q=d.getAttribute("h"),u=null==u?80:parseInt(u,10),q=null==q?80:parseInt(q,10);b(l,m,a,u,q)}}d=d.nextSibling}}};
"undefined"!=typeof mxVertexHandler&&function(){function a(){var a=document.createElement("div");a.className="geHint";a.style.whiteSpace="nowrap";a.style.position="absolute";return a}function b(a,c){switch(c){case mxConstants.POINTS:return a;case mxConstants.MILLIMETERS:return(a/mxConstants.PIXELS_PER_MM).toFixed(1);case mxConstants.INCHES:return(a/mxConstants.PIXELS_PER_INCH).toFixed(2)}}mxConstants.HANDLE_FILLCOLOR="#29b6f2";mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR=
"#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR="#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=
-!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var e=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(a){return e.apply(this,arguments)||this.graph.isTableRow(a)||this.graph.isTableCell(a)};var d=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(a){return d.apply(this,arguments)||this.graph.isEdgeIgnored(a)};var n=mxConnectionHandler.prototype.isCreateTarget;
-mxConnectionHandler.prototype.isCreateTarget=function(a){return this.graph.isCloneEvent(a)||n.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,
-null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var l=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=l.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var t=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=
-function(){var a=t.apply(this,arguments),c=a.getCell;a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){for(var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",c="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),
+!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var e=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(a){return e.apply(this,arguments)||this.graph.isTableRow(a)||this.graph.isTableCell(a)};var d=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(a){return d.apply(this,arguments)||this.graph.isEdgeIgnored(a)};var l=mxConnectionHandler.prototype.isCreateTarget;
+mxConnectionHandler.prototype.isCreateTarget=function(a){return this.graph.isCloneEvent(a)||l.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,
+null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a));for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var m=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=m.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var u=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=
+function(){var a=u.apply(this,arguments),c=a.getCell;a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){for(var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",c="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),
b=0;b<c.length;b++)null!=this.currentEdgeStyle[c[b]]&&(a+=c[b]+"="+this.currentEdgeStyle[c[b]]+";");null!=this.currentEdgeStyle.orthogonalLoop?a+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&(a+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?a+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(a+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+
";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.updateCellStyles=function(a,c,b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)if(this.model.isVertex(b[d])||this.model.isEdge(b[d])){this.setCellStyles(a,null,[b[d]]);var f=this.getCellStyle(b[d])[a];c!=(null==f?mxConstants.NONE:f)&&this.setCellStyles(a,
c,[b[d]])}}finally{this.model.endUpdate()}};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())};Graph.prototype.createCellLookup=function(a,c){c=null!=c?c:{};for(var b=0;b<a.length;b++){var d=a[b];c[mxObjectIdentity.get(d)]=
d.getId();for(var f=this.model.getChildCount(d),e=0;e<f;e++)this.createCellLookup([this.model.getChildAt(d,e)],c)}return c};Graph.prototype.createCellMapping=function(a,c,b){b=null!=b?b:{};for(var d in a){var f=c[d];null==b[f]&&(b[f]=a[d].getId()||"")}return b};Graph.prototype.importGraphModel=function(a,c,b,d){c=null!=c?c:0;b=null!=b?b:0;var f=new mxCodec(a.ownerDocument),e=new mxGraphModel;f.decode(a,e);a=[];var f={},g={},k=e.getChildren(this.cloneCell(e.root,this.isCloneInvalidEdges(),f));if(null!=
-k){var m=this.createCellLookup([e.root]),k=k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(e=0;e<k.length;e++)x=this.model.getChildren(this.moveCells([k[e]],c,b,!1,this.model.getRoot())[0]),null!=x&&(a=a.concat(x));else{var x=e.getChildren(k[0]);null!=x&&(a=this.moveCells(x,c,b,!1,this.getDefaultParent()),g[e.getChildAt(e.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(f,m,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&
-(c=this.snap(c),b=this.snap(b));var p=this.getBoundingBoxFromGeometry(a,!0);null!=p&&this.moveCells(a,c-p.x,b-p.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c={},b=this.cloneCells(a,null,c),d=new mxDictionary,f=0;f<a.length;f++)d.put(a[f],!0);for(var e=new mxCodec,g=new mxGraphModel,k=g.getChildAt(g.getRoot(),0),f=0;f<b.length;f++){g.add(k,b[f]);var m=this.view.getState(a[f]);if(null!=m){var x=this.getCellGeometry(b[f]);null!=x&&x.relative&&!this.model.isEdge(a[f])&&
-null==d.get(this.model.getParent(a[f]))&&(x.offset=null,x.relative=!1,x.x=m.x/m.view.scale-m.view.translate.x,x.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(c,this.createCellLookup(a)),b);return e.encode(g)};Graph.prototype.isSwimlane=function(a,c){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var b=this.getCurrentCellStyle(a,c)[mxConstants.STYLE_SHAPE];return b==mxConstants.SHAPE_SWIMLANE||"table"==b}return!1};var q=Graph.prototype.isExtendParent;
-Graph.prototype.isExtendParent=function(a){var c=this.model.getParent(a);if(null!=c){var b=this.getCurrentCellStyle(c);if(null!=b.expand)return"0"!=b.expand}return q.apply(this,arguments)&&(null==c||!this.isTable(c))};var c=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,b,d,f,e,g,k,m){null==m&&(m=this.model.getParent(a),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(g,k,null,!0,!1));d=null;this.model.beginUpdate();try{d=c.apply(this,[a,b,d,f,e,g,k,m]);this.model.setValue(d,
-"");var x=this.getChildCells(d,!0);for(b=0;b<x.length;b++){var p=this.getCellGeometry(x[b]);null!=p&&p.relative&&0<p.x&&this.model.remove(x[b])}var u=this.getChildCells(a,!0);for(b=0;b<u.length;b++)p=this.getCellGeometry(u[b]),null!=p&&p.relative&&0>=p.x&&this.model.remove(u[b]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[d]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[d]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
-mxConstants.NONE,[a]);var R=this.model.getTerminal(d,!1);if(null!=R){var n=this.getCurrentCellStyle(R);null!=n&&"1"==n.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[d]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[d]))}}finally{this.model.endUpdate()}return d};var f=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,c,b){if(c||b)f.apply(this,arguments);
-else{var d=this.getSelectionCell(),e=null,g=[],k=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(g.push(c),c==d)e=g.length-1;else if(a&&null==d&&0<g.length||null!=e&&a&&g.length>e||!a&&0<e)return;for(var b=0;b<this.model.getChildCount(c);b++)k(this.model.getChildAt(c,b))});k(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(a?1:-1),g.length):0,this.setSelectionCell(g[e]))}};var g=Graph.prototype.moveCells;Graph.prototype.moveCells=
-function(a,c,b,d,f,e,k){k=null!=k?k:{};if(this.isTable(f)){for(var m=[],x=0;x<a.length;x++)this.isTable(a[x])?m=m.concat(this.model.getChildCells(a[x],!0).reverse()):m.push(a[x]);a=m}this.model.beginUpdate();try{m=[];for(x=0;x<a.length;x++)if(null!=f&&this.isTableRow(a[x])){var p=this.model.getParent(a[x]),u=this.getCellGeometry(a[x]);this.isTable(p)&&m.push(p);if(null!=p&&null!=u&&this.isTable(p)&&this.isTable(f)&&(d||p!=f)){if(!d){var R=this.getCellGeometry(p);null!=R&&(R=R.clone(),R.height-=u.height,
-this.model.setGeometry(p,R))}R=this.getCellGeometry(f);null!=R&&(R=R.clone(),R.height+=u.height,this.model.setGeometry(f,R));var n=this.model.getChildCells(f,!0);if(0<n.length){a[x]=d?this.cloneCell(a[x]):a[x];var l=this.model.getChildCells(a[x],!0),q=this.model.getChildCells(n[0],!0),B=q.length-l.length;if(0<B)for(var C=0;C<B;C++){var z=this.cloneCell(l[l.length-1]);null!=z&&(z.value="",this.model.add(a[x],z))}else if(0>B)for(C=0;C>B;C--)this.model.remove(l[l.length+C-1]);l=this.model.getChildCells(a[x],
-!0);for(C=0;C<q.length;C++){var y=this.getCellGeometry(q[C]),N=this.getCellGeometry(l[C]);null!=y&&null!=N&&(N=N.clone(),N.width=y.width,this.model.setGeometry(l[C],N))}}}}for(var D=g.apply(this,arguments),x=0;x<m.length;x++)!d&&this.model.contains(m[x])&&0==this.model.getChildCount(m[x])&&this.model.remove(m[x]);d&&this.updateCustomLinks(this.createCellMapping(k,this.createCellLookup(a)),D)}finally{this.model.endUpdate()}return D};var m=Graph.prototype.removeCells;Graph.prototype.removeCells=function(a,
-c){var b=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var f=this.model.getParent(a[d]),e=this.model.getParent(f);1==this.model.getChildCount(f)&&1==this.model.getChildCount(e)?0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e)&&b.push(e):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(e=this.model.getParent(a[d]),0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e))){for(var g=this.model.getChildCells(e,!0),k=0,x=0;x<g.length;x++)0<=mxUtils.indexOf(a,g[x])&&
-k++;k==g.length&&b.push(e)}b.push(a[d])}b=m.apply(this,[b,c])}finally{this.model.endUpdate()}return b};Graph.prototype.updateCustomLinks=function(a,c){for(var b=0;b<c.length;b++)null!=c[b]&&this.updateCustomLinksForCell(a,c[b])};Graph.prototype.updateCustomLinksForCell=function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0],
+k){var p=this.createCellLookup([e.root]),k=k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(e=0;e<k.length;e++)n=this.model.getChildren(this.moveCells([k[e]],c,b,!1,this.model.getRoot())[0]),null!=n&&(a=a.concat(n));else{var n=e.getChildren(k[0]);null!=n&&(a=this.moveCells(n,c,b,!1,this.getDefaultParent()),g[e.getChildAt(e.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(f,p,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&
+(c=this.snap(c),b=this.snap(b));var t=this.getBoundingBoxFromGeometry(a,!0);null!=t&&this.moveCells(a,c-t.x,b-t.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var c={},b=this.cloneCells(a,null,c),d=new mxDictionary,f=0;f<a.length;f++)d.put(a[f],!0);for(var e=new mxCodec,g=new mxGraphModel,k=g.getChildAt(g.getRoot(),0),f=0;f<b.length;f++){g.add(k,b[f]);var p=this.view.getState(a[f]);if(null!=p){var n=this.getCellGeometry(b[f]);null!=n&&n.relative&&!this.model.isEdge(a[f])&&
+null==d.get(this.model.getParent(a[f]))&&(n.offset=null,n.relative=!1,n.x=p.x/p.view.scale-p.view.translate.x,n.y=p.y/p.view.scale-p.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(c,this.createCellLookup(a)),b);return e.encode(g)};Graph.prototype.isSwimlane=function(a,c){if(null!=a&&this.model.getParent(a)!=this.model.getRoot()&&!this.model.isEdge(a)){var b=this.getCurrentCellStyle(a,c)[mxConstants.STYLE_SHAPE];return b==mxConstants.SHAPE_SWIMLANE||"table"==b}return!1};var q=Graph.prototype.isExtendParent;
+Graph.prototype.isExtendParent=function(a){var c=this.model.getParent(a);if(null!=c){var b=this.getCurrentCellStyle(c);if(null!=b.expand)return"0"!=b.expand}return q.apply(this,arguments)&&(null==c||!this.isTable(c))};var c=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,b,d,f,e,g,k,p){null==p&&(p=this.model.getParent(a),this.isTable(p)||this.isTableRow(p))&&(p=this.getCellAt(g,k,null,!0,!1));d=null;this.model.beginUpdate();try{d=c.apply(this,[a,b,d,f,e,g,k,p]);this.model.setValue(d,
+"");var n=this.getChildCells(d,!0);for(b=0;b<n.length;b++){var t=this.getCellGeometry(n[b]);null!=t&&t.relative&&0<t.x&&this.model.remove(n[b])}var v=this.getChildCells(a,!0);for(b=0;b<v.length;b++)t=this.getCellGeometry(v[b]),null!=t&&t.relative&&0>=t.x&&this.model.remove(v[b]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[d]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[d]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[a]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
+mxConstants.NONE,[a]);var S=this.model.getTerminal(d,!1);if(null!=S){var l=this.getCurrentCellStyle(S);null!=l&&"1"==l.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[a]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[a]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[d]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[d]))}}finally{this.model.endUpdate()}return d};var f=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,c,b){if(c||b)f.apply(this,arguments);
+else{var d=this.getSelectionCell(),e=null,g=[],p=mxUtils.bind(this,function(c){if(null!=this.view.getState(c)&&(this.model.isVertex(c)||this.model.isEdge(c)))if(g.push(c),c==d)e=g.length-1;else if(a&&null==d&&0<g.length||null!=e&&a&&g.length>e||!a&&0<e)return;for(var b=0;b<this.model.getChildCount(c);b++)p(this.model.getChildAt(c,b))});p(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(a?1:-1),g.length):0,this.setSelectionCell(g[e]))}};var g=Graph.prototype.moveCells;Graph.prototype.moveCells=
+function(a,c,b,d,f,e,p){p=null!=p?p:{};if(this.isTable(f)){for(var k=[],n=0;n<a.length;n++)this.isTable(a[n])?k=k.concat(this.model.getChildCells(a[n],!0).reverse()):k.push(a[n]);a=k}this.model.beginUpdate();try{k=[];for(n=0;n<a.length;n++)if(null!=f&&this.isTableRow(a[n])){var t=this.model.getParent(a[n]),v=this.getCellGeometry(a[n]);this.isTable(t)&&k.push(t);if(null!=t&&null!=v&&this.isTable(t)&&this.isTable(f)&&(d||t!=f)){if(!d){var S=this.getCellGeometry(t);null!=S&&(S=S.clone(),S.height-=v.height,
+this.model.setGeometry(t,S))}S=this.getCellGeometry(f);null!=S&&(S=S.clone(),S.height+=v.height,this.model.setGeometry(f,S));var l=this.model.getChildCells(f,!0);if(0<l.length){a[n]=d?this.cloneCell(a[n]):a[n];var m=this.model.getChildCells(a[n],!0),q=this.model.getChildCells(l[0],!0),B=q.length-m.length;if(0<B)for(var C=0;C<B;C++){var y=this.cloneCell(m[m.length-1]);null!=y&&(y.value="",this.model.add(a[n],y))}else if(0>B)for(C=0;C>B;C--)this.model.remove(m[m.length+C-1]);m=this.model.getChildCells(a[n],
+!0);for(C=0;C<q.length;C++){var P=this.getCellGeometry(q[C]),z=this.getCellGeometry(m[C]);null!=P&&null!=z&&(z=z.clone(),z.width=P.width,this.model.setGeometry(m[C],z))}}}}for(var E=g.apply(this,arguments),n=0;n<k.length;n++)!d&&this.model.contains(k[n])&&0==this.model.getChildCount(k[n])&&this.model.remove(k[n]);d&&this.updateCustomLinks(this.createCellMapping(p,this.createCellLookup(a)),E)}finally{this.model.endUpdate()}return E};var k=Graph.prototype.removeCells;Graph.prototype.removeCells=function(a,
+c){var b=[];this.model.beginUpdate();try{for(var d=0;d<a.length;d++)if(this.isTableCell(a[d])){var f=this.model.getParent(a[d]),e=this.model.getParent(f);1==this.model.getChildCount(f)&&1==this.model.getChildCount(e)?0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e)&&b.push(e):this.labelChanged(a[d],"")}else{if(this.isTableRow(a[d])&&(e=this.model.getParent(a[d]),0>mxUtils.indexOf(a,e)&&0>mxUtils.indexOf(b,e))){for(var g=this.model.getChildCells(e,!0),p=0,n=0;n<g.length;n++)0<=mxUtils.indexOf(a,g[n])&&
+p++;p==g.length&&b.push(e)}b.push(a[d])}b=k.apply(this,[b,c])}finally{this.model.endUpdate()}return b};Graph.prototype.updateCustomLinks=function(a,c){for(var b=0;b<c.length;b++)null!=c[b]&&this.updateCustomLinksForCell(a,c[b])};Graph.prototype.updateCustomLinksForCell=function(a,c){};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0],
e[1]),2<e.length?"0"!=e[2]:!0,null,3<e.length?e[3]:0,4<e.length?e[4]:0))}}catch(ta){}return d}if(null!=a.shape&&null!=a.shape.bounds){e=a.shape.direction;f=a.shape.bounds;b=a.shape.scale;d=f.width/b;f=f.height/b;if(e==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH)e=d,d=f,f=e;b=a.shape.getConstraints(a.style,d,f);if(null!=b)return b;if(null!=a.shape.stencil&&null!=a.shape.stencil.constraints)return a.shape.stencil.constraints;if(null!=a.shape.constraints)return a.shape.constraints}}return null};
Graph.prototype.flipEdge=function(a){if(null!=a){var c=this.getCurrentCellStyle(a),c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a])}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),b=0,d=0;d<c;d++){var f=this.model.getChildAt(a,d);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||b++)}return 0<
b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a,c,b){for(var d=this.getCurrentCellStyle(a),f=!0,e=!0,g=0;g<c.length&&e;g++)f=f&&this.isTable(c[g]),e=e&&this.isTableRow(c[g]);return("1"!=mxUtils.getValue(d,"part","0")||this.isContainer(a))&&"0"!=mxUtils.getValue(d,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(a))&&!this.isTableRow(a)&&(!this.isTable(a)||e||f)};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,
arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&
-(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a,c){var b=this.getModel(),d=[];b.beginUpdate();try{for(var f=0;f<a.length;f++){var e=a[f];if(b.isEdge(e)){var g=b.getTerminal(e,!0),k=b.getTerminal(e,!1);b.setTerminal(e,k,!0);b.setTerminal(e,g,!1);var m=b.getGeometry(e);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var x=m.getTerminalPoint(!0),p=m.getTerminalPoint(!1);m.setTerminalPoint(x,!1);m.setTerminalPoint(p,!0);b.setGeometry(e,
-m);var u=this.view.getState(e),n=this.view.getState(g),R=this.view.getState(k);if(null!=u){var l=null!=n?this.getConnectionConstraint(u,n,!0):null,q=null!=R?this.getConnectionConstraint(u,R,!1):null;this.setConnectionConstraint(e,g,!0,q);this.setConnectionConstraint(e,k,!1,l);var B=mxUtils.getValue(u.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(u.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[e]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
-B,[e])}d.push(e)}}else if(b.isVertex(e)&&(m=this.getCellGeometry(e),null!=m)){if(!(this.isTable(e)||this.isTableRow(e)||this.isTableCell(e)||this.isSwimlane(e))){m=m.clone();m.x+=m.width/2-m.height/2;m.y+=m.height/2-m.width/2;var C=m.width;m.width=m.height;m.height=C;b.setGeometry(e,m)}var z=this.view.getState(e);if(null!=z){var y=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],D=mxUtils.getValue(z.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);
-this.setCellStyles(mxConstants.STYLE_DIRECTION,y[mxUtils.mod(mxUtils.indexOf(y,D)+(c?-1:1),y.length)],[e])}d.push(e)}}}finally{b.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var k=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&
-(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&(c=this.model.getParent(c));var b=this.view.getState(c);null!=b&&null!=b.shape&&(this.view.invalidate(c),b.shape.bounds=null)}k.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
+(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a,c){var b=this.getModel(),d=[];b.beginUpdate();try{for(var f=0;f<a.length;f++){var e=a[f];if(b.isEdge(e)){var g=b.getTerminal(e,!0),p=b.getTerminal(e,!1);b.setTerminal(e,p,!0);b.setTerminal(e,g,!1);var k=b.getGeometry(e);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();var n=k.getTerminalPoint(!0),t=k.getTerminalPoint(!1);k.setTerminalPoint(n,!1);k.setTerminalPoint(t,!0);b.setGeometry(e,
+k);var v=this.view.getState(e),l=this.view.getState(g),S=this.view.getState(p);if(null!=v){var m=null!=l?this.getConnectionConstraint(v,l,!0):null,q=null!=S?this.getConnectionConstraint(v,S,!1):null;this.setConnectionConstraint(e,g,!0,q);this.setConnectionConstraint(e,p,!1,m);var B=mxUtils.getValue(v.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(v.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[e]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,
+B,[e])}d.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){if(!(this.isTable(e)||this.isTableRow(e)||this.isTableCell(e)||this.isSwimlane(e))){k=k.clone();k.x+=k.width/2-k.height/2;k.y+=k.height/2-k.width/2;var C=k.width;k.width=k.height;k.height=C;b.setGeometry(e,k)}var y=this.view.getState(e);if(null!=y){var z=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],E=mxUtils.getValue(y.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);
+this.setCellStyles(mxConstants.STYLE_DIRECTION,z[mxUtils.mod(mxUtils.indexOf(z,E)+(c?-1:1),z.length)],[e])}d.push(e)}}}finally{b.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};var p=Graph.prototype.processChange;Graph.prototype.processChange=function(a){if(a instanceof mxGeometryChange&&(this.isTableCell(a.cell)||this.isTableRow(a.cell))&&
+(null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))){var c=a.cell;this.isTableCell(c)&&(c=this.model.getParent(c));this.isTableRow(c)&&(c=this.model.getParent(c));var b=this.view.getState(c);null!=b&&null!=b.shape&&(this.view.invalidate(c),b.shape.bounds=null)}p.apply(this,arguments);a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value&&this.invalidateDescendantsWithPlaceholders(a.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=
function(a){a=this.model.getDescendants(a);if(0<a.length)for(var c=0;c<a.length;c++){var b=this.view.getState(a[c]);null!=b&&null!=b.shape&&null!=b.shape.stencil&&this.stencilHasPlaceholders(b.shape.stencil)?this.removeStateForCell(a[c]):this.isReplacePlaceholders(a[c])&&this.view.invalidate(a[c],!1,!1)}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=c?c:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);
-b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.processElements=function(a,c){if(null!=a)for(var b=a.getElementsByTagName("*"),d=0;d<b.length;d++)c(b[d])};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),m=0;m<g.length;m++)c(g[m]);
+b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.processElements=function(a,c){if(null!=a)for(var b=a.getElementsByTagName("*"),d=0;d<b.length;d++)c(b[d])};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),k=0;k<g.length;k++)c(g[k]);
d.innerHTML!=e&&this.cellLabelChanged(a[f],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=Graph.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&f.hasAttribute(d)){this.setAttributeForCell(f,d,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);
Graph.translateDiagram&&null!=Graph.diagramLanguage&&e.hasAttribute("label_"+Graph.diagramLanguage)?e.setAttribute("label_"+Graph.diagramLanguage,c):e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,b=0;b<a.length;b++)c.put(a[b],!0);for(var d=[],b=0;b<a.length;b++){var f=this.model.getParent(a[b]);null==f||c.get(f)||(c.put(f,!0),d.push(f))}for(b=0;b<
d.length;b++)if(f=this.view.getState(d[b]),null!=f&&(this.model.isEdge(f.cell)||this.model.isVertex(f.cell))&&this.isCellDeletable(f.cell)&&this.isTransparentState(f)){for(var e=!0,g=0;g<this.model.getChildCount(f.cell)&&e;g++)c.get(this.model.getChildAt(f.cell,g))||(e=!1);e&&a.push(f.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(a){for(var c=[],b=0;b<a.length;b++)this.isCellDeletable(a[b])&&this.isTransparentState(this.view.getState(a[b]))&&
c.push(a[b]);a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell=function(a,c){var b="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(a.value)&&a.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(b="tooltip_"+Graph.diagramLanguage);this.setAttributeForCell(a,b,c)};Graph.prototype.getAttributeForCell=function(a,c,b){a=null!=a.value&&
-"object"===typeof a.value?a.value.getAttribute(c):null;return null!=a?a:b};Graph.prototype.setAttributeForCell=function(a,c,b){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=b?d.setAttribute(c,b):d.removeAttribute(c);this.model.setValue(a,d)};var p=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(a,c,b,d){this.getModel();if(mxEvent.isAltDown(c))return null;
-for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null;for(var e=p.apply(this,arguments),g=!0,f=0;f<a.length&&g;f++)g=g&&this.isTableRow(a[f]);g&&(this.isTableCell(e)&&(e=this.model.getParent(e)),this.isTableRow(e)&&(e=this.model.getParent(e)),this.isTable(e)||(e=null));return e};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){this.isEnabled()&&
+"object"===typeof a.value?a.value.getAttribute(c):null;return null!=a?a:b};Graph.prototype.setAttributeForCell=function(a,c,b){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=b?d.setAttribute(c,b):d.removeAttribute(c);this.model.setValue(a,d)};var t=Graph.prototype.getDropTarget;Graph.prototype.getDropTarget=function(a,c,b,d){this.getModel();if(mxEvent.isAltDown(c))return null;
+for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null;for(var e=t.apply(this,arguments),g=!0,f=0;f<a.length&&g;f++)g=g&&this.isTableRow(a[f]);g&&(this.isTableCell(e)&&(e=this.model.getParent(e)),this.isTableRow(e)&&(e=this.model.getParent(e)),this.isTable(e)||(e=null));return e};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){this.isEnabled()&&
(c=this.insertTextForEvent(a,c),mxGraph.prototype.dblClick.call(this,a,c))};Graph.prototype.insertTextForEvent=function(a,c){var b=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var d=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!=f||null!=d&&null!=d.text&&null!=d.text.node&&null!=d.text.boundingBox&&(mxUtils.contains(d.text.boundingBox,b.x,b.y)||mxUtils.isAncestorNode(d.text.node,
mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(null==d&&(d=this.view.getState(this.getCellAt(b.x,b.y))),c=this.addText(b.x,b.y,d))}return c};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/this.view.scale-this.view.translate.x,b=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=
this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,d.x*f.width),b=Math.max(b,d.y*f.height);return new mxPoint(this.snap(c+a),this.snap(b+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),b=this.getInsertPoint(),d=this.snap(Math.round(Math.max(b.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(b.y,(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.getCenterInsertPoint=
@@ -2521,35 +2522,35 @@ function(a){a=null!=a?a:new mxRectangle;return mxUtils.hasScrollbars(this.contai
2/this.view.scale-this.view.translate.y-a.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,b){var d=new mxCell;d.value="Text";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=b&&this.model.isEdge(b.cell)){d.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";d.geometry.relative=!0;d.connectable=!1;var f=this.view.getRelativePoint(b,a,c);d.geometry.x=Math.round(1E4*f.x)/1E4;d.geometry.y=Math.round(f.y);d.geometry.offset=
new mxPoint(0,0);var f=this.view.getPoint(b,d.geometry),e=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else f=this.view.translate,d.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-f.x-(null!=b?b.origin.x:0),d.geometry.y=Math.round(c/this.view.scale)-f.y-(null!=b?b.origin.y:0),d.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([d],
null!=b?b.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.addClickHandler=function(a,c,b){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var b=0;b<a.length;b++){var d=this.getAbsoluteUrl(a[b].getAttribute("href"));null!=d&&(a[b].setAttribute("rel",this.linkRelation),a[b].setAttribute("href",d),null!=c&&mxEvent.addGestureListeners(a[b],null,null,
-c))}});this.model.addListener(mxEvent.CHANGE,d);d();var f=this.container.style.cursor,e=this.getTolerance(),g=this,m={currentState:null,currentLink:null,currentTarget:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=
+c))}});this.model.addListener(mxEvent.CHANGE,d);d();var f=this.container.style.cursor,e=this.getTolerance(),g=this,k={currentState:null,currentLink:null,currentTarget:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=
g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var b=
Math.abs(this.startX-c.getGraphX()),d=Math.abs(this.startY-c.getGraphY());(b>e||d>e)&&this.clear()}}else{for(b=c.getSource();null!=b&&"a"!=b.nodeName.toLowerCase();)b=b.parentNode;null!=b?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState||!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,
-d){for(var f=d.getSource(),m=d.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(m)||mxEvent.isMiddleMouseButton(m))&&!mxEvent.isPopupTrigger(m)||mxEvent.isTouchEvent(m))&&(null!=this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(m,
-this.currentLink),mxEvent.isConsumed(m)||(m=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(m)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,m),d.consume())):null!=b&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-d.getGraphX())<e&&Math.abs(this.startY-d.getGraphY())<e&&b(d.getEvent()));this.clear()},activate:function(a){this.currentLink=g.getAbsoluteUrl(g.getLinkForCell(a.cell));
-null!=this.currentLink&&(this.currentTarget=g.getLinkTargetForCell(a.cell),g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(m);mxEvent.addListener(document,"mouseleave",function(a){m.clear()})};Graph.prototype.duplicateCells=
-function(a,c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;for(var b=0;b<a.length;b++)this.isTableCell(a[b])&&(a[b]=this.model.getParent(a[b]));a=this.model.getTopmostCells(a);var d=this.getModel(),f=this.gridSize,e=[];d.beginUpdate();try{for(var g=this.cloneCells(a,!1,null,!0),b=0;b<a.length;b++){var m=d.getParent(a[b]),k=this.moveCells([g[b]],f,f,!1)[0];e.push(k);if(c)d.add(m,g[b]);else{var x=m.getIndex(a[b]);d.add(m,g[b],x+1)}if(this.isTable(m)){var p=this.getCellGeometry(g[b]),u=this.getCellGeometry(m);
-null!=p&&null!=u&&(u=u.clone(),u.height+=p.height,d.setGeometry(m,u))}}}finally{d.endUpdate()}return e};Graph.prototype.insertImage=function(a,c,b){if(null!=a&&null!=this.cellEditor.textarea){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<d.length;e++)f.push(d[e]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",
+d){for(var f=d.getSource(),k=d.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!=this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(k,
+this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,k),d.consume())):null!=b&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-d.getGraphX())<e&&Math.abs(this.startY-d.getGraphY())<e&&b(d.getEvent()));this.clear()},activate:function(a){this.currentLink=g.getAbsoluteUrl(g.getLinkForCell(a.cell));
+null!=this.currentLink&&(this.currentTarget=g.getLinkTargetForCell(a.cell),g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=
+function(a,c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;for(var b=0;b<a.length;b++)this.isTableCell(a[b])&&(a[b]=this.model.getParent(a[b]));a=this.model.getTopmostCells(a);var d=this.getModel(),f=this.gridSize,e=[];d.beginUpdate();try{for(var g=this.cloneCells(a,!1,null,!0),b=0;b<a.length;b++){var k=d.getParent(a[b]),p=this.moveCells([g[b]],f,f,!1)[0];e.push(p);if(c)d.add(k,g[b]);else{var n=k.getIndex(a[b]);d.add(k,g[b],n+1)}if(this.isTable(k)){var t=this.getCellGeometry(g[b]),v=this.getCellGeometry(k);
+null!=t&&null!=v&&(v=v.clone(),v.height+=t.height,d.setGeometry(k,v))}}}finally{d.endUpdate()}return e};Graph.prototype.insertImage=function(a,c,b){if(null!=a&&null!=this.cellEditor.textarea){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<d.length;e++)f.push(d[e]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",
b);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.textarea)if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),b=[],d=0;d<c.length;d++)b.push(c[d]);document.execCommand("createlink",!1,mxUtils.trim(a));c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==b.length+1)for(d=c.length-1;0<=d;d--)if(c[d]!=b[d-1]){for(c=c[d].getElementsByTagName("a");0<c.length;){for(b=c[0].parentNode;null!=
c[0].firstChild;)b.insertBefore(c[0].firstChild,c[0]);b.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),b=this.getCurrentCellStyle(a);return!this.isTableCell(a)&&!this.isTableRow(a)&&(c||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());
-if(null!=c&&1<c.length){for(var b=[],d=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var m=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,m):m,f=null!=f?Math.min(f,m):m;b.push(g)}}if(2<b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y});g=this.view.translate;m=this.view.scale;f=f/m-(a?g.x:g.y);d=d/m-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var k=(d-f)/(b.length-1),d=f,e=1;e<b.length-1;e++){var x=this.view.getState(this.model.getParent(b[e].cell)),
-p=this.getCellGeometry(b[e].cell),d=d+k;null!=p&&null!=x&&(p=p.clone(),a?p.x=Math.round(d-p.width/2)-x.origin.x:p.y=Math.round(d-p.height/2)-x.origin.y,this.getModel().setGeometry(b[e].cell,p))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});
-return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,m,k,x,p,u,n,l){var q=null;if(null!=l)for(q=new mxDictionary,p=0;p<l.length;p++)q.put(l[p],!0);if(l=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var B="page"==n?this.view.getBackgroundPageBounds():e&&null==q||d||"diagram"==n?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==B)throw Error(mxResources.get("drawingEmpty"));
-var C=this.view.scale,z=mxUtils.createXmlDocument(),y=null!=z.createElementNS?z.createElementNS(mxConstants.NS_SVG,"svg"):z.createElement("svg");null!=a&&(null!=y.style?y.style.backgroundColor=a:y.setAttribute("style","background-color:"+a));null==z.createElementNS?(y.setAttribute("xmlns",mxConstants.NS_SVG),y.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):y.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/C;var D=Math.max(1,Math.ceil(B.width*a)+2*b)+(x?5:
-0),A=Math.max(1,Math.ceil(B.height*a)+2*b)+(x?5:0);y.setAttribute("version","1.1");y.setAttribute("width",D+"px");y.setAttribute("height",A+"px");y.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+D+" "+A);z.appendChild(y);var R=null!=z.createElementNS?z.createElementNS(mxConstants.NS_SVG,"g"):z.createElement("g");y.appendChild(R);var t=this.createSvgCanvas(R);t.foOffset=f?-.5:0;t.textOffset=f?-.5:0;t.imageOffset=f?-.5:0;t.translate(Math.floor((b/c-B.x)/C),Math.floor((b/c-B.y)/C));var ga=document.createElement("div"),
-F=t.getAlternateText;t.getAlternateText=function(a,c,b,d,f,e,g,m,k,x,p,u,n){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(ga.innerHTML=e,e=mxUtils.extractTextWithWhitespace(ga.childNodes));for(var v=Math.ceil(2*d/this.state.fontSize),S=[],Ca=0,wa=0;(0==v||Ca<v)&&wa<e.length;){var Sa=e.charCodeAt(wa);if(10==Sa||13==Sa){if(0<Ca)break}else S.push(e.charAt(wa)),255>Sa&&Ca++;wa++}S.length<e.length&&1<e.length-S.length&&(e=mxUtils.trim(S.join(""))+"...");return e}catch(fb){return F.apply(this,
-arguments)}else return F.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){c=C/c;var H=this.view.translate,E=new mxRectangle(H.x*c,H.y*c,N.width*c,N.height*c);mxUtils.intersects(B,E)&&t.image(H.x,H.y,N.width,N.height,N.src,!0)}t.scale(a);t.textEnabled=g;m=null!=m?m:this.createSvgImageExport();var U=m.drawCellState,I=m.getLinkForCellState;m.getLinkForCellState=function(a,c){var b=I.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};m.getLinkTargetForCellState=function(a,
-c){return a.view.graph.getLinkTargetForCell(a.cell)};m.drawCellState=function(a,c){for(var b=a.view.graph,d=null!=q?q.get(a.cell):b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!(e&&null==q||d)&&null!=f;)d=null!=q?q.get(f):b.isCellSelected(f),f=b.model.getParent(f);(e&&null==q||d)&&U.apply(this,arguments)};m.drawState(this.getView().getState(this.model.root),t);this.updateSvgLinks(y,k,!0);this.addForeignObjectWarning(t,y);return y}finally{l&&(this.useCssTransforms=!0,this.view.revalidate(),
+if(null!=c&&1<c.length){for(var b=[],d=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,f=null!=f?Math.min(f,k):k;b.push(g)}}if(2<b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y});g=this.view.translate;k=this.view.scale;f=f/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var p=(d-f)/(b.length-1),d=f,e=1;e<b.length-1;e++){var n=this.view.getState(this.model.getParent(b[e].cell)),
+t=this.getCellGeometry(b[e].cell),d=d+p;null!=t&&null!=n&&(t=t.clone(),a?t.x=Math.round(d-t.width/2)-n.origin.x:t.y=Math.round(d-t.height/2)-n.origin.y,this.getModel().setGeometry(b[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});
+return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,k,p,n,t,v,l,m){var q=null;if(null!=m)for(q=new mxDictionary,t=0;t<m.length;t++)q.put(m[t],!0);if(m=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var B="page"==l?this.view.getBackgroundPageBounds():e&&null==q||d||"diagram"==l?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==B)throw Error(mxResources.get("drawingEmpty"));
+var C=this.view.scale,y=mxUtils.createXmlDocument(),z=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=z.style?z.style.backgroundColor=a:z.setAttribute("style","background-color:"+a));null==y.createElementNS?(z.setAttribute("xmlns",mxConstants.NS_SVG),z.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):z.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=c/C;var E=Math.max(1,Math.ceil(B.width*a)+2*b)+(n?5:
+0),A=Math.max(1,Math.ceil(B.height*a)+2*b)+(n?5:0);z.setAttribute("version","1.1");z.setAttribute("width",E+"px");z.setAttribute("height",A+"px");z.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+E+" "+A);y.appendChild(z);var S=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"g"):y.createElement("g");z.appendChild(S);var u=this.createSvgCanvas(S);u.foOffset=f?-.5:0;u.textOffset=f?-.5:0;u.imageOffset=f?-.5:0;u.translate(Math.floor((b/c-B.x)/C),Math.floor((b/c-B.y)/C));var ka=document.createElement("div"),
+I=u.getAlternateText;u.getAlternateText=function(a,c,b,d,f,e,g,k,p,n,t,v,l){if(null!=e&&0<this.state.fontSize)try{mxUtils.isNode(e)?e=e.innerText:(ka.innerHTML=e,e=mxUtils.extractTextWithWhitespace(ka.childNodes));for(var x=Math.ceil(2*d/this.state.fontSize),la=[],Ca=0,va=0;(0==x||Ca<x)&&va<e.length;){var Sa=e.charCodeAt(va);if(10==Sa||13==Sa){if(0<Ca)break}else la.push(e.charAt(va)),255>Sa&&Ca++;va++}la.length<e.length&&1<e.length-la.length&&(e=mxUtils.trim(la.join(""))+"...");return e}catch(fb){return I.apply(this,
+arguments)}else return I.apply(this,arguments)};var F=this.backgroundImage;if(null!=F){c=C/c;var P=this.view.translate,D=new mxRectangle(P.x*c,P.y*c,F.width*c,F.height*c);mxUtils.intersects(B,D)&&u.image(P.x,P.y,F.width,F.height,F.src,!0)}u.scale(a);u.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var U=k.drawCellState,G=k.getLinkForCellState;k.getLinkForCellState=function(a,c){var b=G.apply(this,arguments);return null==b||a.view.graph.isCustomLink(b)?null:b};k.getLinkTargetForCellState=function(a,
+c){return a.view.graph.getLinkTargetForCell(a.cell)};k.drawCellState=function(a,c){for(var b=a.view.graph,d=null!=q?q.get(a.cell):b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!(e&&null==q||d)&&null!=f;)d=null!=q?q.get(f):b.isCellSelected(f),f=b.model.getParent(f);(e&&null==q||d)&&U.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),u);this.updateSvgLinks(z,p,!0);this.addForeignObjectWarning(u,z);return z}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),
this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(a,c){if("0"!=urlParams["svg-warning"]&&0<c.getElementsByTagName("foreignObject").length){var b=a.createElement("switch"),d=a.createElement("g");d.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var f=a.createElement("a");f.setAttribute("transform","translate(0,-5)");null==f.setAttributeNS||c.ownerDocument!=document&&null==document.documentMode?(f.setAttribute("xlink:href",Graph.foreignObjectWarningLink),
f.setAttribute("target","_blank")):(f.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),f.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var e=a.createElement("text");e.setAttribute("text-anchor","middle");e.setAttribute("font-size","10px");e.setAttribute("x","50%");e.setAttribute("y","100%");mxUtils.write(e,Graph.foreignObjectWarningText);b.appendChild(d);f.appendChild(e);b.appendChild(f);c.appendChild(b)}};Graph.prototype.updateSvgLinks=function(a,c,b){a=
a.getElementsByTagName("a");for(var d=0;d<a.length;d++)if(null==a[d].getAttribute("target")){var f=a[d].getAttribute("href");null==f&&(f=a[d].getAttribute("xlink:href"));null!=f&&(null!=c&&/^https?:\/\//.test(f)?a[d].setAttribute("target",c):b&&this.isCustomLink(f)&&a[d].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(a){a=new mxSvgCanvas2D(a);a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=
window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());return a};Graph.prototype.getSelectedEditingElement=function(){for(var a=this.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;null!=a&&a==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=this.cellEditor.textarea.firstChild);
return a};Graph.prototype.getParentByName=function(a,c,b){for(;null!=a&&a.nodeName!=c;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.getParentByNames=function(a,c,b){for(;null!=a&&!(0<=mxUtils.indexOf(c,a.nodeName));){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var b=document.createRange();b.selectNode(a);c.removeAllRanges();c.addRange(b)}}else(c=document.selection)&&
-"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.deleteCells=function(a,c){var b=null;if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var d=0;d<a.length;d++){var f=this.model.getParent(a[d]);if(this.isTable(f)){var e=this.getCellGeometry(a[d]),g=this.getCellGeometry(f);null!=e&&null!=g&&(g=g.clone(),g.height-=e.height,this.model.setGeometry(f,g))}}var m=this.selectParentAfterDelete?this.model.getParents(a):
-null;this.removeCells(a,c)}finally{this.model.endUpdate()}if(null!=m)for(b=[],d=0;d<m.length;d++)this.model.contains(m[d])&&(this.model.isVertex(m[d])||this.model.isEdge(m[d]))&&b.push(m[d])}return b};Graph.prototype.insertTableColumn=function(a,c){var b=this.getModel();b.beginUpdate();try{var d=a,f=0;if(this.isTableCell(a))var e=b.getParent(a),d=b.getParent(e),f=mxUtils.indexOf(b.getChildCells(e,!0),a);else this.isTableRow(a)?d=b.getParent(a):a=b.getChildCells(d,!0)[0],c||(f=b.getChildCells(a,!0).length-
-1);for(var g=b.getChildCells(d,!0),m=Graph.minTableColumnWidth,e=0;e<g.length;e++){var k=b.getChildCells(g[e],!0)[f],x=b.cloneCell(k,!1),p=this.getCellGeometry(x);x.value=null;if(null!=p){var m=p.width,u=this.getCellGeometry(g[e]);null!=u&&(p.height=u.height)}b.add(g[e],x,f+(c?0:1))}var n=this.getCellGeometry(d);null!=n&&(n=n.clone(),n.width+=m,b.setGeometry(d,n))}finally{b.endUpdate()}};Graph.prototype.insertTableRow=function(a,c){var b=this.getModel();b.beginUpdate();try{var d=a,f=a;if(this.isTableCell(a))f=
-b.getParent(a),d=b.getParent(f);else if(this.isTableRow(a))d=b.getParent(a);else var e=b.getChildCells(d,!0),f=e[c?0:e.length-1];var g=b.getChildCells(f,!0),m=d.getIndex(f),f=b.cloneCell(f,!1);f.value=null;var k=this.getCellGeometry(f);if(null!=k){for(e=0;e<g.length;e++){a=b.cloneCell(g[e],!1);f.insert(a);a.value=null;var x=this.getCellGeometry(a);null!=x&&(x.height=k.height)}b.add(d,f,m+(c?0:1));var p=this.getCellGeometry(d);null!=p&&(p=p.clone(),p.height+=k.height,b.setGeometry(d,p))}}finally{b.endUpdate()}};
-Graph.prototype.deleteTableColumn=function(a){var c=this.getModel();c.beginUpdate();try{var b=a,d=a;this.isTableCell(a)&&(d=c.getParent(a));this.isTableRow(d)&&(b=c.getParent(d));var f=c.getChildCells(b,!0);if(0==f.length)c.remove(b);else{this.isTableRow(d)||(d=f[0]);var e=c.getChildCells(d,!0);if(1>=e.length)c.remove(b);else{var g=e.length-1;this.isTableCell(a)&&(g=mxUtils.indexOf(e,a));for(d=a=0;d<f.length;d++){var m=c.getChildCells(f[d],!0)[g];c.remove(m);var k=this.getCellGeometry(m);null!=k&&
-(a=Math.max(a,k.width))}var x=this.getCellGeometry(b);null!=x&&(x=x.clone(),x.width-=a,c.setGeometry(b,x))}}}finally{c.endUpdate()}};Graph.prototype.deleteTableRow=function(a){var c=this.getModel();c.beginUpdate();try{var b=a,d=a;this.isTableCell(a)&&(a=d=c.getParent(a));this.isTableRow(a)&&(b=c.getParent(d));var f=c.getChildCells(b,!0);if(1>=f.length)c.remove(b);else{this.isTableRow(d)||(d=f[f.length-1]);c.remove(d);a=0;var e=this.getCellGeometry(d);null!=e&&(a=e.height);var g=this.getCellGeometry(b);
+"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart",a),b.select())};Graph.prototype.deleteCells=function(a,c){var b=null;if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var d=0;d<a.length;d++){var f=this.model.getParent(a[d]);if(this.isTable(f)){var e=this.getCellGeometry(a[d]),g=this.getCellGeometry(f);null!=e&&null!=g&&(g=g.clone(),g.height-=e.height,this.model.setGeometry(f,g))}}var k=this.selectParentAfterDelete?this.model.getParents(a):
+null;this.removeCells(a,c)}finally{this.model.endUpdate()}if(null!=k)for(b=[],d=0;d<k.length;d++)this.model.contains(k[d])&&(this.model.isVertex(k[d])||this.model.isEdge(k[d]))&&b.push(k[d])}return b};Graph.prototype.insertTableColumn=function(a,c){var b=this.getModel();b.beginUpdate();try{var d=a,f=0;if(this.isTableCell(a))var e=b.getParent(a),d=b.getParent(e),f=mxUtils.indexOf(b.getChildCells(e,!0),a);else this.isTableRow(a)?d=b.getParent(a):a=b.getChildCells(d,!0)[0],c||(f=b.getChildCells(a,!0).length-
+1);for(var g=b.getChildCells(d,!0),k=Graph.minTableColumnWidth,e=0;e<g.length;e++){var p=b.getChildCells(g[e],!0)[f],n=b.cloneCell(p,!1),t=this.getCellGeometry(n);n.value=null;if(null!=t){var k=t.width,v=this.getCellGeometry(g[e]);null!=v&&(t.height=v.height)}b.add(g[e],n,f+(c?0:1))}var l=this.getCellGeometry(d);null!=l&&(l=l.clone(),l.width+=k,b.setGeometry(d,l))}finally{b.endUpdate()}};Graph.prototype.insertTableRow=function(a,c){var b=this.getModel();b.beginUpdate();try{var d=a,f=a;if(this.isTableCell(a))f=
+b.getParent(a),d=b.getParent(f);else if(this.isTableRow(a))d=b.getParent(a);else var e=b.getChildCells(d,!0),f=e[c?0:e.length-1];var g=b.getChildCells(f,!0),k=d.getIndex(f),f=b.cloneCell(f,!1);f.value=null;var p=this.getCellGeometry(f);if(null!=p){for(e=0;e<g.length;e++){a=b.cloneCell(g[e],!1);f.insert(a);a.value=null;var n=this.getCellGeometry(a);null!=n&&(n.height=p.height)}b.add(d,f,k+(c?0:1));var t=this.getCellGeometry(d);null!=t&&(t=t.clone(),t.height+=p.height,b.setGeometry(d,t))}}finally{b.endUpdate()}};
+Graph.prototype.deleteTableColumn=function(a){var c=this.getModel();c.beginUpdate();try{var b=a,d=a;this.isTableCell(a)&&(d=c.getParent(a));this.isTableRow(d)&&(b=c.getParent(d));var f=c.getChildCells(b,!0);if(0==f.length)c.remove(b);else{this.isTableRow(d)||(d=f[0]);var e=c.getChildCells(d,!0);if(1>=e.length)c.remove(b);else{var g=e.length-1;this.isTableCell(a)&&(g=mxUtils.indexOf(e,a));for(d=a=0;d<f.length;d++){var k=c.getChildCells(f[d],!0)[g];c.remove(k);var p=this.getCellGeometry(k);null!=p&&
+(a=Math.max(a,p.width))}var n=this.getCellGeometry(b);null!=n&&(n=n.clone(),n.width-=a,c.setGeometry(b,n))}}}finally{c.endUpdate()}};Graph.prototype.deleteTableRow=function(a){var c=this.getModel();c.beginUpdate();try{var b=a,d=a;this.isTableCell(a)&&(a=d=c.getParent(a));this.isTableRow(a)&&(b=c.getParent(d));var f=c.getChildCells(b,!0);if(1>=f.length)c.remove(b);else{this.isTableRow(d)||(d=f[f.length-1]);c.remove(d);a=0;var e=this.getCellGeometry(d);null!=e&&(a=e.height);var g=this.getCellGeometry(b);
null!=g&&(g=g.clone(),g.height-=a,c.setGeometry(b,g))}}finally{c.endUpdate()}};Graph.prototype.insertRow=function(a,c){for(var b=a.tBodies[0],d=b.rows[0].cells,f=0,e=0;e<d.length;e++)var g=d[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);b=b.insertRow(c);for(e=0;e<f;e++)mxUtils.br(b.insertCell(-1));return b.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var b=a.tHead;if(null!=b)for(var d=0;d<b.rows.length;d++){var f=
document.createElement("th");b.rows[d].appendChild(f);mxUtils.br(f)}b=a.tBodies[0];for(d=0;d<b.rows.length;d++)f=b.rows[d].insertCell(c),mxUtils.br(f);return b.rows[0].cells[0<=c?c:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var b=a.tBodies[0].rows,d=0;d<b.length;d++)b[d].cells.length>c&&b[d].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();
var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();for(var d;d=b.firstChild;)lastNode=a.appendChild(d);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function b(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=
@@ -2558,39 +2559,39 @@ this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,funct
c.getState()&&this.isEnabled()&&(this.container.style.cursor="default");return c};var c=!1,b=!1,d=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),b=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&
(this.popupMenuHandler.popupTrigger||!d&&!mxEvent.isMouseEvent(f.getEvent())&&(b&&null==f.getCell()&&this.isSelectionEmpty()||c&&this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",
this.textarea)};mxCellEditor.prototype.alignText=function(a,c){var b=null!=c&&mxEvent.isShiftDown(c);if(b||null!=window.getSelection&&null!=window.getSelection().containsNode){var d=!0;this.graph.processElements(this.textarea,function(a){b||window.getSelection().containsNode(a,!0)?(a.removeAttribute("align"),a.style.textAlign=null):d=!1});d&&this.graph.cellEditor.setAlign(a)}document.execCommand("justify"+a.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=
-window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],b=0,d=a.rangeCount;b<d;++b)c.push(a.getRangeAt(b));return c}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(ba){}};var u=mxCellRenderer.prototype.initializeLabel;
-mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));u.apply(this,arguments)};var A=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?A.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=
+window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],b=0,d=a.rangeCount;b<d;++b)c.push(a.getRangeAt(b));return c}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(aa){}};var v=mxCellRenderer.prototype.initializeLabel;
+mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));v.apply(this,arguments)};var A=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?A.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=
!1;var F=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,c){a=this.graph.getStartEditingCell(a,c);F.apply(this,arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);if(this.graph.getModel().isEdge(b)&&null!=
-d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var z=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var d=b.firstChild;null!=a&&null!=d;)c(a,d),a=a.nextSibling,d=d.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!=a)d(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=
+d&&d.relative||this.graph.getModel().isEdge(a))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var y=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var d=b.firstChild;null!=a&&null!=d;)c(a,d),a=a.nextSibling,d=d.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!=a)d(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=
a.nextSibling;null==c?d(a):(b(a,c),c=c.nextSibling);a=f}}function d(a){for(var c=a.firstChild;null!=c;){var b=c.nextSibling;d(c);c=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"),a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),
-a.removeAttribute("border"))):a.parentNode.removeChild(a)}z.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?b(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),
-0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,
-mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,m=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
-m.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&m.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=m.join(" ");this.textarea.style.fontWeight=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=
-c;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var k=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(k=mxUtils.replaceTrailingNewlines(k,
-"<div><br></div>"));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):k,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=
-mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=b;this.resize()}};var y=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&
+a.removeAttribute("border"))):a.parentNode.removeChild(a)}y.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?b(this.textarea,d):Graph.removePasteFormatting(this.textarea))}),
+0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell);if(null!=a){var c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){n=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<n.length&&"\n"==n.charAt(n.length-1)&&(n=n.substring(0,n.length-1));n=this.graph.sanitizeHtml(c?n.replace(/\n/g,"<br/>"):n,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,
+mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
+k.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&k.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=k.join(" ");this.textarea.style.fontWeight=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=
+c;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=n&&(this.textarea.innerHTML=n,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var n=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(n=mxUtils.replaceTrailingNewlines(n,
+"<div><br></div>"));n=this.graph.sanitizeHtml(c?n.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):n,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=
+mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=n&&(this.textarea.innerHTML=n);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=b;this.resize()}};var z=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&
null!=a){var b=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*b;this.bounds.height=60*b;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=
Math.round((this.bounds.width-4)/b)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/b)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/b)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*b);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/b)+(this.textarea.offsetWidth-
-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow="",y.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,
+this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow="",z.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,
"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var c=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);
-return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var M=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();M.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(R){}};var L=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();
-try{L.apply(this,arguments),""==c&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=c&&c!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=
+return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var L=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();L.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(S){}};var M=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();
+try{M.apply(this,arguments),""==c&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=c&&c!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=
mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize=function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(a,c){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&
!mxEvent.isAltDown(c.getEvent)};mxGraphView.prototype.formatUnitText=function(a){return a?b(a,this.unit):a};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,f=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/f-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/f-d.y);f=this.graph.view.unit;this.hint.innerHTML=
-b(c,f)+", "+b(d,f);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var I=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,c){I.apply(this,arguments);var b=this.graph.getCellStyle(a);if(null==
-b.childLayout){var d=this.graph.model.getParent(a),f=null!=d?this.graph.getCellGeometry(d):null;if(null!=f&&(b=this.graph.getCellStyle(d),"stackLayout"==b.childLayout)){var e=parseFloat(mxUtils.getValue(b,"stackBorder",mxStackLayout.prototype.border)),b="1"==mxUtils.getValue(b,"horizontalStack","1"),g=this.graph.getActualStartSize(d),f=f.clone();b?f.height=c.height+g.y+g.height+2*e:f.width=c.width+g.x+g.width+2*e;this.graph.model.setGeometry(d,f)}}};var G=mxSelectionCellsHandler.prototype.getHandledSelectionCells;
-mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){b.get(a)||(b.put(a,!0),f.push(a))}for(var c=G.apply(this,arguments),b=new mxDictionary,d=this.graph.model,f=[],e=0;e<c.length;e++){var g=c[e];this.graph.isTableCell(g)?a(d.getParent(d.getParent(g))):this.graph.isTableRow(g)&&a(d.getParent(g));a(g)}return f};var K=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var c=K.apply(this,arguments);c.stroke=
-"#C0C0C0";c.strokewidth=1;return c};var E=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var c=E.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-
+b(c,f)+", "+b(d,f);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var G=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(a,c){G.apply(this,arguments);var b=this.graph.getCellStyle(a);if(null==
+b.childLayout){var d=this.graph.model.getParent(a),f=null!=d?this.graph.getCellGeometry(d):null;if(null!=f&&(b=this.graph.getCellStyle(d),"stackLayout"==b.childLayout)){var e=parseFloat(mxUtils.getValue(b,"stackBorder",mxStackLayout.prototype.border)),b="1"==mxUtils.getValue(b,"horizontalStack","1"),g=this.graph.getActualStartSize(d),f=f.clone();b?f.height=c.height+g.y+g.height+2*e:f.width=c.width+g.x+g.width+2*e;this.graph.model.setGeometry(d,f)}}};var J=mxSelectionCellsHandler.prototype.getHandledSelectionCells;
+mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function a(a){b.get(a)||(b.put(a,!0),f.push(a))}for(var c=J.apply(this,arguments),b=new mxDictionary,d=this.graph.model,f=[],e=0;e<c.length;e++){var g=c[e];this.graph.isTableCell(g)?a(d.getParent(d.getParent(g))):this.graph.isTableRow(g)&&a(d.getParent(g));a(g)}return f};var H=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(a){var c=H.apply(this,arguments);c.stroke=
+"#C0C0C0";c.strokewidth=1;return c};var D=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(a){var c=D.apply(this,arguments);c.stroke="#C0C0C0";c.strokewidth=1;return c};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-
a.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(a,c){return this.graph.isRecursiveVertexResize(a)&&!mxEvent.isControlDown(c.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(a,c){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(c.getEvent())||mxEvent.isMetaDown(c.getEvent())};
-var J=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return J.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var H=mxVertexHandler.prototype.isParentHighlightVisible;
-mxVertexHandler.prototype.isParentHighlightVisible=function(){return H.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var X=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||X.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?
-a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var Q=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return Q.apply(this,arguments).grow(-this.getSelectionBorderInset())};var x=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=x.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var c=this.graph,b=c.model,d=this.state,f=this.selectionBorder,e=this;null==
-a&&(a=[]);var g=c.view.getCellStates(b.getChildCells(this.state.cell,!0));if(0<g.length){for(var m=c.view.getCellStates(b.getChildCells(g[0].cell,!0)),b=0;b<m.length;b++)mxUtils.bind(this,function(b){var g=m[b],k=b<m.length-1?m[b+1]:null,x=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);x.isDashed=f.isDashed;x.svgStrokeTolerance++;x=new mxHandle(g,"col-resize",null,x);x.tableHandle=!0;var p=0;x.shape.node.parentNode.insertBefore(x.shape.node,x.shape.node.parentNode.firstChild);x.redraw=function(){if(null!=
-this.shape&&null!=this.state.shape){var a=c.getActualStartSize(d.cell);this.shape.stroke=0==p?mxConstants.NONE:f.stroke;this.shape.bounds.x=this.state.x+this.state.width+p*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=d.y+(b==m.length-1?0:a.y*this.graph.view.scale);this.shape.bounds.height=d.height-(b==m.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var u=!1;x.setPosition=function(a,b,d){p=Math.max(Graph.minTableColumnWidth-a.width,b.x-a.x-a.width);u=
-mxEvent.isShiftDown(d.getEvent());null==k||u||(p=Math.min((k.x+k.width-g.x-g.width)/c.view.scale-Graph.minTableColumnWidth,p))};x.execute=function(a){if(0!=p)c.setTableColumnWidth(this.state.cell,p,u);else if(!e.blockDelayedSelection){var b=c.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;c.graphHandler.selectCellForEvent(b,a)}p=0};x.reset=function(){p=0};a.push(x)})(b);for(b=0;b<g.length;b++)mxUtils.bind(this,function(b){b=g[b];var m=new mxLine(new mxRectangle,mxConstants.NONE,1);m.isDashed=f.isDashed;
-m.svgStrokeTolerance++;b=new mxHandle(b,"row-resize",null,m);b.tableHandle=!0;var k=0;b.shape.node.parentNode.insertBefore(b.shape.node,b.shape.node.parentNode.firstChild);b.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==k?mxConstants.NONE:f.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+k*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};b.setPosition=function(a,
-c,b){k=Math.max(Graph.minTableRowHeight-a.height,c.y-a.y-a.height)};b.execute=function(a){if(0!=k)c.setTableRowHeight(this.state.cell,k,!mxEvent.isShiftDown(a.getEvent()));else if(!e.blockDelayedSelection){var b=c.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;c.graphHandler.selectCellForEvent(b,a)}k=0};b.reset=function(){k=0};a.push(b)})(b)}}return null!=a?a.reverse():null};var B=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){B.apply(this,arguments);
+var K=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return K.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var I=mxVertexHandler.prototype.isParentHighlightVisible;
+mxVertexHandler.prototype.isParentHighlightVisible=function(){return I.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var R=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||R.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?
+a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};var n=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=n.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var c=this.graph,b=c.model,d=this.state,f=this.selectionBorder,e=this;null==
+a&&(a=[]);var g=c.view.getCellStates(b.getChildCells(this.state.cell,!0));if(0<g.length){for(var k=c.view.getCellStates(b.getChildCells(g[0].cell,!0)),b=0;b<k.length;b++)mxUtils.bind(this,function(b){var g=k[b],n=b<k.length-1?k[b+1]:null,p=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);p.isDashed=f.isDashed;p.svgStrokeTolerance++;p=new mxHandle(g,"col-resize",null,p);p.tableHandle=!0;var t=0;p.shape.node.parentNode.insertBefore(p.shape.node,p.shape.node.parentNode.firstChild);p.redraw=function(){if(null!=
+this.shape&&null!=this.state.shape){var a=c.getActualStartSize(d.cell);this.shape.stroke=0==t?mxConstants.NONE:f.stroke;this.shape.bounds.x=this.state.x+this.state.width+t*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=d.y+(b==k.length-1?0:a.y*this.graph.view.scale);this.shape.bounds.height=d.height-(b==k.length-1?0:(a.height+a.y)*this.graph.view.scale);this.shape.redraw()}};var v=!1;p.setPosition=function(a,b,d){t=Math.max(Graph.minTableColumnWidth-a.width,b.x-a.x-a.width);v=
+mxEvent.isShiftDown(d.getEvent());null==n||v||(t=Math.min((n.x+n.width-g.x-g.width)/c.view.scale-Graph.minTableColumnWidth,t))};p.execute=function(a){if(0!=t)c.setTableColumnWidth(this.state.cell,t,v);else if(!e.blockDelayedSelection){var b=c.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;c.graphHandler.selectCellForEvent(b,a)}t=0};p.reset=function(){t=0};a.push(p)})(b);for(b=0;b<g.length;b++)mxUtils.bind(this,function(b){b=g[b];var k=new mxLine(new mxRectangle,mxConstants.NONE,1);k.isDashed=f.isDashed;
+k.svgStrokeTolerance++;b=new mxHandle(b,"row-resize",null,k);b.tableHandle=!0;var n=0;b.shape.node.parentNode.insertBefore(b.shape.node,b.shape.node.parentNode.firstChild);b.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==n?mxConstants.NONE:f.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+n*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};b.setPosition=function(a,
+c,b){n=Math.max(Graph.minTableRowHeight-a.height,c.y-a.y-a.height)};b.execute=function(a){if(0!=n)c.setTableRowHeight(this.state.cell,n,!mxEvent.isShiftDown(a.getEvent()));else if(!e.blockDelayedSelection){var b=c.getCellAt(a.getGraphX(),a.getGraphY())||d.cell;c.graphHandler.selectCellForEvent(b,a)}n=0};b.reset=function(){n=0};a.push(b)})(b)}}return null!=a?a.reverse():null};var B=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){B.apply(this,arguments);
if(null!=this.moveHandles)for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].style.visibility=a?"":"hidden";if(null!=this.cornerHandles)for(c=0;c<this.cornerHandles.length;c++)this.cornerHandles[c].node.style.visibility=a?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var a=this.graph.model;if(null!=this.moveHandles){for(var c=0;c<this.moveHandles.length;c++)this.moveHandles[c].parentNode.removeChild(this.moveHandles[c]);this.moveHandles=null}this.moveHandles=[];for(c=
0;c<a.getChildCount(this.state.cell);c++)mxUtils.bind(this,function(c){if(null!=c&&a.isVertex(c.cell)){var b=mxUtils.createImage(Editor.rowMoveImage);b.style.position="absolute";b.style.cursor="pointer";b.style.width="7px";b.style.height="4px";b.style.padding="4px 2px 4px 2px";b.rowState=c;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(a){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(a)&&this.graph.isCellSelected(c.cell)||this.graph.selectCellForEvent(c.cell,
a);mxEvent.isPopupTrigger(a)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0);mxEvent.consume(a)}),null,mxUtils.bind(this,function(a){mxEvent.isPopupTrigger(a)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(a),mxEvent.getClientY(a),c.cell,a),mxEvent.consume(a))}));this.moveHandles.push(b);this.graph.container.appendChild(b)}})(this.graph.view.getState(a.getChildAt(this.state.cell,
@@ -2598,8 +2599,8 @@ c)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){
b=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!b&&null!=this.customHandles)for(var d=0;d<this.customHandles.length;d++)if(null!=this.customHandles[d].shape&&null!=this.customHandles[d].shape.bounds){var f=this.customHandles[d].shape.bounds,e=f.getCenterX(),g=f.getCenterY();if(Math.abs(this.state.x-e)<f.width/2||Math.abs(this.state.y-g)<f.height/2||Math.abs(this.state.x+this.state.width-e)<f.width/2||Math.abs(this.state.y+this.state.height-g)<f.height/
2){b=!0;break}}b&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,this.graph.isTable(this.state.cell)&&(c+=7),a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=C.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{c=
this.state.view.scale;var d=this.state.view.unit;this.hint.innerHTML=b(this.roundLength(this.bounds.width/c),d)+" x "+b(this.roundLength(this.bounds.height/c),d)}c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==c&&(c=this.bounds);this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=c.y+c.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};
-mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var ga=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,c){ga.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var D=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
-function(a,c){D.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var f=this.graph.view.translate,e=this.graph.view.scale,g=this.roundLength(d.x/e-f.x),f=this.roundLength(d.y/e-f.y),e=this.graph.view.unit;this.hint.innerHTML=b(g,e)+", "+b(f,e);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
+mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var ka=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,c){ka.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var E=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+function(a,c){E.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var f=this.graph.view.translate,e=this.graph.view.scale,g=this.roundLength(d.x/e-f.x),f=this.roundLength(d.y/e-f.y),e=this.graph.view.unit;this.hint.innerHTML=b(g,e)+", "+b(f,e);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(g=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*g.x)+"%, "+Math.round(100*g.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),d.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=
mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=
mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+
@@ -2613,20 +2614,20 @@ function(a){return!mxEvent.isShiftDown(a.getEvent())};if(Graph.touchStyle){if(mx
function(a){var c=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(c)||mxEvent.isPopupTrigger(c)&&(null==a.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))};var U=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,c){U.apply(this,arguments);mxEvent.isTouchEvent(c.getEvent())&&this.graph.isCellSelected(c.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var c=
a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&
(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(a,c){if(this.cancelled)this.cancelled=!1,c.consume();else{var b=null!=this.div&&"none"!=this.div.style.display,d=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(d=this.first.x,f=this.first.y,e=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<
-this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x,this.y,this.width,this.height),m=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(m)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(m=this.graph.getCellsBeyond(d,f,this.graph.getDefaultParent(),!0,!0),b=0;b<m.length;b++)if(this.graph.isCellMovable(m[b])){var k=
-this.graph.view.getState(m[b]),x=this.graph.getCellGeometry(m[b]);null!=k&&null!=x&&(x=x.clone(),x.translate(e,g),this.graph.model.setGeometry(m[b],x))}}finally{this.graph.model.endUpdate()}}else e=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);b.x-=d.x;b.y-=d.y;
+this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x,this.y,this.width,this.height),k=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(k=this.graph.getCellsBeyond(d,f,this.graph.getDefaultParent(),!0,!0),b=0;b<k.length;b++)if(this.graph.isCellMovable(k[b])){var n=
+this.graph.view.getState(k[b]),p=this.graph.getCellGeometry(k[b]);null!=n&&null!=p&&(p=p.clone(),p.translate(e,g),this.graph.model.setGeometry(k[b],p))}}finally{this.graph.model.endUpdate()}}else e=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);b.x-=d.x;b.y-=d.y;
var d=c.getX()+b.x,b=c.getY()+b.y,f=this.first.x-d,e=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,b),this.isSpaceEvent(c)?(d=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(this.width=this.graph.snap(this.width/f)*f,this.height=this.graph.snap(this.height/f)*f,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=
0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=
this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null)),c.consume()}};var Z=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Z.apply(this,arguments)};var Y=(new Date).getTime(),ma=0,pa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){pa.apply(this,arguments);b!=this.currentTerminalState?(Y=(new Date).getTime(),ma=0):ma=(new Date).getTime()-Y;this.currentTerminalState=
-b};var aa=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<ma||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&aa.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
+this.secondDiv=null)),c.consume()}};var Y=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Y.apply(this,arguments)};var X=(new Date).getTime(),ma=0,pa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){pa.apply(this,arguments);b!=this.currentTerminalState?(X=(new Date).getTime(),ma=0):ma=(new Date).getTime()-X;this.currentTerminalState=
+b};var Z=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<ma||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&Z.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-
1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,
-mxConstants.HANDLE_STROKECOLOR)};var ja=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ja.apply(this,arguments)};var ka=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
-if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return ka.apply(this,arguments)};var ha=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=ha.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var ca=mxVertexHandler.prototype.getSelectionBounds;
-mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):ca.apply(this,arguments)};var na=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
+mxConstants.HANDLE_STROKECOLOR)};var ha=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ha.apply(this,arguments)};var ia=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);
+if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return ia.apply(this,arguments)};var fa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var a=fa.apply(this,arguments),c=[],b=0;b<a.length;b++)"1"!=mxUtils.getValue(a[b].style,"part","0")&&c.push(a[b]);return c};var ba=mxVertexHandler.prototype.getSelectionBounds;
+mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):ba.apply(this,arguments)};var na=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,
c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&na.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var a=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);
this.state.view.graph.model.isVertex(this.state.cell)&&a==mxConstants.NONE&&c==mxConstants.NONE?(a=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,a,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var V=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){V.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&
-null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var P=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){P.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
+null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var Q=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){Q.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=
"");this.blockDelayedSelection=null};var oa=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){oa.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var c=0;4>c;c++){var b=new mxRectangleShape(new mxRectangle(0,
0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);b.dialect=mxConstants.DIALECT_SVG;b.init(this.graph.view.getOverlayPane());this.cornerHandles.push(b)}}var d=mxUtils.bind(this,function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.changeHandler=mxUtils.bind(this,function(a,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));
d()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);c=this.graph.getLinkForCell(this.state.cell);b=this.graph.getLinksForState(this.state);this.updateLinkHint(c,b);if(null!=c||null!=b&&0<b.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=
@@ -2635,117 +2636,117 @@ this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document
var f=document.createElement("img");f.setAttribute("src",Dialog.prototype.clearImage);f.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));f.setAttribute("width","13");f.setAttribute("height","10");f.style.marginLeft="4px";f.style.marginBottom="-1px";f.style.cursor="pointer";this.linkHint.appendChild(f);mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(a)}))}if(null!=b)for(d=0;d<b.length;d++){var e=
document.createElement("div");e.style.marginTop=null!=c||0<d?"6px":"0px";e.appendChild(this.graph.createLinkForHint(b[d].getAttribute("href"),mxUtils.getTextContent(b[d])));this.linkHint.appendChild(e)}}}catch(sa){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var T=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){T.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});
var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.changeHandler=mxUtils.bind(this,function(c,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var da=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){da.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var la=mxVertexHandler.prototype.redrawHandles;
+this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var ca=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){ca.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var ja=mxVertexHandler.prototype.redrawHandles;
mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var a=0;a<this.moveHandles.length;a++)this.moveHandles[a].style.left=this.moveHandles[a].rowState.x+this.moveHandles[a].rowState.width-5+"px",this.moveHandles[a].style.top=this.moveHandles[a].rowState.y+this.moveHandles[a].rowState.height/2-6+"px";if(null!=this.cornerHandles){var a=this.getSelectionBorderInset(),c=this.cornerHandles,b=c[0].bounds.height/2;c[0].bounds.x=this.state.x-c[0].bounds.width/2+a;c[0].bounds.y=
this.state.y-b+a;c[0].redraw();c[1].bounds.x=c[0].bounds.x+this.state.width-2*a;c[1].bounds.y=c[0].bounds.y;c[1].redraw();c[2].bounds.x=c[0].bounds.x;c[2].bounds.y=this.state.y+this.state.height-2*a;c[2].redraw();c[3].bounds.x=c[1].bounds.x;c[3].bounds.y=c[2].bounds.y;c[3].redraw();for(a=0;a<this.cornerHandles.length;a++)this.cornerHandles[a].node.style.display=1==this.graph.getSelectionCount()?"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
-null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");la.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||
+null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");ja.apply(this);null!=this.state&&null!=this.linkHint&&(a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||
"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null,null==b&&(b=this.state),b=b.y+b.height,null!=c&&(b=Math.max(b,c.y+c.height)),this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(b+this.verticalOffset/2+Editor.hintOffset)+"px")};var ra=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){ra.apply(this,arguments);if(null!=this.moveHandles){for(var a=0;a<this.moveHandles.length;a++)null!=
this.moveHandles[a]&&null!=this.moveHandles[a].parentNode&&this.moveHandles[a].parentNode.removeChild(this.moveHandles[a]);this.moveHandles=null}if(null!=this.cornerHandles){for(a=0;a<this.cornerHandles.length;a++)null!=this.cornerHandles[a]&&null!=this.cornerHandles[a].node&&null!=this.cornerHandles[a].node.parentNode&&this.cornerHandles[a].node.parentNode.removeChild(this.cornerHandles[a].node);this.cornerHandles=null}null!=this.linkHint&&(null!=this.linkHint.parentNode&&this.linkHint.parentNode.removeChild(this.linkHint),
this.linkHint=null);null!=this.changeHandler&&(this.graph.getSelectionModel().removeListener(this.changeHandler),this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var O=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(O.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&
-null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var ia=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ia.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var fa=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
-function(){fa.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function n(){mxCylinder.call(this)}function l(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxShape.call(this)}function f(){mxShape.call(this)}function g(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function m(){mxActor.call(this)}function k(){mxCylinder.call(this)}
-function p(){mxCylinder.call(this)}function u(){mxActor.call(this)}function A(){mxActor.call(this)}function F(){mxActor.call(this)}function z(){mxActor.call(this)}function y(){mxActor.call(this)}function M(){mxActor.call(this)}function L(){mxActor.call(this)}function I(a,c){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,I.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
-this.canvas.moveTo=mxUtils.bind(this,I.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,I.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,I.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,I.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,I.prototype.arcTo)}function G(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
-function E(){mxActor.call(this)}function J(){mxActor.call(this)}function H(){mxActor.call(this)}function X(){mxRectangleShape.call(this)}function Q(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function B(){mxShape.call(this)}function C(){mxShape.call(this)}function ga(){mxEllipse.call(this)}function D(){mxShape.call(this)}function U(){mxShape.call(this)}function Z(){mxRectangleShape.call(this)}function Y(){mxShape.call(this)}function ma(){mxShape.call(this)}function pa(){mxShape.call(this)}
-function aa(){mxShape.call(this)}function ja(){mxShape.call(this)}function ka(){mxCylinder.call(this)}function ha(){mxCylinder.call(this)}function ca(){mxRectangleShape.call(this)}function na(){mxDoubleEllipse.call(this)}function V(){mxDoubleEllipse.call(this)}function P(){mxArrowConnector.call(this);this.spacing=0}function oa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function da(){mxRectangleShape.call(this)}function la(){mxActor.call(this)}function ra(){mxActor.call(this)}
-function O(){mxActor.call(this)}function ia(){mxActor.call(this)}function fa(){mxActor.call(this)}function R(){mxActor.call(this)}function ya(){mxActor.call(this)}function N(){mxActor.call(this)}function ba(){mxActor.call(this)}function qa(){mxActor.call(this)}function sa(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}function Da(){mxRhombus.call(this)}function Ga(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
-function Ia(){mxEllipse.call(this)}function za(){mxActor.call(this)}function ua(){mxActor.call(this)}function va(){mxActor.call(this)}function W(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Aa(){mxConnector.call(this)}function Ta(a,c,b,d,f,e,g,m,k,x){g+=k;var v=d.clone();d.x-=f*(2*g+k);d.y-=e*(2*g+k);f*=g+k;e*=g+k;return function(){a.ellipse(v.x-
-f-g,v.y-e-g,2*g,2*g);x?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,b,d,f){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-b));this.paintForeground(a,
-c,b,d,f)};a.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.state){var v=this.flipH,e=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=v,v=e,e=g;a.rotate(-this.getShapeRotation(),v,e,c+d/2,b+f/2);s=this.scale;c=this.bounds.x/s;b=this.bounds.y/s;d=this.bounds.width/s;f=this.bounds.height/s;this.paintTableForeground(a,c,b,d,f)}};a.prototype.paintTableForeground=function(a,c,b,d,f){var v=this.state.view.graph,e=v.getActualStartSize(this.state.cell),
-g=v.model.getChildCells(this.state.cell,!0);if(0<g.length){var S="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),wa="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(S)for(S=1;S<g.length;S++){var m=v.getCellGeometry(g[S]);null!=m&&(a.begin(),a.moveTo(c+e.x,b+m.y),a.lineTo(c+d-e.width,b+m.y),a.end(),a.stroke())}if(wa)for(d=v.model.getChildCells(g[0],!0),S=1;S<d.length;S++)m=v.getCellGeometry(d[S]),null!=m&&(a.begin(),a.moveTo(c+m.x+e.x,b+e.y),a.lineTo(c+m.x+e.x,b+f-e.height),a.end(),
-a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var v=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
-a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-v,0);a.lineTo(d,v);a.lineTo(d,f);a.lineTo(v,f);a.lineTo(0,f-v);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-v,0),a.lineTo(d,v),a.lineTo(v,v),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(v,v),a.lineTo(v,f),a.lineTo(0,f-v),
-a.close(),a.fill()),a.begin(),a.moveTo(v,f),a.lineTo(v,v),a.lineTo(0,0),a.moveTo(v,v),a.lineTo(d,v),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Qa=Math.tan(mxUtils.toRadians(30)),Ha=(.5-Qa)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
-6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var v=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-v),b+.5*(f-v),v,v);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Qa);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ha);
-a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ha)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(n,mxCylinder);n.prototype.size=20;n.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Qa));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ha)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ha)*c),a.lineTo(.5*c,(1-Ha)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ha),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ha)*c),a.lineTo(0,.75*
-c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",n);mxUtils.extend(l,mxCylinder);l.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
-c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};l.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",l);mxUtils.extend(t,mxCylinder);t.prototype.size=30;t.prototype.darkOpacity=0;t.prototype.paintVertexShape=function(a,c,b,d,f){var v=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=
-Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-v,0);a.lineTo(d,v);a.lineTo(d,f);a.lineTo(0,f);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-v,0),a.lineTo(d-v,v),a.lineTo(d,v),a.close(),a.fill()),a.begin(),a.moveTo(d-v,0),a.lineTo(d-v,v),a.lineTo(d,v),a.end(),a.stroke())};
-mxCellRenderer.registerShape("note",t);mxUtils.extend(q,t);mxCellRenderer.registerShape("note2",q);q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,0)}return null};mxUtils.extend(c,mxShape);c.prototype.isoAngle=15;c.prototype.paintVertexShape=function(a,c,b,d,f){var v=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*
-Math.PI/200,v=Math.min(d*Math.tan(v),.5*f);a.translate(c,b);a.begin();a.moveTo(.5*d,0);a.lineTo(d,v);a.lineTo(d,f-v);a.lineTo(.5*d,f);a.lineTo(0,f-v);a.lineTo(0,v);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,v);a.lineTo(.5*d,2*v);a.lineTo(d,v);a.moveTo(.5*d,2*v);a.lineTo(.5*d,f);a.stroke()};mxCellRenderer.registerShape("isoCube2",c);mxUtils.extend(f,mxShape);f.prototype.size=15;f.prototype.paintVertexShape=function(a,c,b,d,f){var v=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.translate(c,b);0==v?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),a.moveTo(0,v),a.arcTo(.5*d,v,0,0,1,.5*d,0),a.arcTo(.5*d,v,0,0,1,d,v),a.lineTo(d,f-v),a.arcTo(.5*d,v,0,0,1,.5*d,f),a.arcTo(.5*d,v,0,0,1,0,f-v),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,v),a.arcTo(.5*d,v,0,0,1,.5*d,2*v),a.arcTo(.5*d,v,0,0,1,0,v),a.stroke())};mxCellRenderer.registerShape("cylinder2",f);mxUtils.extend(g,mxCylinder);g.prototype.size=15;g.prototype.paintVertexShape=function(a,
-c,b,d,f){var v=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"lid",!0);a.translate(c,b);0==v?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),e?(a.moveTo(0,v),a.arcTo(.5*d,v,0,0,1,.5*d,0),a.arcTo(.5*d,v,0,0,1,d,v)):(a.moveTo(0,0),a.arcTo(.5*d,v,0,0,0,.5*d,v),a.arcTo(.5*d,v,0,0,0,d,0)),a.lineTo(d,f-v),a.arcTo(.5*d,v,0,0,1,.5*d,f),a.arcTo(.5*d,v,0,0,1,0,f-v),a.close(),a.fillAndStroke(),a.setShadow(!1),e&&(a.begin(),a.moveTo(d,v),a.arcTo(.5*
-d,v,0,0,1,.5*d,2*v),a.arcTo(.5*d,v,0,0,1,0,v),a.stroke()))};mxCellRenderer.registerShape("cylinder3",g);mxUtils.extend(m,mxActor);m.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(k,mxCylinder);k.prototype.tabWidth=60;k.prototype.tabHeight=20;k.prototype.tabPosition="right";k.prototype.arcSize=.1;k.prototype.paintVertexShape=function(a,
-c,b,d,f){a.translate(c,b);c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var v=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),e=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),S=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(S*=Math.min(d,f));S=Math.min(S,.5*d,.5*(f-b));c=Math.max(c,
-S);c=Math.min(d-S,c);e||(S=0);a.begin();"left"==v?(a.moveTo(Math.max(S,0),b),a.lineTo(Math.max(S,0),0),a.lineTo(c,0),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d-Math.max(S,0),0),a.lineTo(d-Math.max(S,0),b));e?(a.moveTo(0,S+b),a.arcTo(S,S,0,0,1,S,b),a.lineTo(d-S,b),a.arcTo(S,S,0,0,1,d,S+b),a.lineTo(d,f-S),a.arcTo(S,S,0,0,1,d-S,f),a.lineTo(S,f),a.arcTo(S,S,0,0,1,0,f-S)):(a.moveTo(0,b),a.lineTo(d,b),a.lineTo(d,f),a.lineTo(0,f));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
-"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,b+20),a.lineTo(d-20,b+10),a.lineTo(d-10,b+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",k);k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
-"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(v*=Math.min(a.width,a.height));v=Math.min(v,.5*a.width,.5*(a.height-c));d||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(a.width,a.width-b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,v,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};
-mxUtils.extend(p,mxCylinder);p.prototype.arcSize=.1;p.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);var v=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1);c=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));b=mxUtils.getValue(this.style,"umlStateConnection",null);e||(c*=Math.min(d,f));c=Math.min(c,.5*d,.5*f);v||(c=0);v=0;null!=b&&(v=10);a.begin();a.moveTo(v,c);a.arcTo(c,c,0,0,1,v+c,0);a.lineTo(d-c,0);a.arcTo(c,c,0,0,1,d,
-c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(v+c,f);a.arcTo(c,c,0,0,1,v,f-c);a.close();a.fillAndStroke();a.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(a.roundrect(d-40,f-20,10,10,3,3),a.stroke(),a.roundrect(d-20,f-20,10,10,3,3),a.stroke(),a.begin(),a.moveTo(d-30,f-15),a.lineTo(d-20,f-15),a.stroke());"connPointRefEntry"==b?(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke()):"connPointRefExit"==b&&(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke(),a.begin(),a.moveTo(5,
-.5*f-5),a.lineTo(15,.5*f+5),a.moveTo(15,.5*f-5),a.lineTo(5,.5*f+5),a.stroke())};p.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",p);mxUtils.extend(u,mxActor);u.prototype.size=30;u.prototype.isRoundable=function(){return!0};u.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",u);mxUtils.extend(A,mxActor);A.prototype.size=.4;A.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*
+null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+Editor.hintOffset)+"px"}};var ga=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ga.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ea=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=
+function(){ea.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxSwimlane.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function l(){mxCylinder.call(this)}function m(){mxCylinder.call(this)}function u(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function c(){mxShape.call(this)}function f(){mxShape.call(this)}function g(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1}function k(){mxActor.call(this)}function p(){mxCylinder.call(this)}
+function t(){mxCylinder.call(this)}function v(){mxActor.call(this)}function A(){mxActor.call(this)}function F(){mxActor.call(this)}function y(){mxActor.call(this)}function z(){mxActor.call(this)}function L(){mxActor.call(this)}function M(){mxActor.call(this)}function G(a,c){this.canvas=a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,G.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
+this.canvas.moveTo=mxUtils.bind(this,G.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,G.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,G.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,G.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,G.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function H(){mxRectangleShape.call(this)}
+function D(){mxActor.call(this)}function K(){mxActor.call(this)}function I(){mxActor.call(this)}function R(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function n(){mxCylinder.call(this)}function B(){mxShape.call(this)}function C(){mxShape.call(this)}function ka(){mxEllipse.call(this)}function E(){mxShape.call(this)}function U(){mxShape.call(this)}function Y(){mxRectangleShape.call(this)}function X(){mxShape.call(this)}function ma(){mxShape.call(this)}function pa(){mxShape.call(this)}
+function Z(){mxShape.call(this)}function ha(){mxShape.call(this)}function ia(){mxCylinder.call(this)}function fa(){mxCylinder.call(this)}function ba(){mxRectangleShape.call(this)}function na(){mxDoubleEllipse.call(this)}function V(){mxDoubleEllipse.call(this)}function Q(){mxArrowConnector.call(this);this.spacing=0}function oa(){mxArrowConnector.call(this);this.spacing=0}function T(){mxActor.call(this)}function ca(){mxRectangleShape.call(this)}function ja(){mxActor.call(this)}function ra(){mxActor.call(this)}
+function O(){mxActor.call(this)}function ga(){mxActor.call(this)}function ea(){mxActor.call(this)}function S(){mxActor.call(this)}function ya(){mxActor.call(this)}function P(){mxActor.call(this)}function aa(){mxActor.call(this)}function qa(){mxActor.call(this)}function sa(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}function Da(){mxRhombus.call(this)}function Ga(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
+function Ia(){mxEllipse.call(this)}function za(){mxActor.call(this)}function ua(){mxActor.call(this)}function wa(){mxActor.call(this)}function W(a,c,b,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=b;this.strokewidth=null!=d?d:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Aa(){mxConnector.call(this)}function Ta(a,c,b,d,f,e,g,k,n,p){g+=n;var x=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(x.x-
+f-g,x.y-e-g,2*g,2*g);p?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxSwimlane);a.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};a.prototype.paintVertexShape=function(a,c,b,d,f){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),a.translate(-c,-b));this.paintForeground(a,
+c,b,d,f)};a.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.state){var x=this.flipH,e=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var g=x,x=e,e=g;a.rotate(-this.getShapeRotation(),x,e,c+d/2,b+f/2);s=this.scale;c=this.bounds.x/s;b=this.bounds.y/s;d=this.bounds.width/s;f=this.bounds.height/s;this.paintTableForeground(a,c,b,d,f)}};a.prototype.paintTableForeground=function(a,c,b,d,f){var x=this.state.view.graph,e=x.getActualStartSize(this.state.cell),
+g=x.model.getChildCells(this.state.cell,!0);if(0<g.length){var la="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),va="0"!=mxUtils.getValue(this.state.style,"columnLines","1");if(la)for(la=1;la<g.length;la++){var k=x.getCellGeometry(g[la]);null!=k&&(a.begin(),a.moveTo(c+e.x,b+k.y),a.lineTo(c+d-e.width,b+k.y),a.end(),a.stroke())}if(va)for(d=x.model.getChildCells(g[0],!0),la=1;la<d.length;la++)k=x.getCellGeometry(d[la]),null!=k&&(a.begin(),a.moveTo(c+k.x+e.x,b+e.y),a.lineTo(c+k.x+e.x,b+f-e.height),
+a.end(),a.stroke())}};mxCellRenderer.registerShape("table",a);mxUtils.extend(b,mxCylinder);b.prototype.size=20;b.prototype.darkOpacity=0;b.prototype.darkOpacity2=0;b.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity)))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));
+a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-x,0);a.lineTo(d,x);a.lineTo(d,f);a.lineTo(x,f);a.lineTo(0,f-x);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(d-x,0),a.lineTo(d,x),a.lineTo(x,x),a.close(),a.fill()),0!=g&&(a.setFillAlpha(Math.abs(g)),a.setFillColor(0>g?"#FFFFFF":"#000000"),a.begin(),a.moveTo(0,0),a.lineTo(x,x),a.lineTo(x,f),a.lineTo(0,f-x),
+a.close(),a.fill()),a.begin(),a.moveTo(x,f),a.lineTo(x,x),a.lineTo(0,0),a.moveTo(x,x),a.lineTo(d,x),a.end(),a.stroke())};b.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",b);var Qa=Math.tan(mxUtils.toRadians(30)),Ha=(.5-Qa)/2;mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
+6;e.prototype.paintVertexShape=function(a,c,b,d,f){a.setFillColor(this.stroke);var x=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;a.ellipse(c+.5*(d-x),b+.5*(f-x),x,x);a.fill();a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Qa);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*Ha);
+a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-Ha)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(l,mxCylinder);l.prototype.size=20;l.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Qa));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-Ha)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-Ha)*c),a.lineTo(.5*c,(1-Ha)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*Ha),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-Ha)*c),a.lineTo(0,.75*
+c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",l);mxUtils.extend(m,mxCylinder);m.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,
+c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};m.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",m);mxUtils.extend(u,mxCylinder);u.prototype.size=30;u.prototype.darkOpacity=0;u.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),e=
+Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));a.translate(c,b);a.begin();a.moveTo(0,0);a.lineTo(d-x,0);a.lineTo(d,x);a.lineTo(d,f);a.lineTo(0,f);a.lineTo(0,0);a.close();a.end();a.fillAndStroke();this.outline||(a.setShadow(!1),0!=e&&(a.setFillAlpha(Math.abs(e)),a.setFillColor(0>e?"#FFFFFF":"#000000"),a.begin(),a.moveTo(d-x,0),a.lineTo(d-x,x),a.lineTo(d,x),a.close(),a.fill()),a.begin(),a.moveTo(d-x,0),a.lineTo(d-x,x),a.lineTo(d,x),a.end(),a.stroke())};
+mxCellRenderer.registerShape("note",u);mxUtils.extend(q,u);mxCellRenderer.registerShape("note2",q);q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,0)}return null};mxUtils.extend(c,mxShape);c.prototype.isoAngle=15;c.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*
+Math.PI/200,x=Math.min(d*Math.tan(x),.5*f);a.translate(c,b);a.begin();a.moveTo(.5*d,0);a.lineTo(d,x);a.lineTo(d,f-x);a.lineTo(.5*d,f);a.lineTo(0,f-x);a.lineTo(0,x);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,x);a.lineTo(.5*d,2*x);a.lineTo(d,x);a.moveTo(.5*d,2*x);a.lineTo(.5*d,f);a.stroke()};mxCellRenderer.registerShape("isoCube2",c);mxUtils.extend(f,mxShape);f.prototype.size=15;f.prototype.paintVertexShape=function(a,c,b,d,f){var x=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));a.translate(c,b);0==x?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),a.moveTo(0,x),a.arcTo(.5*d,x,0,0,1,.5*d,0),a.arcTo(.5*d,x,0,0,1,d,x),a.lineTo(d,f-x),a.arcTo(.5*d,x,0,0,1,.5*d,f),a.arcTo(.5*d,x,0,0,1,0,f-x),a.close(),a.fillAndStroke(),a.setShadow(!1),a.begin(),a.moveTo(d,x),a.arcTo(.5*d,x,0,0,1,.5*d,2*x),a.arcTo(.5*d,x,0,0,1,0,x),a.stroke())};mxCellRenderer.registerShape("cylinder2",f);mxUtils.extend(g,mxCylinder);g.prototype.size=15;g.prototype.paintVertexShape=function(a,
+c,b,d,f){var x=Math.max(0,Math.min(.5*f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),e=mxUtils.getValue(this.style,"lid",!0);a.translate(c,b);0==x?(a.rect(0,0,d,f),a.fillAndStroke()):(a.begin(),e?(a.moveTo(0,x),a.arcTo(.5*d,x,0,0,1,.5*d,0),a.arcTo(.5*d,x,0,0,1,d,x)):(a.moveTo(0,0),a.arcTo(.5*d,x,0,0,0,.5*d,x),a.arcTo(.5*d,x,0,0,0,d,0)),a.lineTo(d,f-x),a.arcTo(.5*d,x,0,0,1,.5*d,f),a.arcTo(.5*d,x,0,0,1,0,f-x),a.close(),a.fillAndStroke(),a.setShadow(!1),e&&(a.begin(),a.moveTo(d,x),a.arcTo(.5*
+d,x,0,0,1,.5*d,2*x),a.arcTo(.5*d,x,0,0,1,0,x),a.stroke()))};mxCellRenderer.registerShape("cylinder3",g);mxUtils.extend(k,mxActor);k.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",k);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.arcSize=.1;p.prototype.paintVertexShape=function(a,
+c,b,d,f){a.translate(c,b);c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var x=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),e=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1),k=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));g||(k*=Math.min(d,f));k=Math.min(k,.5*d,.5*(f-b));c=Math.max(c,
+k);c=Math.min(d-k,c);e||(k=0);a.begin();"left"==x?(a.moveTo(Math.max(k,0),b),a.lineTo(Math.max(k,0),0),a.lineTo(c,0),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d-Math.max(k,0),0),a.lineTo(d-Math.max(k,0),b));e?(a.moveTo(0,k+b),a.arcTo(k,k,0,0,1,k,b),a.lineTo(d-k,b),a.arcTo(k,k,0,0,1,d,k+b),a.lineTo(d,f-k),a.arcTo(k,k,0,0,1,d-k,f),a.lineTo(k,f),a.arcTo(k,k,0,0,1,0,f-k)):(a.moveTo(0,b),a.lineTo(d,b),a.lineTo(d,f),a.lineTo(0,f));a.close();a.fillAndStroke();a.setShadow(!1);"triangle"==mxUtils.getValue(this.style,
+"folderSymbol",null)&&(a.begin(),a.moveTo(d-30,b+20),a.lineTo(d-20,b+10),a.lineTo(d-10,b+20),a.close(),a.stroke())};mxCellRenderer.registerShape("folder",p);p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,
+"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),x=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(x*=Math.min(a.width,a.height));x=Math.min(x,.5*a.width,.5*(a.height-c));d||(x=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(x,0,Math.min(a.width,a.width-b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,x,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};
+mxUtils.extend(t,mxCylinder);t.prototype.arcSize=.1;t.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);var x=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1);c=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));b=mxUtils.getValue(this.style,"umlStateConnection",null);e||(c*=Math.min(d,f));c=Math.min(c,.5*d,.5*f);x||(c=0);x=0;null!=b&&(x=10);a.begin();a.moveTo(x,c);a.arcTo(c,c,0,0,1,x+c,0);a.lineTo(d-c,0);a.arcTo(c,c,0,0,1,d,
+c);a.lineTo(d,f-c);a.arcTo(c,c,0,0,1,d-c,f);a.lineTo(x+c,f);a.arcTo(c,c,0,0,1,x,f-c);a.close();a.fillAndStroke();a.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(a.roundrect(d-40,f-20,10,10,3,3),a.stroke(),a.roundrect(d-20,f-20,10,10,3,3),a.stroke(),a.begin(),a.moveTo(d-30,f-15),a.lineTo(d-20,f-15),a.stroke());"connPointRefEntry"==b?(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke()):"connPointRefExit"==b&&(a.ellipse(0,.5*f-10,20,20),a.fillAndStroke(),a.begin(),a.moveTo(5,
+.5*f-5),a.lineTo(15,.5*f+5),a.moveTo(15,.5*f-5),a.lineTo(5,.5*f+5),a.stroke())};t.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",t);mxUtils.extend(v,mxActor);v.prototype.size=30;v.prototype.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",v);mxUtils.extend(A,mxActor);A.prototype.size=.4;A.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*
d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};A.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-
2*c,d)}return a};mxCellRenderer.registerShape("tape",A);mxUtils.extend(F,mxActor);F.prototype.size=.3;F.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};F.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/
4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",F);var Ya=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Ya.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*
-this.scale,a.height*c),0,0)}return null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};k.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
-"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(v*=Math.min(a.width,a.height));v=Math.min(v,.5*a.width,.5*(a.height-c));d||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(a.width,a.width-
-b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,v,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};p.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",
-15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,Math.max(0,c*this.scale))}return null};mxUtils.extend(z,mxActor);z.prototype.size=.2;z.prototype.fixedSize=20;z.prototype.isRoundable=function(){return!0};z.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d-c,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",z);mxUtils.extend(y,mxActor);y.prototype.size=.2;y.prototype.fixedSize=20;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",
-this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("trapezoid",y);mxUtils.extend(M,mxActor);M.prototype.size=.5;M.prototype.redrawPath=function(a,c,b,d,f){a.setFillColor(null);c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(d,f)],this.isRounded,b,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",M);mxUtils.extend(L,mxActor);L.prototype.redrawPath=function(a,c,b,d,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=d/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);
-a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",L);I.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};I.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};I.prototype.quadTo=function(a,c,b,d){this.originalQuadTo.apply(this.canvas,
-arguments);this.lastX=b;this.lastY=d};I.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};I.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};I.prototype.lineTo=function(a,c){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),v=Math.sqrt(d*d+f*f);if(2>v){this.originalLineTo.apply(this.canvas,
-arguments);this.lastX=a;this.lastY=c;return}var e=Math.round(v/10),g=this.defaultVariation;5>e&&(e=5,g/=3);for(var m=b(a-this.lastX)*d/e,b=b(c-this.lastY)*f/e,d=d/v,f=f/v,v=0;v<e;v++){var k=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,m*v+this.lastX-k*f,b*v+this.lastY-k*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};I.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
+this.scale,a.height*c),0,0)}return null};g.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(c/=2);return new mxRectangle(0,Math.min(a.height*this.scale,2*c*this.scale),0,Math.max(0,.3*c*this.scale))}return null};p.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,
+"labelInHeader",!1)){var b=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,c=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,d=mxUtils.getValue(this.style,"rounded",!1),f=mxUtils.getValue(this.style,"absoluteArcSize",!1),x=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f||(x*=Math.min(a.width,a.height));x=Math.min(x,.5*a.width,.5*(a.height-c));d||(x=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(x,0,Math.min(a.width,a.width-
+b),Math.min(a.height,a.height-c)):new mxRectangle(Math.min(a.width,a.width-b),0,x,Math.min(a.height,a.height-c))}return new mxRectangle(0,Math.min(a.height,c),0,0)}return null};t.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};q.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",
+15);return new mxRectangle(0,Math.min(a.height*this.scale,c*this.scale),0,Math.max(0,c*this.scale))}return null};mxUtils.extend(y,mxActor);y.prototype.size=.2;y.prototype.fixedSize=20;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d-c,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",y);mxUtils.extend(z,mxActor);z.prototype.size=.2;z.prototype.fixedSize=20;z.prototype.isRoundable=function(){return!0};z.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",
+this.fixedSize)))):d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("trapezoid",z);mxUtils.extend(L,mxActor);L.prototype.size=.5;L.prototype.redrawPath=function(a,c,b,d,f){a.setFillColor(null);c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(d,f)],this.isRounded,b,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",L);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,b,d,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=d/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);
+a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",M);G.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};G.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};G.prototype.quadTo=function(a,c,b,d){this.originalQuadTo.apply(this.canvas,
+arguments);this.lastX=b;this.lastY=d};G.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};G.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};G.prototype.lineTo=function(a,c){if(null!=this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),x=Math.sqrt(d*d+f*f);if(2>x){this.originalLineTo.apply(this.canvas,
+arguments);this.lastX=a;this.lastY=c;return}var e=Math.round(x/10),g=this.defaultVariation;5>e&&(e=5,g/=3);for(var k=b(a-this.lastX)*d/e,b=b(c-this.lastY)*f/e,d=d/x,f=f/x,x=0;x<e;x++){var n=(Math.random()-.5)*g;this.originalLineTo.call(this.canvas,k*x+this.lastX-n*f,b*x+this.lastY-n*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};G.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;
this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var Za=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(a){Za.apply(this,arguments);null==a.handJiggle&&(a.handJiggle=this.createHandJiggle(a))};var $a=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(a){$a.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),
-delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new I(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var ab=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
-"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&ab.apply(this,arguments)};var db=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle||a.handJiggle.constructor!=I)db.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||
+delete a.handJiggle)};mxShape.prototype.createComicCanvas=function(a){return new G(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(a)};mxRhombus.prototype.defaultJiggle=2;var ab=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,
+"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&ab.apply(this,arguments)};var db=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle||a.handJiggle.constructor!=G)db.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||
null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(d/2,Math.min(f/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(d*e,f*e)),a.moveTo(c+e,b),a.lineTo(c+d-e,b),a.quadTo(c+d,b,c+d,b+e),a.lineTo(c+d,b+f-e),a.quadTo(c+d,b+f,c+d-e,
-b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};var eb=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&eb.apply(this,arguments)};mxUtils.extend(G,mxRectangleShape);G.prototype.size=.1;G.prototype.fixedSize=!1;G.prototype.isHtmlAllowed=function(){return!1};G.prototype.getLabelBounds=
+b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};var eb=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&eb.apply(this,arguments)};mxUtils.extend(J,mxRectangleShape);J.prototype.size=.1;J.prototype.fixedSize=!1;J.prototype.isHtmlAllowed=function(){return!1};J.prototype.getLabelBounds=
function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,b=a.height;a=new mxRectangle(a.x,a.y,c,b);var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(c*f,b*f));a.x+=
-Math.round(d);a.width-=Math.round(2*d)}return a};G.prototype.paintForeground=function(a,c,b,d,f){var e=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),v=parseFloat(mxUtils.getValue(this.style,"size",this.size)),v=e?Math.max(0,Math.min(d,v)):d*Math.max(0,Math.min(1,v));this.isRounded&&(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,v=Math.max(v,Math.min(d*e,f*e)));v=Math.round(v);a.begin();a.moveTo(c+v,b);a.lineTo(c+v,b+f);a.moveTo(c+
-d-v,b);a.lineTo(c+d-v,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",G);mxCellRenderer.registerShape("process2",G);mxUtils.extend(K,mxRectangleShape);K.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};K.prototype.paintForeground=function(a,c,b,d,f){};mxCellRenderer.registerShape("transparent",K);mxUtils.extend(E,mxHexagon);E.prototype.size=30;E.prototype.position=
-.5;E.prototype.position2=.5;E.prototype.base=20;E.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};E.prototype.isRoundable=function(){return!0};E.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position",this.position)))),v=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+g),f-b),new mxPoint(v,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",E);mxUtils.extend(J,mxActor);J.prototype.size=.2;J.prototype.fixedSize=
-20;J.prototype.isRoundable=function(){return!0};J.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,
-f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",J);mxUtils.extend(H,mxHexagon);H.prototype.size=.25;H.prototype.fixedSize=20;H.prototype.isRoundable=function(){return!0};H.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",H);mxUtils.extend(X,mxRectangleShape);X.prototype.isHtmlAllowed=function(){return!1};X.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();
-a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",X);var Wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Wa.apply(this,arguments);if(!this.outline&&
-1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Wa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(Q,mxRectangleShape);Q.prototype.isHtmlAllowed=function(){return!1};Q.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-
-2*c)}return a};Q.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,v;do{v=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=v){var g=this.style["symbol"+e+"Align"],m=this.style["symbol"+e+"VerticalAlign"],k=this.style["symbol"+
-e+"Width"],x=this.style["symbol"+e+"Height"],S=this.style["symbol"+e+"Spacing"]||0,wa=this.style["symbol"+e+"VSpacing"]||S,p=this.style["symbol"+e+"ArcSpacing"];null!=p&&(p*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),S+=p,wa+=p);var p=c,Ca=b,p=g==mxConstants.ALIGN_CENTER?p+(d-k)/2:g==mxConstants.ALIGN_RIGHT?p+(d-k-S):p+S,Ca=m==mxConstants.ALIGN_MIDDLE?Ca+(f-x)/2:m==mxConstants.ALIGN_BOTTOM?Ca+(f-x-wa):Ca+wa;a.save();g=new v;g.style=this.style;v.prototype.paintVertexShape.call(g,a,p,Ca,
-k,x);a.restore()}e++}while(null!=v)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",Q);mxUtils.extend(x,mxCylinder);x.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",x);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();
-a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(C,mxShape);C.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,
-f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",C);mxUtils.extend(ga,mxEllipse);ga.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",ga);mxUtils.extend(D,mxShape);D.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);
-a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",D);mxUtils.extend(U,mxShape);U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};U.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};U.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*
-d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",U);mxUtils.extend(Z,mxRectangleShape);Z.prototype.size=40;Z.prototype.isHtmlAllowed=function(){return!1};Z.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};Z.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),v=
-mxUtils.getValue(this.style,"participant");null==v||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,b,d,e):(v=this.state.view.graph.cellRenderer.getShape(v),null!=v&&v!=Z&&(v=new v,v.apply(this.state),a.save(),v.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};Z.prototype.paintForeground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,
-parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",Z);mxUtils.extend(Y,mxShape);Y.prototype.width=60;Y.prototype.height=30;Y.prototype.corner=10;Y.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};
-Y.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,v=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(f,Math.max(1.5*e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),m=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);m!=mxConstants.NONE&&(a.setFillColor(m),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,
-c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+v,b);a.lineTo(c+v,b+Math.max(0,g-1.5*e));a.lineTo(c+Math.max(0,v-e),b+g);a.lineTo(c,b+g);a.close();a.fillAndStroke();a.begin();a.moveTo(c+v,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",Y);mxPerimeter.CenterPerimeter=function(a,c,b,d){return new mxPoint(a.getCenterX(),a.getCenterY())};
-mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=Z.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,
-c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+
-d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",E.prototype.size))*c.view.scale))),c.style),c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",
-mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?z.prototype.fixedSize:z.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var v=a.x,g=a.y,m=a.width,k=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,
-Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(v+m,g+f),new mxPoint(v+m,g+k),new mxPoint(v,g+k-f),new mxPoint(v,g)]):(f=f?Math.max(0,Math.min(.5*m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v+f,g),new mxPoint(v+m,g),new mxPoint(v+m-f,g+k),new mxPoint(v,g+k),new mxPoint(v+f,g)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(b.x<v||b.x>v+m?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=
-function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?y.prototype.fixedSize:y.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var v=a.x,g=a.y,m=a.width,k=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(.5*m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v+f,g),new mxPoint(v+m-f,g),new mxPoint(v+m,g+k),new mxPoint(v,
-g+k),new mxPoint(v+f,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(v+m,g),new mxPoint(v+m-f,g+k),new mxPoint(v+f,g+k),new mxPoint(v,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g+f),new mxPoint(v+m,g),new mxPoint(v+m,g+k),new mxPoint(v,g+k-f),new mxPoint(v,g+f)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(v+
-m,g+f),new mxPoint(v+m,g+k-f),new mxPoint(v,g+k),new mxPoint(v,g)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(b.x<v||b.x>v+m?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?J.prototype.fixedSize:J.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var v=a.x,g=a.y,
-m=a.width,k=a.height,x=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(v+m-f,g),new mxPoint(v+m,a),new mxPoint(v+m-f,g+k),new mxPoint(v,g+k),new mxPoint(v+f,a),new mxPoint(v,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v+
-f,g),new mxPoint(v+m,g),new mxPoint(v+m-f,a),new mxPoint(v+m,g+k),new mxPoint(v+f,g+k),new mxPoint(v,a),new mxPoint(v+f,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g+f),new mxPoint(x,g),new mxPoint(v+m,g+f),new mxPoint(v+m,g+k),new mxPoint(x,g+k-f),new mxPoint(v,g+k),new mxPoint(v,g+f)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(v,g),new mxPoint(x,g+f),new mxPoint(v+m,g),new mxPoint(v+m,g+k-f),new mxPoint(x,
-g+k),new mxPoint(v,g+k-f),new mxPoint(v,g)]);x=new mxPoint(x,a);d&&(b.x<v||b.x>v+m?x.y=b.y:x.x=b.x);return mxUtils.getPerimeterPoint(g,x,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?H.prototype.fixedSize:H.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var v=a.x,g=a.y,m=a.width,k=a.height,x=a.getCenterX();a=a.getCenterY();c=null!=
-c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(v+m,g+f),new mxPoint(v+m,g+k-f),new mxPoint(x,g+k),new mxPoint(v,g+k-f),new mxPoint(v,g+f),new mxPoint(x,g)]):(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),g=[new mxPoint(v+f,g),new mxPoint(v+m-f,g),new mxPoint(v+m,a),new mxPoint(v+
-m-f,g+k),new mxPoint(v+f,g+k),new mxPoint(v,a),new mxPoint(v+f,g)]);x=new mxPoint(x,a);d&&(b.x<v||b.x>v+m?x.y=b.y:x.x=b.x);return mxUtils.getPerimeterPoint(g,x,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ma,mxShape);ma.prototype.size=10;ma.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);
-a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",ma);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.inset=2;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+v);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-v,e/2);a.quadTo((d-e)/2-v,e+v,d/2,e+v);a.quadTo((d+e)/2+v,e+v,(d+e)/2+
-v,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",pa);mxUtils.extend(aa,mxShape);aa.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",aa);mxUtils.extend(ja,mxShape);ja.prototype.inset=2;ja.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,
-e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ja);mxUtils.extend(ka,mxCylinder);ka.prototype.jettyWidth=20;ka.prototype.jettyHeight=10;ka.prototype.redrawPath=function(a,c,b,d,f,e){var v=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=v/2;var v=b+v/2,g=Math.min(c,f-c),m=Math.min(g+
-2*c,f-c);e?(a.moveTo(b,g),a.lineTo(v,g),a.lineTo(v,g+c),a.lineTo(b,g+c),a.moveTo(b,m),a.lineTo(v,m),a.lineTo(v,m+c),a.lineTo(b,m+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,m+c),a.lineTo(0,m+c),a.lineTo(0,m),a.lineTo(b,m),a.lineTo(b,g+c),a.lineTo(0,g+c),a.lineTo(0,g),a.lineTo(b,g),a.close());a.end()};mxCellRenderer.registerShape("module",ka);mxUtils.extend(ha,mxCylinder);ha.prototype.jettyWidth=32;ha.prototype.jettyHeight=12;ha.prototype.redrawPath=function(a,c,b,d,f,e){var g=
-parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,v=.3*f-c/2,m=.7*f-c/2;e?(a.moveTo(b,v),a.lineTo(g,v),a.lineTo(g,v+c),a.lineTo(b,v+c),a.moveTo(b,m),a.lineTo(g,m),a.lineTo(g,m+c),a.lineTo(b,m+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,m+c),a.lineTo(0,m+c),a.lineTo(0,m),a.lineTo(b,m),a.lineTo(b,v+c),a.lineTo(0,v+c),a.lineTo(0,v),a.lineTo(b,v),a.close());a.end()};
-mxCellRenderer.registerShape("component",ha);mxUtils.extend(ca,mxRectangleShape);ca.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,v=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,v,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",ca);mxUtils.extend(na,
-mxDoubleEllipse);na.prototype.outerStroke=!0;na.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",na);mxUtils.extend(V,na);V.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",V);mxUtils.extend(P,mxArrowConnector);P.prototype.defaultWidth=4;P.prototype.isOpenEnded=function(){return!0};
-P.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};P.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",P);mxUtils.extend(oa,mxArrowConnector);oa.prototype.defaultWidth=10;oa.prototype.defaultArrowWidth=20;oa.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};oa.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+
-mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};oa.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",oa);mxUtils.extend(T,mxActor);T.prototype.size=30;T.prototype.isRoundable=function(){return!0};T.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",T);mxUtils.extend(da,mxRectangleShape);da.prototype.dx=20;da.prototype.dy=20;da.prototype.isHtmlAllowed=function(){return!1};da.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",da);mxUtils.extend(la,mxActor);la.prototype.dx=20;la.prototype.dy=20;la.prototype.redrawPath=
-function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("corner",
-la);mxUtils.extend(ra,mxActor);ra.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",ra);mxUtils.extend(O,mxActor);O.prototype.dx=20;O.prototype.dy=20;O.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,
-"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",O);mxUtils.extend(ia,mxActor);ia.prototype.arrowWidth=.3;ia.prototype.arrowSize=.2;ia.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,
-parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",ia);mxUtils.extend(fa,
-mxActor);fa.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ia.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ia.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-
-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",fa);mxUtils.extend(R,mxActor);R.prototype.size=.1;R.prototype.fixedSize=20;R.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);
-a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",R);mxUtils.extend(ya,mxActor);ya.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ya);mxUtils.extend(N,mxActor);N.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
-N);mxUtils.extend(ba,mxActor);ba.prototype.size=20;ba.prototype.isRoundable=function(){return!0};ba.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
-ba);mxUtils.extend(qa,mxActor);qa.prototype.size=.375;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
+Math.round(d);a.width-=Math.round(2*d)}return a};J.prototype.paintForeground=function(a,c,b,d,f){var e=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),x=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=e?Math.max(0,Math.min(d,x)):d*Math.max(0,Math.min(1,x));this.isRounded&&(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,x=Math.max(x,Math.min(d*e,f*e)));x=Math.round(x);a.begin();a.moveTo(c+x,b);a.lineTo(c+x,b+f);a.moveTo(c+
+d-x,b);a.lineTo(c+d-x,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",J);mxUtils.extend(H,mxRectangleShape);H.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};H.prototype.paintForeground=function(a,c,b,d,f){};mxCellRenderer.registerShape("transparent",H);mxUtils.extend(D,mxHexagon);D.prototype.size=30;D.prototype.position=
+.5;D.prototype.position2=.5;D.prototype.base=20;D.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"position",this.position)))),x=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+g),f-b),new mxPoint(x,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",D);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=
+20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,
+f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",K);mxUtils.extend(I,mxHexagon);I.prototype.size=.25;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",I);mxUtils.extend(R,mxRectangleShape);R.prototype.isHtmlAllowed=function(){return!1};R.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();
+a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",R);var Wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Wa.apply(this,arguments);if(!this.outline&&
+1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Wa.apply(this,[a,c,b,d,f]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-
+2*c)}return a};N.prototype.paintForeground=function(a,c,b,d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,x;do{x=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=x){var g=this.style["symbol"+e+"Align"],k=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+
+e+"Width"],p=this.style["symbol"+e+"Height"],la=this.style["symbol"+e+"Spacing"]||0,va=this.style["symbol"+e+"VSpacing"]||la,t=this.style["symbol"+e+"ArcSpacing"];null!=t&&(t*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),la+=t,va+=t);var t=c,Ca=b,t=g==mxConstants.ALIGN_CENTER?t+(d-n)/2:g==mxConstants.ALIGN_RIGHT?t+(d-n-la):t+la,Ca=k==mxConstants.ALIGN_MIDDLE?Ca+(f-p)/2:k==mxConstants.ALIGN_BOTTOM?Ca+(f-p-va):Ca+va;a.save();g=new x;g.style=this.style;x.prototype.paintVertexShape.call(g,a,
+t,Ca,n,p);a.restore()}e++}while(null!=x)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",N);mxUtils.extend(n,mxCylinder);n.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",n);mxUtils.extend(B,mxShape);B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/
+4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",B);mxUtils.extend(C,mxShape);C.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};C.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();
+a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",C);mxUtils.extend(ka,mxEllipse);ka.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",ka);mxUtils.extend(E,mxShape);E.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();
+a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",E);mxUtils.extend(U,mxShape);U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};U.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};U.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/
+8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",U);mxUtils.extend(Y,mxRectangleShape);Y.prototype.size=40;Y.prototype.isHtmlAllowed=function(){return!1};Y.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};Y.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))),x=mxUtils.getValue(this.style,"participant");null==x||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,c,b,d,e):(x=this.state.view.graph.cellRenderer.getShape(x),null!=x&&x!=Y&&(x=new x,x.apply(this.state),a.save(),x.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};Y.prototype.paintForeground=function(a,c,b,d,f){var e=
+Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",Y);mxUtils.extend(X,mxShape);X.prototype.width=60;X.prototype.height=30;X.prototype.corner=10;X.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*
+this.scale))};X.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,x=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),g=Math.min(f,Math.max(1.5*e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(a.setFillColor(k),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?
+(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+x,b);a.lineTo(c+x,b+Math.max(0,g-1.5*e));a.lineTo(c+Math.max(0,x-e),b+g);a.lineTo(c,b+g);a.close();a.fillAndStroke();a.begin();a.moveTo(c+x,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+g);a.stroke()};mxCellRenderer.registerShape("umlFrame",X);mxPerimeter.CenterPerimeter=function(a,c,b,d){return new mxPoint(a.getCenterX(),
+a.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=Y.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=
+function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),
+new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",D.prototype.size))*c.view.scale))),c.style),
+c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?y.prototype.fixedSize:y.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?
+(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]):(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",
+mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?z.prototype.fixedSize:z.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(.5*k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+
+f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):
+n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);d&&(b.x<x||b.x>x+k?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(g,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?K.prototype.fixedSize:K.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,
+"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x,g+n),new mxPoint(x+f,a),new mxPoint(x,g)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(k,
+e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+f,g),new mxPoint(x+k,g),new mxPoint(x+k-f,a),new mxPoint(x+k,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g+f),new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n),new mxPoint(p,g+n-f),new mxPoint(x,g+n),new mxPoint(x,g+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(x,g),new mxPoint(p,g+
+f),new mxPoint(x+k,g),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?I.prototype.fixedSize:I.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));f&&(e*=c.view.scale);var x=a.x,g=a.y,k=a.width,
+n=a.height,p=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),g=[new mxPoint(p,g),new mxPoint(x+k,g+f),new mxPoint(x+k,g+n-f),new mxPoint(p,g+n),new mxPoint(x,g+n-f),new mxPoint(x,g+f),new mxPoint(p,g)]):(f=f?Math.max(0,Math.min(k,e)):k*Math.max(0,Math.min(1,e)),g=[new mxPoint(x+
+f,g),new mxPoint(x+k-f,g),new mxPoint(x+k,a),new mxPoint(x+k-f,g+n),new mxPoint(x+f,g+n),new mxPoint(x,a),new mxPoint(x+f,g)]);p=new mxPoint(p,a);d&&(b.x<x||b.x>x+k?p.y=b.y:p.x=b.x);return mxUtils.getPerimeterPoint(g,p,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ma,mxShape);ma.prototype.size=10;ma.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);
+a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",ma);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.inset=2;pa.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.begin();a.moveTo(d/2,e+x);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-x,e/2);a.quadTo((d-
+e)/2-x,e+x,d/2,e+x);a.quadTo((d+e)/2+x,e+x,(d+e)/2+x,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",pa);mxUtils.extend(Z,mxShape);Z.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",Z);mxUtils.extend(ha,mxShape);ha.prototype.inset=2;ha.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+
+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ha);mxUtils.extend(ia,mxCylinder);ia.prototype.jettyWidth=20;ia.prototype.jettyHeight=10;ia.prototype.redrawPath=function(a,c,b,d,f,e){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));
+b=x/2;var x=b+x/2,g=Math.min(c,f-c),k=Math.min(g+2*c,f-c);e?(a.moveTo(b,g),a.lineTo(x,g),a.lineTo(x,g+c),a.lineTo(b,g+c),a.moveTo(b,k),a.lineTo(x,k),a.lineTo(x,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,g+c),a.lineTo(0,g+c),a.lineTo(0,g),a.lineTo(b,g),a.close());a.end()};mxCellRenderer.registerShape("module",ia);mxUtils.extend(fa,mxCylinder);fa.prototype.jettyWidth=32;fa.prototype.jettyHeight=
+12;fa.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,x=.3*f-c/2,k=.7*f-c/2;e?(a.moveTo(b,x),a.lineTo(g,x),a.lineTo(g,x+c),a.lineTo(b,x+c),a.moveTo(b,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(b,k+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(b,k),a.lineTo(b,x+c),a.lineTo(0,
+x+c),a.lineTo(0,x),a.lineTo(b,x),a.close());a.end()};mxCellRenderer.registerShape("component",fa);mxUtils.extend(ba,mxRectangleShape);ba.prototype.paintForeground=function(a,c,b,d,f){var e=d/2,g=f/2,x=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(c+e,b),new mxPoint(c+d,b+g),new mxPoint(c+e,b+f),new mxPoint(c,b+g)],this.isRounded,x,!0);a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",
+ba);mxUtils.extend(na,mxDoubleEllipse);na.prototype.outerStroke=!0;na.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",na);mxUtils.extend(V,na);V.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",V);mxUtils.extend(Q,mxArrowConnector);Q.prototype.defaultWidth=4;Q.prototype.isOpenEnded=
+function(){return!0};Q.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Q.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Q);mxUtils.extend(oa,mxArrowConnector);oa.prototype.defaultWidth=10;oa.prototype.defaultArrowWidth=20;oa.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};oa.prototype.getEndArrowWidth=
+function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};oa.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",oa);mxUtils.extend(T,mxActor);T.prototype.size=30;T.prototype.isRoundable=function(){return!0};T.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",T);mxUtils.extend(ca,mxRectangleShape);ca.prototype.dx=20;ca.prototype.dy=20;ca.prototype.isHtmlAllowed=function(){return!1};ca.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ca);mxUtils.extend(ja,mxActor);ja.prototype.dx=20;ja.prototype.dy=
+20;ja.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};
+mxCellRenderer.registerShape("corner",ja);mxUtils.extend(ra,mxActor);ra.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",ra);mxUtils.extend(O,mxActor);O.prototype.dx=20;O.prototype.dy=20;O.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",O);mxUtils.extend(ga,mxActor);ga.prototype.arrowWidth=.3;ga.prototype.arrowSize=.2;ga.prototype.redrawPath=
+function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
+ga);mxUtils.extend(ea,mxActor);ea.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),
+new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ea);mxUtils.extend(S,mxActor);S.prototype.size=.1;S.prototype.fixedSize=20;S.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
+a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",S);mxUtils.extend(ya,mxActor);ya.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",ya);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",
+P);mxUtils.extend(aa,mxActor);aa.prototype.size=20;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",
+aa);mxUtils.extend(qa,mxActor);qa.prototype.size=.375;qa.prototype.isRoundable=function(){return!0};qa.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",
qa);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",sa);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);
a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",ta);mxUtils.extend(Fa,mxEllipse);Fa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",Fa);mxUtils.extend(Da,mxRhombus);Da.prototype.paintVertexShape=
function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",Da);mxUtils.extend(Ga,mxEllipse);Ga.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",
@@ -2753,166 +2754,166 @@ Ga);mxUtils.extend(Ja,mxEllipse);Ja.prototype.paintVertexShape=function(a,c,b,d,
if(null!=this.style){var e=a.pointerEvents;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1);a.rect(c,b,d,f);a.fill();a.pointerEvents=e;a.setStrokeColor(this.stroke);a.begin();a.moveTo(c,b);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f);this.outline||"1"==mxUtils.getValue(this.style,
"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(c,b);a.end();a.stroke()}};mxCellRenderer.registerShape("partialRectangle",xa);mxUtils.extend(Ia,mxEllipse);Ia.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};
mxCellRenderer.registerShape("lineEllipse",Ia);mxUtils.extend(za,mxActor);za.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",za);mxUtils.extend(ua,mxActor);ua.prototype.size=.2;ua.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-
-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ua);mxUtils.extend(va,mxActor);va.prototype.size=.25;va.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/
-2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",va);mxUtils.extend(W,mxActor);W.prototype.cst={RECT2:"mxgraph.basic.rect"};W.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
+e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ua);mxUtils.extend(wa,mxActor);wa.prototype.size=.25;wa.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/
+2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",wa);mxUtils.extend(W,mxActor);W.prototype.cst={RECT2:"mxgraph.basic.rect"};W.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",
dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",
type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
-dispName:"Fold"}]}];W.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);this.strictDrawShape(a,0,0,d,f)};W.prototype.strictDrawShape=function(a,c,b,d,f,e){var g=e&&e.rectStyle?e.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),m=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),k=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),x=e&&e.rectOutline?e.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),v=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),p=e&&e.dashed?e.dashed:mxUtils.getValue(this.style,"dashed",!1),u=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),n=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,v)),l=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),q=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),B=e&&e.bottom?e.bottom:
-mxUtils.getValue(this.style,"bottom",!0),C=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),z=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),y=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),D=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),t=e&&e.fillColor?e.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var S=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),ga=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),wa=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),F=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),H=e&&e.opacity?e.opacity:
-mxUtils.getValue(this.style,"opacity","100"),E=Math.max(0,Math.min(50,k));e=W.prototype;a.setDashed(p);u&&""!=u&&a.setDashPattern(u);a.setStrokeWidth(S);k=Math.min(.5*f,.5*d,k);m||(k=E*Math.min(d,f)/100);k=Math.min(k,.5*Math.min(d,f));m||(v=Math.min(n*Math.min(d,f)/100));v=Math.min(v,.5*Math.min(d,f)-k);(l||q||B||C)&&"frame"!=x&&(a.begin(),l?e.moveNW(a,c,b,d,f,g,z,k,C):a.moveTo(0,0),l&&e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),q&&e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,
-f,g,D,k,B),B&&e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),C&&e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(ga),p=m=H,"none"==ga&&(m=0),"none"==wa&&(p=0),a.setGradient(ga,wa,0,0,d,f,F,m,p),a.begin(),l?e.moveNWInner(a,c,b,d,f,g,z,k,v,l,C):a.moveTo(v,0),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),C&&B&&e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),B&&q&&e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,
-c,b,d,f,g,y,k,v,l,q),q&&l&&e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),l&&C&&e.paintNWInner(a,c,b,d,f,g,z,k,v),a.fill(),"none"==t&&(a.begin(),e.paintFolds(a,c,b,d,f,g,z,y,D,A,k,l,q,B,C),a.stroke()));l||q||B||!C?l||q||!B||C?!l&&!q&&B&&C?"frame"!=x?(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),"double"==x&&(e.moveNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,
-c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.lineNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),a.close(),a.fillAndStroke()):l||!q||B||C?!l&&q&&!B&&C?"frame"!=x?(a.begin(),e.moveSW(a,c,b,d,f,g,z,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),"double"==
-x&&(e.moveNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),"double"==x&&(e.moveSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,z,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.lineNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,
-g,D,k,B),e.lineSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),a.close(),a.fillAndStroke()):!l&&q&&B&&!C?"frame"!=x?(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),"double"==x&&(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,
-c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.lineSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),a.close(),a.fillAndStroke()):!l&&q&&B&&C?"frame"!=x?(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),"double"==x&&(e.moveNWInner(a,
-c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.lineNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,
-c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),a.close(),a.fillAndStroke()):!l||q||B||C?l&&!q&&!B&&C?"frame"!=x?(a.begin(),e.moveSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),"double"==x&&(e.moveNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C)),a.stroke()):
-(a.begin(),e.moveSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.lineNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke()):l&&!q&&B&&!C?"frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),"double"==x&&(e.moveNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l)),a.stroke(),a.begin(),
-e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),"double"==x&&(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.lineNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),a.close(),a.fillAndStroke(),a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.lineSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),a.close(),a.fillAndStroke()):
-l&&!q&&B&&C?"frame"!=x?(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),"double"==x&&(e.moveNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,D,
-k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.lineNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),a.close(),a.fillAndStroke()):l&&q&&!B&&!C?"frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,
-q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),"double"==x&&(e.moveSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.lineSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,
-d,f,g,z,k,v,C,l),a.close(),a.fillAndStroke()):l&&q&&!B&&C?"frame"!=x?(a.begin(),e.moveSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),"double"==x&&(e.moveSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C)),a.stroke()):
-(a.begin(),e.moveSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.lineSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke()):l&&q&&B&&!C?"frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,
-C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),"double"==x&&(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,
-k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.lineSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),a.close(),a.fillAndStroke()):l&&q&&B&&C&&("frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,
-l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),a.close(),"double"==x&&(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,
-f,g,A,k,v,B,C),a.close()),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.paintNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.paintSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.paintSW(a,c,b,d,f,g,A,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),a.close(),e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintSWInner(a,c,b,d,f,g,A,k,v,B),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),e.paintSEInner(a,c,b,d,f,g,D,k,v),e.paintRightInner(a,c,b,d,
-f,g,y,k,v,l,q),e.paintNEInner(a,c,b,d,f,g,y,k,v),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l),e.paintNWInner(a,c,b,d,f,g,z,k,v),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke())):"frame"!=x?(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),"double"==x&&(e.moveNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,f,g,z,k,v,C,l)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,z,k,C),e.paintTop(a,c,b,d,f,g,y,k,q),e.lineNEInner(a,c,b,d,f,g,y,k,v,q),e.paintTopInner(a,c,b,d,
-f,g,z,k,v,C,l),a.close(),a.fillAndStroke()):"frame"!=x?(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),"double"==x&&(e.moveSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,y,k,l),e.paintRight(a,c,b,d,f,g,D,k,B),e.lineSEInner(a,c,b,d,f,g,D,k,v,B),e.paintRightInner(a,c,b,d,f,g,y,k,v,l,q),a.close(),a.fillAndStroke()):"frame"!=x?(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),"double"==x&&
-(e.moveSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,D,k,q),e.paintBottom(a,c,b,d,f,g,A,k,C),e.lineSWInner(a,c,b,d,f,g,A,k,v,C),e.paintBottomInner(a,c,b,d,f,g,D,k,v,q,B),a.close(),a.fillAndStroke()):"frame"!=x?(a.begin(),e.moveSW(a,c,b,d,f,g,z,k,B),e.paintLeft(a,c,b,d,f,g,z,k,l),"double"==x&&(e.moveNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,z,k,B),e.paintLeft(a,
-c,b,d,f,g,z,k,l),e.lineNWInner(a,c,b,d,f,g,z,k,v,l,C),e.paintLeftInner(a,c,b,d,f,g,A,k,v,B,C),a.close(),a.fillAndStroke());a.begin();e.paintFolds(a,c,b,d,f,g,z,y,D,A,k,l,q,B,C);a.stroke()};W.prototype.moveNW=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.moveTo(0,0):a.moveTo(0,k)};W.prototype.moveNE=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.moveTo(d,0):a.moveTo(d-k,0)};W.prototype.moveSE=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&
-"square"==e||!m?a.moveTo(d,f):a.moveTo(d,f-k)};W.prototype.moveSW=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.moveTo(0,f):a.moveTo(k,f)};W.prototype.paintNW=function(a,c,b,d,f,e,g,k,m){if(m)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(k,k,0,0,c,k,0)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,0);else a.lineTo(0,0)};W.prototype.paintTop=
-function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.lineTo(d,0):a.lineTo(d-k,0)};W.prototype.paintNE=function(a,c,b,d,f,e,g,k,m){if(m)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(k,k,0,0,c,d,k)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d,k);else a.lineTo(d,0)};W.prototype.paintRight=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==
-g&&"square"==e||!m?a.lineTo(d,f):a.lineTo(d,f-k)};W.prototype.paintLeft=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.lineTo(0,0):a.lineTo(0,k)};W.prototype.paintSE=function(a,c,b,d,f,e,g,k,m){if(m)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(k,k,0,0,c,d-k,f)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,f);else a.lineTo(d,
-f)};W.prototype.paintBottom=function(a,c,b,d,f,e,g,k,m){"square"==g||"default"==g&&"square"==e||!m?a.lineTo(0,f):a.lineTo(k,f)};W.prototype.paintSW=function(a,c,b,d,f,e,g,k,m){if(m)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(k,k,0,0,c,0,f-k)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(0,f-k);else a.lineTo(0,f)};W.prototype.paintNWInner=function(a,c,b,
-d,f,e,g,k,m){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(k-.5*m,k-.5*m,0,0,0,m,.5*m+k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(k+m,k+m,0,0,1,m,m+k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(m,.5*m+k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(m+k,m+k),a.lineTo(m,m+k)};W.prototype.paintTopInner=function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(0,m):x&&!p?a.lineTo(m,0):x?"square"==g||"default"==g&&"square"==e?a.lineTo(m,m):"rounded"==g||"default"==g&&
-"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k+.5*m,m):a.lineTo(k+m,m):a.lineTo(0,m):a.lineTo(0,0)};W.prototype.paintNEInner=function(a,c,b,d,f,e,g,k,m){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(k-.5*m,k-.5*m,0,0,0,d-k-.5*m,m);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(k+m,k+m,0,0,1,d-k-m,m);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-k-.5*m,m);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-k-m,k+m),a.lineTo(d-k-m,m)};W.prototype.paintRightInner=
-function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(d-m,0):x&&!p?a.lineTo(d,m):x?"square"==g||"default"==g&&"square"==e?a.lineTo(d-m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-m,k+.5*m):a.lineTo(d-m,k+m):a.lineTo(d-m,0):a.lineTo(d,0)};W.prototype.paintLeftInner=function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(m,f):x&&!p?a.lineTo(0,f-m):x?"square"==g||"default"==g&&"square"==e?a.lineTo(m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
-g&&"snip"==e?a.lineTo(m,f-k-.5*m):a.lineTo(m,f-k-m):a.lineTo(m,f):a.lineTo(0,f)};W.prototype.paintSEInner=function(a,c,b,d,f,e,g,k,m){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(k-.5*m,k-.5*m,0,0,0,d-m,f-k-.5*m);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(k+m,k+m,0,0,1,d-m,f-k-m);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-m,f-k-.5*m);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-k-m,f-k-m),a.lineTo(d-m,f-k-m)};W.prototype.paintBottomInner=function(a,c,b,d,
-f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(d,f-m):x&&!p?a.lineTo(d-m,f):"square"==g||"default"==g&&"square"==e||!x?a.lineTo(d-m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k-.5*m,f-m):a.lineTo(d-k-m,f-m):a.lineTo(d,f)};W.prototype.paintSWInner=function(a,c,b,d,f,e,g,k,m,x){if(!x)a.lineTo(m,f);else if("square"==g||"default"==g&&"square"==e)a.lineTo(m,f-m);else if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(k-.5*m,k-.5*m,0,0,0,k+.5*m,f-m);else if("invRound"==
-g||"default"==g&&"invRound"==e)a.arcTo(k+m,k+m,0,0,1,k+m,f-m);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(k+.5*m,f-m);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(m+k,f-k-m),a.lineTo(m+k,f-m)};W.prototype.moveSWInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e?a.moveTo(m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(m,f-k-.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(m,
-f-k-m):a.moveTo(0,f-m)};W.prototype.lineSWInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e?a.lineTo(m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(m,f-k-.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(m,f-k-m):a.lineTo(0,f-m)};W.prototype.moveSEInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e?a.moveTo(d-m,f-m):"rounded"==g||"default"==g&&"rounded"==
-e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-m,f-k-.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-m,f-k-m):a.moveTo(d-m,f)};W.prototype.lineSEInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e?a.lineTo(d-m,f-m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-m,f-k-.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-m,f-k-m):a.lineTo(d-
-m,f)};W.prototype.moveNEInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e||x?a.moveTo(d-m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-m,k+.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-m,k+m):a.moveTo(d,m)};W.prototype.lineNEInner=function(a,c,b,d,f,e,g,k,m,x){x?"square"==g||"default"==g&&"square"==e||x?a.lineTo(d-m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
-g&&"snip"==e?a.lineTo(d-m,k+.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-m,k+m):a.lineTo(d,m)};W.prototype.moveNWInner=function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.moveTo(m,0):x&&!p?a.moveTo(0,m):"square"==g||"default"==g&&"square"==e?a.moveTo(m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(m,k+.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(m,k+m):a.moveTo(0,
-0)};W.prototype.lineNWInner=function(a,c,b,d,f,e,g,k,m,x,p){x||p?!x&&p?a.lineTo(m,0):x&&!p?a.lineTo(0,m):"square"==g||"default"==g&&"square"==e?a.lineTo(m,m):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(m,k+.5*m):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(m,k+m):a.lineTo(0,0)};W.prototype.paintFolds=function(a,c,b,d,f,e,g,k,m,x,p,u,l,q,B){if("fold"==e||"fold"==g||"fold"==k||"fold"==m||"fold"==x)("fold"==g||"default"==
-g&&"fold"==e)&&u&&B&&(a.moveTo(0,p),a.lineTo(p,p),a.lineTo(p,0)),("fold"==k||"default"==k&&"fold"==e)&&u&&l&&(a.moveTo(d-p,0),a.lineTo(d-p,p),a.lineTo(d,p)),("fold"==m||"default"==m&&"fold"==e)&&q&&l&&(a.moveTo(d-p,f),a.lineTo(d-p,f-p),a.lineTo(d,f-p)),("fold"==x||"default"==x&&"fold"==e)&&q&&B&&(a.moveTo(0,f-p),a.lineTo(p,f-p),a.lineTo(p,f))};mxCellRenderer.registerShape(W.prototype.cst.RECT2,W);W.prototype.constraints=null;mxUtils.extend(Aa,mxConnector);Aa.prototype.origPaintEdgeShape=Aa.prototype.paintEdgeShape;
+dispName:"Fold"}]}];W.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);this.strictDrawShape(a,0,0,d,f)};W.prototype.strictDrawShape=function(a,c,b,d,f,e){var g=e&&e.rectStyle?e.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=e&&e.absoluteCornerSize?e.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),n=e&&e.size?e.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),p=e&&e.rectOutline?e.rectOutline:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),x=e&&e.indent?e.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),t=e&&e.dashed?e.dashed:mxUtils.getValue(this.style,"dashed",!1),v=e&&e.dashPattern?e.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),l=e&&e.relIndent?e.relIndent:Math.max(0,Math.min(50,x)),m=e&&e.top?e.top:mxUtils.getValue(this.style,"top",!0),q=e&&e.right?e.right:mxUtils.getValue(this.style,"right",!0),B=e&&e.bottom?e.bottom:
+mxUtils.getValue(this.style,"bottom",!0),C=e&&e.left?e.left:mxUtils.getValue(this.style,"left",!0),y=e&&e.topLeftStyle?e.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),z=e&&e.topRightStyle?e.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),E=e&&e.bottomRightStyle?e.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),A=e&&e.bottomLeftStyle?e.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),u=e&&e.fillColor?e.fillColor:
+mxUtils.getValue(this.style,"fillColor","#ffffff");e&&e.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var ka=e&&e.strokeWidth?e.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),va=e&&e.fillColor2?e.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),I=e&&e.gradientColor2?e.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),F=e&&e.gradientDirection2?e.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),la=e&&e.opacity?
+e.opacity:mxUtils.getValue(this.style,"opacity","100"),D=Math.max(0,Math.min(50,n));e=W.prototype;a.setDashed(t);v&&""!=v&&a.setDashPattern(v);a.setStrokeWidth(ka);n=Math.min(.5*f,.5*d,n);k||(n=D*Math.min(d,f)/100);n=Math.min(n,.5*Math.min(d,f));k||(x=Math.min(l*Math.min(d,f)/100));x=Math.min(x,.5*Math.min(d,f)-n);(m||q||B||C)&&"frame"!=p&&(a.begin(),m?e.moveNW(a,c,b,d,f,g,y,n,C):a.moveTo(0,0),m&&e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),q&&e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,
+c,b,d,f,g,E,n,B),B&&e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),C&&e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(va),t=k=la,"none"==va&&(k=0),"none"==I&&(t=0),a.setGradient(va,I,0,0,d,f,F,k,t),a.begin(),m?e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C):a.moveTo(x,0),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),C&&B&&e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),B&&q&&e.paintSEInner(a,c,b,d,f,g,E,n,x),
+e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),q&&m&&e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),m&&C&&e.paintNWInner(a,c,b,d,f,g,y,n,x),a.fill(),"none"==u&&(a.begin(),e.paintFolds(a,c,b,d,f,g,y,z,E,A,n,m,q,B,C),a.stroke()));m||q||B||!C?m||q||!B||C?!m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,
+d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m||!q||B||C?!m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,
+c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke(),a.begin(),e.moveNE(a,c,b,d,f,g,z,
+n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&!C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,
+b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m&&q&&B&&C?"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,
+n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,
+c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):!m||q||B||C?m&&!q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
+c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&!q&&B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,
+b,d,f,g,y,n,x,C,m)),a.stroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke(),a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,
+c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&!q&&B&&C?"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,
+B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):m&&q&&!B&&!C?"frame"!=p?(a.begin(),e.moveNW(a,
+c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,
+c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&!B&&C?"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
+c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke()):m&&q&&B&&!C?"frame"!=p?(a.begin(),
+e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),
+e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):m&&q&&B&&C&&("frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,
+c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),"double"==p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,
+c,b,d,f,g,A,n,x,B,C),a.close()),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.paintNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.paintSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.paintSW(a,c,b,d,f,g,A,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),a.close(),e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintSWInner(a,c,b,d,f,g,A,n,x,B),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),e.paintSEInner(a,c,b,d,f,g,E,n,x),e.paintRightInner(a,
+c,b,d,f,g,z,n,x,m,q),e.paintNEInner(a,c,b,d,f,g,z,n,x),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m),e.paintNWInner(a,c,b,d,f,g,y,n,x),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke())):"frame"!=p?(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),"double"==p&&(e.moveNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,c,b,d,f,g,y,n,x,C,m)),a.stroke()):(a.begin(),e.moveNW(a,c,b,d,f,g,y,n,C),e.paintTop(a,c,b,d,f,g,z,n,q),e.lineNEInner(a,c,b,d,f,g,z,n,x,q),e.paintTopInner(a,
+c,b,d,f,g,y,n,x,C,m),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),"double"==p&&(e.moveSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q)),a.stroke()):(a.begin(),e.moveNE(a,c,b,d,f,g,z,n,m),e.paintRight(a,c,b,d,f,g,E,n,B),e.lineSEInner(a,c,b,d,f,g,E,n,x,B),e.paintRightInner(a,c,b,d,f,g,z,n,x,m,q),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),"double"==
+p&&(e.moveSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B)),a.stroke()):(a.begin(),e.moveSE(a,c,b,d,f,g,E,n,q),e.paintBottom(a,c,b,d,f,g,A,n,C),e.lineSWInner(a,c,b,d,f,g,A,n,x,C),e.paintBottomInner(a,c,b,d,f,g,E,n,x,q,B),a.close(),a.fillAndStroke()):"frame"!=p?(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,c,b,d,f,g,y,n,m),"double"==p&&(e.moveNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C)),a.stroke()):(a.begin(),e.moveSW(a,c,b,d,f,g,y,n,B),e.paintLeft(a,
+c,b,d,f,g,y,n,m),e.lineNWInner(a,c,b,d,f,g,y,n,x,m,C),e.paintLeftInner(a,c,b,d,f,g,A,n,x,B,C),a.close(),a.fillAndStroke());a.begin();e.paintFolds(a,c,b,d,f,g,y,z,E,A,n,m,q,B,C);a.stroke()};W.prototype.moveNW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,0):a.moveTo(0,n)};W.prototype.moveNE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(d,0):a.moveTo(d-n,0)};W.prototype.moveSE=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&
+"square"==e||!k?a.moveTo(d,f):a.moveTo(d,f-n)};W.prototype.moveSW=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.moveTo(0,f):a.moveTo(n,f)};W.prototype.paintNW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,n,0)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(n,0);else a.lineTo(0,0)};W.prototype.paintTop=
+function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(d,0):a.lineTo(d-n,0)};W.prototype.paintNE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d,n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d,n);else a.lineTo(d,0)};W.prototype.paintRight=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==
+g&&"square"==e||!k?a.lineTo(d,f):a.lineTo(d,f-n)};W.prototype.paintLeft=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,0):a.lineTo(0,n)};W.prototype.paintSE=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,d-n,f)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-n,f);else a.lineTo(d,
+f)};W.prototype.paintBottom=function(a,c,b,d,f,e,g,n,k){"square"==g||"default"==g&&"square"==e||!k?a.lineTo(0,f):a.lineTo(n,f)};W.prototype.paintSW=function(a,c,b,d,f,e,g,n,k){if(k)if("rounded"==g||"default"==g&&"rounded"==e||"invRound"==g||"default"==g&&"invRound"==e){c=0;if("rounded"==g||"default"==g&&"rounded"==e)c=1;a.arcTo(n,n,0,0,c,0,f-n)}else("snip"==g||"default"==g&&"snip"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(0,f-n);else a.lineTo(0,f)};W.prototype.paintNWInner=function(a,c,b,
+d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,k,.5*k+n);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,k,k+n);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(k,.5*k+n);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,k+n),a.lineTo(k,k+n)};W.prototype.paintTopInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(0,k):p&&!t?a.lineTo(k,0):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&
+"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(n+.5*k,k):a.lineTo(n+k,k):a.lineTo(0,k):a.lineTo(0,0)};W.prototype.paintNEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-n-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-n-k,k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-n-.5*k,k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,n+k),a.lineTo(d-n-k,k)};W.prototype.paintRightInner=
+function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d-k,0):p&&!t?a.lineTo(d,k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,n+.5*k):a.lineTo(d-k,n+k):a.lineTo(d-k,0):a.lineTo(d,0)};W.prototype.paintLeftInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,f):p&&!t?a.lineTo(0,f-k):p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
+g&&"snip"==e?a.lineTo(k,f-n-.5*k):a.lineTo(k,f-n-k):a.lineTo(k,f):a.lineTo(0,f)};W.prototype.paintSEInner=function(a,c,b,d,f,e,g,n,k){if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,d-k,f-n-.5*k);else if("invRound"==g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,d-k,f-n-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(d-k,f-n-.5*k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(d-n-k,f-n-k),a.lineTo(d-k,f-n-k)};W.prototype.paintBottomInner=function(a,c,b,d,
+f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(d,f-k):p&&!t?a.lineTo(d-k,f):"square"==g||"default"==g&&"square"==e||!p?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-n-.5*k,f-k):a.lineTo(d-n-k,f-k):a.lineTo(d,f)};W.prototype.paintSWInner=function(a,c,b,d,f,e,g,n,k,p){if(!p)a.lineTo(k,f);else if("square"==g||"default"==g&&"square"==e)a.lineTo(k,f-k);else if("rounded"==g||"default"==g&&"rounded"==e)a.arcTo(n-.5*k,n-.5*k,0,0,0,n+.5*k,f-k);else if("invRound"==
+g||"default"==g&&"invRound"==e)a.arcTo(n+k,n+k,0,0,1,n+k,f-k);else if("snip"==g||"default"==g&&"snip"==e)a.lineTo(n+.5*k,f-k);else if("fold"==g||"default"==g&&"fold"==e)a.lineTo(k+n,f-n-k),a.lineTo(k+n,f-k)};W.prototype.moveSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,
+f-n-k):a.moveTo(0,f-k)};W.prototype.lineSWInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,f-n-k):a.lineTo(0,f-k)};W.prototype.moveSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.moveTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==
+e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,f-n-k):a.moveTo(d-k,f)};W.prototype.lineSEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e?a.lineTo(d-k,f-k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(d-k,f-n-.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,f-n-k):a.lineTo(d-
+k,f)};W.prototype.moveNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(d-k,n+k):a.moveTo(d,k)};W.prototype.lineNEInner=function(a,c,b,d,f,e,g,n,k,p){p?"square"==g||"default"==g&&"square"==e||p?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==
+g&&"snip"==e?a.lineTo(d-k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(d-k,n+k):a.lineTo(d,k)};W.prototype.moveNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.moveTo(k,0):p&&!t?a.moveTo(0,k):"square"==g||"default"==g&&"square"==e?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.moveTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.moveTo(k,n+k):a.moveTo(0,
+0)};W.prototype.lineNWInner=function(a,c,b,d,f,e,g,n,k,p,t){p||t?!p&&t?a.lineTo(k,0):p&&!t?a.lineTo(0,k):"square"==g||"default"==g&&"square"==e?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==e||"snip"==g||"default"==g&&"snip"==e?a.lineTo(k,n+.5*k):("invRound"==g||"default"==g&&"invRound"==e||"fold"==g||"default"==g&&"fold"==e)&&a.lineTo(k,n+k):a.lineTo(0,0)};W.prototype.paintFolds=function(a,c,b,d,f,e,g,n,k,p,t,v,m,q,B){if("fold"==e||"fold"==g||"fold"==n||"fold"==k||"fold"==p)("fold"==g||"default"==
+g&&"fold"==e)&&v&&B&&(a.moveTo(0,t),a.lineTo(t,t),a.lineTo(t,0)),("fold"==n||"default"==n&&"fold"==e)&&v&&m&&(a.moveTo(d-t,0),a.lineTo(d-t,t),a.lineTo(d,t)),("fold"==k||"default"==k&&"fold"==e)&&q&&m&&(a.moveTo(d-t,f),a.lineTo(d-t,f-t),a.lineTo(d,f-t)),("fold"==p||"default"==p&&"fold"==e)&&q&&B&&(a.moveTo(0,f-t),a.lineTo(t,f-t),a.lineTo(t,f))};mxCellRenderer.registerShape(W.prototype.cst.RECT2,W);W.prototype.constraints=null;mxUtils.extend(Aa,mxConnector);Aa.prototype.origPaintEdgeShape=Aa.prototype.paintEdgeShape;
Aa.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f]));var f=a.state.dashed,e=a.state.fixDash;Aa.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),Aa.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",Aa);"undefined"!==typeof StyleFormatPanel&&function(){var a=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,k,m,x){var p=f*(g+m+1),v=e*(g+m+1);return function(){a.begin();a.moveTo(d.x-p/2-v/2,d.y-v/2+p/2);a.lineTo(d.x+v/2-3*p/2,d.y-3*v/2-p/2);a.stroke()}});mxMarker.addMarker("box",
-function(a,c,b,d,f,e,g,k,m,x){var p=f*(g+m+1),v=e*(g+m+1),u=d.x+p/2,l=d.y+v/2;d.x-=p;d.y-=v;return function(){a.begin();a.moveTo(u-p/2-v/2,l-v/2+p/2);a.lineTo(u-p/2+v/2,l-v/2-p/2);a.lineTo(u+v/2-3*p/2,l-3*v/2-p/2);a.lineTo(u-v/2-3*p/2,l-3*v/2+p/2);a.close();x?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,k,m,x){var p=f*(g+m+1),v=e*(g+m+1);return function(){a.begin();a.moveTo(d.x-p/2-v/2,d.y-v/2+p/2);a.lineTo(d.x+v/2-3*p/2,d.y-3*v/2-p/2);a.moveTo(d.x-p/2+v/2,d.y-
-v/2-p/2);a.lineTo(d.x-v/2-3*p/2,d.y-3*v/2+p/2);a.stroke()}});mxMarker.addMarker("circle",Ta);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,k,m,x){var p=d.clone(),v=Ta.apply(this,arguments),u=f*(g+2*m),l=e*(g+2*m);return function(){v.apply(this,arguments);a.begin();a.moveTo(p.x-f*m,p.y-e*m);a.lineTo(p.x-2*u+f*m,p.y-2*l+e*m);a.moveTo(p.x-u-l+e*m,p.y-l+u-f*m);a.lineTo(p.x+l-u-e*m,p.y-l-u+f*m);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,c,b,d,f,e,g,k,m,x){var p=f*(g+m+1),v=e*(g+
-m+1),u=d.clone();d.x-=p;d.y-=v;return function(){a.begin();a.moveTo(u.x-v,u.y+p);a.quadTo(d.x-v,d.y+p,d.x,d.y);a.quadTo(d.x+v,d.y-p,u.x+v,u.y-p);a.stroke()}});mxMarker.addMarker("async",function(a,c,d,b,f,e,g,k,m,x){c=f*m*1.118;d=e*m*1.118;f*=g+m;e*=g+m;var p=b.clone();p.x-=c;p.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(p.x,p.y);k?a.lineTo(p.x-f-e/2,p.y-e+f/2):a.lineTo(p.x+e/2-f,p.y-e-f/2);a.lineTo(p.x-f,p.y-e);a.close();x?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
-function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,k,m,x,p){e*=k+x;g*=k+x;var v=f.clone();return function(){c.begin();c.moveTo(v.x,v.y);m?c.lineTo(v.x-e-g/a,v.y-g+e/a):c.lineTo(v.x+g/a-e,v.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Xa=function(a,c,d){return La(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,k){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));a.style.width=
-Math.round(2*c)/a.view.scale-d})},La=function(a,c,d,b,f){return ea(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=a.view.scale,k=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-k.x,m=f.y-k.y,x=Math.sqrt(e*e+m*m),k=b.call(this,x,e/x,m/x,k,f);return new mxPoint(k.x/g-c.x,k.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,k=g.length-1;c=a.view.translate;var m=a.view.scale,x=d?g[0]:g[k],g=d?g[1]:g[k-1],k=g.x-x.x,p=g.y-x.y,v=Math.sqrt(k*k+p*p);b.x=(b.x+c.x)*m;b.y=(b.y+c.y)*m;f.call(this,
-v,k/v,p/v,x,g,b,e)})},Ea=function(a){return function(c){return[ea(c,["arrowWidth","arrowSize"],function(c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ia.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",ia.prototype.arrowSize)));return new mxPoint(c.x+(1-d)*c.width,c.y+(1-b)*c.height/2)},function(c,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-b.y)/c.height*2));this.state.style.arrowSize=Math.max(0,
-Math.min(a,(c.x+c.width-b.x)/c.width))})]}},Ua=function(a){return function(c){return[ea(c,["size"],function(c){var b=Math.max(0,Math.min(.5*c.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(c.x,c.y+b)},function(a,c){this.state.style.size=Math.max(0,c.y-a.y)},!0)]}},Ra=function(a,c,b){return function(d){var f=[ea(d,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(b.x+
-d,b.y+d)},function(c,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,b.x-c.x),Math.min(c.height,b.y-c.y)))/a)},!1)];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(d));return f}},Ma=function(a,c,b,d,f){b=null!=b?b:.5;return function(e){var g=[ea(e,["size"],function(c){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",b?f:a));return new mxPoint(c.x+Math.max(0,Math.min(.5*c.width,
-d*(b?1:c.width))),c.getCenterY())},function(a,c,d){a=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-a.x:Math.max(0,Math.min(b,(c.x-a.x)/a.width));this.state.style.size=a},!1,d)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(Ba(e));return g}},Va=function(a,c,b){a=null!=a?a:.5;return function(d){var f=[ea(d,["size"],function(d){var f=null!=b?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,e=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
-"size",f?b:c)));return new mxPoint(d.x+Math.min(.75*d.width*a,e*(f?.75:.75*d.width)),d.y+d.height/4)},function(c,d){var f=null!=b&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?d.x-c.x:Math.max(0,Math.min(a,(d.x-c.x)/c.width*.75));this.state.style.size=f},!1,!0)];mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(d));return f}},Ka=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c}},Ba=function(a,c){return ea(a,
-[mxConstants.STYLE_ARCSIZE],function(b){var d=null!=c?c:b.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(b.x+b.width-Math.min(b.width/2,f),b.y+d)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(b.x+b.width-Math.min(Math.max(b.width/2,b.height/2),Math.min(b.width,b.height)*
-f),b.y+d)},function(c,b,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-b.x+c.x)/Math.min(c.width,c.height))))})},ea=function(a,c,b,d,f,e,g){var k=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);k.execute=function(a){for(var b=0;b<c.length;b++)this.copyStyle(c[b]);
-g&&g(a)};k.getPosition=b;k.setPosition=d;k.ignoreGrid=null!=f?f:!0;if(e){var m=k.positionChanged;k.positionChanged=function(){m.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return k},Na={link:function(a){return[Xa(a,!0,10),Xa(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
-!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,m){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/
-3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(m.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(m.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,
-b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,m){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/
-100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(m.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(m.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-
-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*
-a.view.scale)+b*c/2)},function(b,d,f,e,g,k,m){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(m.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(m.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
-c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,m){b=
-Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(m.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(m.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var c=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(Ba(a,b/2))}c.push(ea(a,[mxConstants.STYLE_STARTSIZE],
-function(c){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,b))):new mxPoint(c.x+Math.max(0,Math.min(c.width,b)),c.getCenterY())},function(c,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,b.y-c.y))):Math.round(Math.max(0,
-Math.min(c.width,b.x-c.x)))},!1,null,function(c){if(mxEvent.isControlDown(c.getEvent())&&(c=a.view.graph,c.isTableRow(a.cell)||c.isTableCell(a.cell))){for(var b=c.getSwimlaneDirection(a.style),d=c.model.getParent(a.cell),d=c.model.getChildCells(d,!0),f=[],e=0;e<d.length;e++)d[e]!=a.cell&&c.isSwimlane(d[e])&&c.getSwimlaneDirection(c.getCurrentCellStyle(d[e]))==b&&f.push(d[e]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],f)}}));return c},label:Ka(),ext:Ka(),rectangle:Ka(),
-triangle:Ka(),rhombus:Ka(),umlLifeline:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Z.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[ea(a,["width","height"],function(a){var c=Math.max(Y.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",Y.prototype.width))),
-b=Math.max(1.5*Y.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",Y.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(Y.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*Y.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[ea(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),b=parseFloat(mxUtils.getValue(this.state.style,
-"size",G.prototype.size));return c?new mxPoint(a.x+b,a.y+a.height/4):new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,c){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,c.x-a.x)):Math.max(0,Math.min(.5,(c.x-a.x)/a.width));this.state.style.size=b},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},cross:function(a){return[ea(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"size",ua.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var b=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/b*2,Math.max(0,a.getCenterX()-c.x)/b*2)))})]},note:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=
-Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[ea(a,["size"],function(a){var c=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",T.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},dataStorage:function(a){return[ea(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),b=parseFloat(mxUtils.getValue(this.state.style,"size",c?R.prototype.fixedSize:
-R.prototype.size));return new mxPoint(a.x+a.width-b*(c?1:a.width),a.getCenterY())},function(a,c){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=b},!1)]},callout:function(a){var c=[ea(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",E.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",E.prototype.position)));mxUtils.getValue(this.state.style,"base",E.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-c)},function(a,c){mxUtils.getValue(this.state.style,"base",E.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),ea(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",E.prototype.position2)));
-return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),ea(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",E.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",E.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",E.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
-b*a.width+d),a.y+a.height-c)},function(a,c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",E.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-b*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},internalStorage:function(a){var c=[ea(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",da.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",da.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},module:function(a){return[ea(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ka.prototype.jettyWidth))),b=Math.max(0,Math.min(a.height,
-mxUtils.getValue(this.state.style,"jettyHeight",ka.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+2*b)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[ea(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",la.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"dy",la.prototype.dy)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[ea(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+b)},function(a,
-c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ea(1),doubleArrow:Ea(.5),folder:function(a){return[ea(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",k.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",k.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",F.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[ea(a,
-["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",c.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(b),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Ua(f.prototype.size),cylinder3:Ua(g.prototype.size),offPageConnector:function(a){return[ea(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",qa.prototype.size))));
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.stroke()}});mxMarker.addMarker("box",
+function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1),v=d.x+t/2,m=d.y+x/2;d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v-t/2-x/2,m-x/2+t/2);a.lineTo(v-t/2+x/2,m-x/2-t/2);a.lineTo(v+x/2-3*t/2,m-3*x/2-t/2);a.lineTo(v-x/2-3*t/2,m-3*x/2+t/2);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+k+1);return function(){a.begin();a.moveTo(d.x-t/2-x/2,d.y-x/2+t/2);a.lineTo(d.x+x/2-3*t/2,d.y-3*x/2-t/2);a.moveTo(d.x-t/2+x/2,d.y-
+x/2-t/2);a.lineTo(d.x-x/2-3*t/2,d.y-3*x/2+t/2);a.stroke()}});mxMarker.addMarker("circle",Ta);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,n,k,p){var t=d.clone(),x=Ta.apply(this,arguments),v=f*(g+2*k),m=e*(g+2*k);return function(){x.apply(this,arguments);a.begin();a.moveTo(t.x-f*k,t.y-e*k);a.lineTo(t.x-2*v+f*k,t.y-2*m+e*k);a.moveTo(t.x-v-m+e*k,t.y-m+v-f*k);a.lineTo(t.x+m-v-e*k,t.y-m-v+f*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,c,b,d,f,e,g,n,k,p){var t=f*(g+k+1),x=e*(g+
+k+1),v=d.clone();d.x-=t;d.y-=x;return function(){a.begin();a.moveTo(v.x-x,v.y+t);a.quadTo(d.x-x,d.y+t,d.x,d.y);a.quadTo(d.x+x,d.y-t,v.x+x,v.y-t);a.stroke()}});mxMarker.addMarker("async",function(a,c,d,b,f,e,g,n,k,p){c=f*k*1.118;d=e*k*1.118;f*=g+k;e*=g+k;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);n?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
+function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,n,k,p,t){e*=n+p;g*=n+p;var x=f.clone();return function(){c.begin();c.moveTo(x.x,x.y);k?c.lineTo(x.x-e-g/a,x.y-g+e/a):c.lineTo(x.x+g/a-e,x.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Xa=function(a,c,d){return La(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,n){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));a.style.width=
+Math.round(2*c)/a.view.scale-d})},La=function(a,c,d,b,f){return da(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=a.view.scale,n=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-n.x,k=f.y-n.y,p=Math.sqrt(e*e+k*k),n=b.call(this,p,e/p,k/p,n,f);return new mxPoint(n.x/g-c.x,n.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,n=g.length-1;c=a.view.translate;var k=a.view.scale,p=d?g[0]:g[n],g=d?g[1]:g[n-1],n=g.x-p.x,t=g.y-p.y,x=Math.sqrt(n*n+t*t);b.x=(b.x+c.x)*k;b.y=(b.y+c.y)*k;f.call(this,
+x,n/x,t/x,p,g,b,e)})},Ea=function(a){return function(c){return[da(c,["arrowWidth","arrowSize"],function(c){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ga.prototype.arrowWidth))),b=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",ga.prototype.arrowSize)));return new mxPoint(c.x+(1-b)*c.width,c.y+(1-d)*c.height/2)},function(c,d){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-d.y)/c.height*2));this.state.style.arrowSize=Math.max(0,
+Math.min(a,(c.x+c.width-d.x)/c.width))})]}},Ua=function(a){return function(c){return[da(c,["size"],function(c){var d=Math.max(0,Math.min(.5*c.height,parseFloat(mxUtils.getValue(this.state.style,"size",a))));return new mxPoint(c.x,c.y+d)},function(a,c){this.state.style.size=Math.max(0,c.y-a.y)},!0)]}},Ra=function(a,c,d){return function(b){var f=[da(b,["size"],function(d){var b=Math.max(0,Math.min(d.width,Math.min(d.height,parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(d.x+
+b,d.y+b)},function(c,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,d.x-c.x),Math.min(c.height,d.y-c.y)))/a)},!1)];d&&mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(b));return f}},Ma=function(a,c,d,b,f){d=null!=d?d:.5;return function(e){var g=[da(e,["size"],function(c){var d=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,b=parseFloat(mxUtils.getValue(this.state.style,"size",d?f:a));return new mxPoint(c.x+Math.max(0,Math.min(.5*c.width,
+b*(d?1:c.width))),c.getCenterY())},function(a,c,b){a=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-a.x:Math.max(0,Math.min(d,(c.x-a.x)/a.width));this.state.style.size=a},!1,b)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(Ba(e));return g}},Va=function(a,c,d){a=null!=a?a:.5;return function(b){var f=[da(b,["size"],function(b){var f=null!=d?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,e=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,
+"size",f?d:c)));return new mxPoint(b.x+Math.min(.75*b.width*a,e*(f?.75:.75*b.width)),b.y+b.height/4)},function(c,b){var f=null!=d&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?b.x-c.x:Math.max(0,Math.min(a,(b.x-c.x)/c.width*.75));this.state.style.size=f},!1,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(Ba(b));return f}},Ka=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c}},Ba=function(a,c){return da(a,
+[mxConstants.STYLE_ARCSIZE],function(d){var b=null!=c?c:d.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(d.x+d.width-Math.min(d.width/2,f),d.y+b)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(d.x+d.width-Math.min(Math.max(d.width/2,d.height/2),Math.min(d.width,d.height)*
+f),d.y+b)},function(c,d,b){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-d.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-d.x+c.x)/Math.min(c.width,c.height))))})},da=function(a,c,d,b,f,e,g){var n=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);n.execute=function(a){for(var d=0;d<c.length;d++)this.copyStyle(c[d]);
+g&&g(a)};n.getPosition=d;n.setPosition=b;n.ignoreGrid=null!=f?f:!0;if(e){var k=n.positionChanged;n.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return n},Na={link:function(a){return[Xa(a,!0,10),Xa(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,d=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!0,function(c,d,b,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(b-a.shape.strokewidth)/
+3)/100/a.view.scale;a.style.width=Math.round(2*d)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),d.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,
+d,b,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/
+100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*d)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-
+parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(La(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,d,b,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2,f.y+b*(e+a.shape.strokewidth*
+a.view.scale)+d*c/2)},function(d,b,f,e,g,n,k){d=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*d)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<
+c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),d.push(La(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,d,b,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2,f.y+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2)},function(d,b,f,e,g,n,k){d=
+Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,n.x,n.y));b=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-b,n.x,n.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(b-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*d)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-
+parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return d},swimlane:function(a){var c=[];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var d=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(Ba(a,d/2))}c.push(da(a,[mxConstants.STYLE_STARTSIZE],
+function(c){var d=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,d))):new mxPoint(c.x+Math.max(0,Math.min(c.width,d)),c.getCenterY())},function(c,d){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,d.y-c.y))):Math.round(Math.max(0,
+Math.min(c.width,d.x-c.x)))},!1,null,function(c){if(mxEvent.isControlDown(c.getEvent())&&(c=a.view.graph,c.isTableRow(a.cell)||c.isTableCell(a.cell))){for(var d=c.getSwimlaneDirection(a.style),b=c.model.getParent(a.cell),b=c.model.getChildCells(b,!0),f=[],e=0;e<b.length;e++)b[e]!=a.cell&&c.isSwimlane(b[e])&&c.getSwimlaneDirection(c.getCurrentCellStyle(b[e]))==d&&f.push(b[e]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],f)}}));return c},label:Ka(),ext:Ka(),rectangle:Ka(),
+triangle:Ka(),rhombus:Ka(),umlLifeline:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",Y.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var c=Math.max(X.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),
+d=Math.max(1.5*X.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.width=Math.round(Math.max(X.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),d=parseFloat(mxUtils.getValue(this.state.style,
+"size",J.prototype.size));return c?new mxPoint(a.x+d,a.y+a.height/4):new mxPoint(a.x+a.width*d,a.y+a.height/4)},function(a,c){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*a.width,c.x-a.x)):Math.max(0,Math.min(.5,(c.x-a.x)/a.width));this.state.style.size=d},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},cross:function(a){return[da(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"size",ua.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var d=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/d*2,Math.max(0,a.getCenterX()-c.x)/d*2)))})]},note:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=
+Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},note2:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[da(a,["size"],function(a){var c=
+Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",T.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},dataStorage:function(a){return[da(a,["size"],function(a){var c="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),d=parseFloat(mxUtils.getValue(this.state.style,"size",c?S.prototype.fixedSize:
+S.prototype.size));return new mxPoint(a.x+a.width-d*(c?1:a.width),a.getCenterY())},function(a,c){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(a.width,a.x+a.width-c.x)):Math.max(0,Math.min(1,(a.x+a.width-c.x)/a.width));this.state.style.size=d},!1)]},callout:function(a){var c=[da(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"position",D.prototype.position)));mxUtils.getValue(this.state.style,"base",D.prototype.base);return new mxPoint(a.x+d*a.width,a.y+a.height-c)},function(a,c){mxUtils.getValue(this.state.style,"base",D.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",D.prototype.position2)));
+return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100},!1),da(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",D.prototype.size))),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position))),b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",D.prototype.base)));return new mxPoint(a.x+Math.min(a.width,
+d*a.width+b),a.y+a.height-c)},function(a,c){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",D.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,c.x-a.x-d*a.width)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},internalStorage:function(a){var c=[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ca.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",ca.prototype.dy)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(Ba(a));return c},module:function(a){return[da(a,["jettyWidth","jettyHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ia.prototype.jettyWidth))),d=Math.max(0,Math.min(a.height,
+mxUtils.getValue(this.state.style,"jettyHeight",ia.prototype.jettyHeight)));return new mxPoint(a.x+c/2,a.y+2*d)},function(a,c){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y))/2)})]},corner:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ja.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
+"dy",ja.prototype.dy)));return new mxPoint(a.x+c,a.y+d)},function(a,c){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,c.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},tee:function(a){return[da(a,["dx","dy"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(a.x+(a.width+c)/2,a.y+d)},function(a,
+c){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,c.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},singleArrow:Ea(1),doubleArrow:Ea(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var c=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),d=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,
+"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+d)},function(a,c){var d=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=a.width-d);this.state.style.tabWidth=Math.round(d);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},document:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
+"size",F.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},tape:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",A.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))},!1)]},isoCube2:function(a){return[da(a,
+["isoAngle"],function(a){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",c.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(d),.5*a.height))},function(a,c){this.state.style.isoAngle=Math.max(0,50*(c.y-a.y)/a.height)},!0)]},cylinder2:Ua(f.prototype.size),cylinder3:Ua(g.prototype.size),offPageConnector:function(a){return[da(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",qa.prototype.size))));
return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))},!1)]},"mxgraph.basic.rect":function(a){var c=[Graph.createHandle(a,["size"],function(a){var c=Math.max(0,Math.min(a.width/2,a.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+c,a.y+c)},function(a,c){this.state.style.size=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,c.x-a.x)))/100})];a=Graph.createHandle(a,
-["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(J.prototype.size,!0,null,!0,J.prototype.fixedSize),hexagon:Ma(H.prototype.size,!0,.5,!0,H.prototype.fixedSize),curlyBracket:Ma(M.prototype.size,!1),display:Ma(va.prototype.size,!1),cube:Ra(1,
-b.prototype.size,!1),card:Ra(.5,u.prototype.size,!0),loopLimit:Ra(.5,ba.prototype.size,!0),trapezoid:Va(.5,y.prototype.size,y.prototype.fixedSize),parallelogram:Va(1,z.prototype.size,z.prototype.fixedSize)};Graph.createHandle=ea;Graph.handleFactory=Na;var bb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=bb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&
+["indent"],function(a){var c=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(a.x+.75*a.width,a.y+c*a.height/200)},function(a,c){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(c.y-a.y)/a.height)))/100});c.push(a);return c},step:Ma(K.prototype.size,!0,null,!0,K.prototype.fixedSize),hexagon:Ma(I.prototype.size,!0,.5,!0,I.prototype.fixedSize),curlyBracket:Ma(L.prototype.size,!1),display:Ma(wa.prototype.size,!1),cube:Ra(1,
+b.prototype.size,!1),card:Ra(.5,v.prototype.size,!0),loopLimit:Ra(.5,aa.prototype.size,!0),trapezoid:Va(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Va(1,y.prototype.size,y.prototype.fixedSize)};Graph.createHandle=da;Graph.handleFactory=Na;var bb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=bb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var c=this.state.style.shape;null==mxCellRenderer.defaultShapes[c]&&
null==mxStencilRegistry.getStencil(c)?c=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(c=mxConstants.SHAPE_SWIMLANE);c=Na[c];null==c&&null!=this.state.shape&&this.state.shape.isRoundable()&&(c=Na[mxConstants.SHAPE_RECTANGLE]);null!=c&&(c=c(this.state),null!=c&&(a=null==a?c:a.concat(c)))}return a};mxEdgeHandler.prototype.createCustomHandles=function(){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);
-a=Na[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Ea=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Ea),Math.sin(Ea)),Ea=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Ea),Math.sin(Ea));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=e.transformControlPoint(a,d));null==
-k&&null!=c&&(k=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var m=Oa.x,x=Oa.y,p=Pa.x,u=Pa.y,l="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){a=function(a,c,b){a-=q.x;var d=c-q.y;c=(u*a-p*d)/(m*u-x*p);a=(x*a-m*d)/(x*p-m*u);l?(b&&(q=new mxPoint(q.x+m*c,q.y+x*c),f.push(q)),q=new mxPoint(q.x+p*a,q.y+u*a)):(b&&(q=new mxPoint(q.x+p*a,q.y+u*a),f.push(q)),q=new mxPoint(q.x+m*c,q.y+x*c));f.push(q)};var q=k;null==
-d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var cb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return cb.apply(this,arguments)};d.prototype.constraints=[];n.prototype.getConstraints=function(a,c,b){a=[];var d=Math.tan(mxUtils.toRadians(30)),f=(.5-
-d)/2,d=Math.min(c,b/(.5+d));c=(c-d)/2;b=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*d,b+d*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+d,b+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+d,b+.75*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*d,b+(1-f)*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b+.75*d));return a};c.prototype.getConstraints=
-function(a,c,b){a=[];var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,d=Math.min(c*Math.tan(d),.5*b);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b-d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));return a};E.prototype.getConstraints=function(a,c,b){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b-d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+a=Na[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Oa=new mxPoint(1,0),Pa=new mxPoint(1,0),Ea=mxUtils.toRadians(-30),Oa=mxUtils.getRotatedPoint(Oa,Math.cos(Ea),Math.sin(Ea)),Ea=mxUtils.toRadians(-150),Pa=mxUtils.getRotatedPoint(Pa,Math.cos(Ea),Math.sin(Ea));mxEdgeStyle.IsometricConnector=function(a,c,d,b,f){var e=a.view;b=null!=b&&0<b.length?b[0]:null;var g=a.absolutePoints,n=g[0],g=g[g.length-1];null!=b&&(b=e.transformControlPoint(a,b));null==
+n&&null!=c&&(n=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=d&&(g=new mxPoint(d.getCenterX(),d.getCenterY()));var k=Oa.x,p=Oa.y,t=Pa.x,v=Pa.y,m="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=n){a=function(a,c,d){a-=q.x;var b=c-q.y;c=(v*a-t*b)/(k*v-p*t);a=(p*a-k*b)/(p*t-k*v);m?(d&&(q=new mxPoint(q.x+k*c,q.y+p*c),f.push(q)),q=new mxPoint(q.x+t*a,q.y+v*a)):(d&&(q=new mxPoint(q.x+t*a,q.y+v*a),f.push(q)),q=new mxPoint(q.x+k*c,q.y+p*c));f.push(q)};var q=n;null==
+b&&(b=new mxPoint(n.x+(g.x-n.x)/2,n.y+(g.y-n.y)/2));a(b.x,b.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var cb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var d=new mxElbowEdgeHandler(a);d.snapToTerminals=!1;return d}return cb.apply(this,arguments)};d.prototype.constraints=[];l.prototype.getConstraints=function(a,c,d){a=[];var b=Math.tan(mxUtils.toRadians(30)),f=(.5-
+b)/2,b=Math.min(c,d/(.5+b));c=(c-b)/2;d=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,d+b*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,d+.25*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+b,d+.75*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*b,d+(1-f)*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d+.75*b));return a};c.prototype.getConstraints=
+function(a,c,d){a=[];var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,b=Math.min(c*Math.tan(b),.5*d);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d-b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));return a};D.prototype.getConstraints=function(a,c,d){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+c,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-b)));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,
1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];xa.prototype.constraints=mxRectangleShape.prototype.constraints;
-mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};u.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,Math.min(b,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b+d)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-d)));return a};g.prototype.getConstraints=function(a,c,b){a=[];c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,c+.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-c-.5*(.5*b-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};k.prototype.getConstraints=
-function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(b-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};da.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;ta.prototype.constraints=mxEllipse.prototype.constraints;
-Fa.prototype.constraints=mxEllipse.prototype.constraints;Ia.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;za.prototype.constraints=mxRectangleShape.prototype.constraints;va.prototype.getConstraints=function(a,c,b){a=[];var d=Math.min(c,b/2),f=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-d),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};ka.prototype.getConstraints=function(a,c,b){c=parseFloat(mxUtils.getValue(a,
-"jettyWidth",ka.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ka.prototype.jettyHeight));var d=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
-.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(b-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(b-.5*a,3.5*a))];b>5*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));b>8*a&&d.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1,null,c));b>15*a&&d.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return d};ba.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
+mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};v.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c>=2*b&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};b.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d+b)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(c+b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-b)));return a};g.prototype.getConstraints=function(a,c,d){a=[];c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c+.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(1,
+0),!1,null,0,c+.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d-c-.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-c-.5*(.5*d-c)));a.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*c));a.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-c));a.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-c));return a};p.prototype.getConstraints=
+function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,b,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f))):(a.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-.5*b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,f)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,.25*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.75*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,.75*(d-f)+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};ca.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;ta.prototype.constraints=mxEllipse.prototype.constraints;
+Fa.prototype.constraints=mxEllipse.prototype.constraints;Ia.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;za.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.getConstraints=function(a,c,d){a=[];var b=Math.min(c,d/2),f=Math.min(c-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+c-b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));return a};ia.prototype.getConstraints=function(a,c,d){c=parseFloat(mxUtils.getValue(a,
+"jettyWidth",ia.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ia.prototype.jettyHeight));var b=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,
+.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,c),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(d-.5*a,1.5*a)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(d-.5*a,3.5*a))];d>5*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,c));d>8*a&&b.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1,null,c));d>15*a&&b.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,c));return b};aa.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];B.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,
-.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];ha.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
+.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];fa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
-.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
+.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];k.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
-.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];J.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
+.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,
.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,
1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,
-.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];z.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
-0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;O.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(c+d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*d,f));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};la.prototype.getConstraints=function(a,c,b){a=[];var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+d),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(b+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-1),!1));return a};ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ia.prototype.getConstraints=
-function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b-d));return a};fa.prototype.getConstraints=function(a,c,b){a=[];var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ia.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ia.prototype.arrowSize)))),d=(b-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));return a};ua.prototype.getConstraints=
-function(a,c,b){a=[];var d=Math.min(b,c),f=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),d=(b-f)/2,e=d+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,b-.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),d));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));return a};Z.prototype.constraints=null;ya.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
-.9),!1)];N.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];aa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];y.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
+0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;O.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*c+.25*b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(c+b),.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*c-.25*b,f));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*f));return a};ja.prototype.getConstraints=function(a,c,d){a=[];var b=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+b),f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(d+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+1),!1));return a};ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ga.prototype.getConstraints=
+function(a,c,d){a=[];var b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),b=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-f),d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d-b));return a};ea.prototype.getConstraints=function(a,c,d){a=[];var b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth)))),f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize)))),b=(d-b)/2;a.push(new mxConnectionConstraint(new mxPoint(0,
+.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,d-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));return a};ua.prototype.getConstraints=
+function(a,c,d){a=[];var b=Math.min(d,c),f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),b=(d-f)/2,e=b+f,g=(c-f)/2,f=g+f;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,f,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,d-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),b));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c+f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*g,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,b));return a};Y.prototype.constraints=null;ya.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,
+.9),!1)];P.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];Z.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ha.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
-Actions.prototype.init=function(){function a(a){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}var b=this.editorUi,e=b.editor,d=e.graph,n=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey=
-"import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){try{var b=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(b.documentElement))}catch(g){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+g.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=n;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+
-"+S").isEnabled=n;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=n;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,304,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=n;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,
+Actions.prototype.init=function(){function a(a){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}var b=this.editorUi,e=b.editor,d=e.graph,l=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey=
+"import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){try{var d=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(d.documentElement))}catch(g){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+g.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=l;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+
+"+S").isEnabled=l;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=l;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,304,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=l;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,
300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var a=null;try{a=b.copyXml(),null!=a&&d.removeCells(a)}catch(c){}null==a&&mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",
function(){try{b.copyXml()}catch(q){}try{mxClipboard.copy(d)}catch(q){b.handleError(q)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{b.pasteXml(a,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),a=!0)}catch(c){}a||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+
-"+V");this.addAction("pasteHere",function(a){function c(a){if(null!=a){for(var c=!0,b=0;b<a.length&&c;b++)c=c&&d.model.isEdge(a[b]);var f=d.view.translate,b=d.view.scale,e=f.x,g=f.y,f=null;if(1==a.length&&c){var l=d.getCellGeometry(a[0]);null!=l&&(f=l.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(a,c);null!=f&&(c=Math.round(d.snap(d.popupMenuHandler.triggerX/b-e)),b=Math.round(d.snap(d.popupMenuHandler.triggerY/b-g)),d.cellsMoved(a,c-f.x,b-f.y))}}function f(){d.getModel().beginUpdate();
+"+V");this.addAction("pasteHere",function(a){function c(a){if(null!=a){for(var c=!0,b=0;b<a.length&&c;b++)c=c&&d.model.isEdge(a[b]);var f=d.view.translate,b=d.view.scale,e=f.x,g=f.y,f=null;if(1==a.length&&c){var m=d.getCellGeometry(a[0]);null!=m&&(f=m.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(a,c);null!=f&&(c=Math.round(d.snap(d.popupMenuHandler.triggerX/b-e)),b=Math.round(d.snap(d.popupMenuHandler.triggerY/b-g)),d.cellsMoved(a,c-f.x,b-f.y))}}function f(){d.getModel().beginUpdate();
try{c(mxClipboard.paste(d))}finally{d.getModel().endUpdate()}}if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){a=!1;try{Editor.enableNativeCipboard&&(b.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c(b.pasteXml(a,!0))}finally{d.getModel().endUpdate()}}else f()}),a=!0)}catch(g){}a||f()}});this.addAction("copySize",function(){var a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,
a.y,a.width,a.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedSize){d.getModel().beginUpdate();try{for(var a=d.getSelectionCells(),c=0;c<a.length;c++)if(d.getModel().isVertex(a[c])){var f=d.getCellGeometry(a[c]);null!=f&&(f=f.clone(),f.width=b.copiedSize.width,f.height=b.copiedSize.height,d.getModel().setGeometry(a[c],f))}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+V");this.addAction("copyData",function(){var a=
d.getSelectionCell()||d.getModel().getRoot();d.isEnabled()&&null!=a&&(a=a.cloneValue(),null==a||isNaN(a.nodeType)||(b.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a){function c(c,b){var e=f.getValue(c);b=c.cloneValue(b);b.removeAttribute("placeholders");null==e||isNaN(e.nodeType)||b.setAttribute("placeholders",e.getAttribute("placeholders"));null!=a&&(mxEvent.isMetaDown(a)||mxEvent.isControlDown(a))||b.setAttribute("label",d.convertValueToString(c));f.setValue(c,b)}
-var f=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){f.beginUpdate();try{var e=d.getSelectionCells();if(0==e.length)c(f.getRoot(),b.copiedValue);else for(var m=0;m<e.length;m++)c(e[m],b.copiedValue)}finally{f.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(b){a(null!=b&&mxEvent.isControlDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
+var f=d.getModel();if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedValue){f.beginUpdate();try{var e=d.getSelectionCells();if(0==e.length)c(f.getRoot(),b.copiedValue);else for(var k=0;k<e.length;k++)c(e[k],b.copiedValue)}finally{f.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(d){a(null!=d&&mxEvent.isControlDown(d))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)});this.addAction("deleteLabels",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{for(var a=d.getSelectionCells(),c=0;c<a.length;c++)d.cellLabelChanged(a[c],"")}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){try{d.setSelectionCells(d.duplicateCells()),d.scrollCellToVisible(d.getSelectionCell())}catch(q){b.handleError(q)}},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(a){d.turnShapes(d.getSelectionCells(),null!=a?mxEvent.isShiftDown(a):
!1)},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",function(){d.selectVertices(null,!0)},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){d.home()},null,null,"Shift+Home");this.addAction("exitGroup",function(){d.exitGroup()},
@@ -2921,13 +2922,13 @@ function(){if(d.isEnabled()){var a=mxUtils.sortCells(d.getSelectionCells(),!0);1
d.model.isVertex(a[b])&&d.setCellStyles("container","0",[a[b]]),c.push(a[b]))}finally{d.model.endUpdate()}d.setSelectionCells(c)}},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){if(d.isEnabled()){var a=d.getSelectionCells();if(null!=a){for(var c=[],b=0;b<a.length;b++)d.isTableRow(a[b])||d.isTableCell(a[b])||c.push(a[b]);d.removeCellsFromParent(c)}}});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",
function(){var a=d.getSelectionCell()||d.getModel().getRoot();b.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){if(d.isEnabled()&&!d.isSelectionEmpty()){var a=d.getSelectionCell(),c="";if(mxUtils.isNode(a.value)){var f=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&a.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(f=a.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==f&&(f=a.value.getAttribute("tooltip"));null!=f&&(c=f)}c=new TextareaDialog(b,
mxResources.get("editTooltip")+":",c,function(c){d.setTooltipForCell(a,c)});b.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=d.getLinkForCell(d.getSelectionCell());null!=a&&d.openLink(a)});this.addAction("editLink...",function(){if(d.isEnabled()&&!d.isSelectionEmpty()){var a=d.getSelectionCell(),c=d.getLinkForCell(a)||"";b.showLinkDialog(c,mxResources.get("apply"),function(c,b,e){c=mxUtils.trim(c);d.setLinkForCell(a,0<c.length?
-c:null);d.setAttributeForCell(a,"linkTarget",e)},!0,d.getLinkTargetForCell(a))}},null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&(d.clearSelection(),b.actions.get("image").funct())})).isEnabled=n;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,c,b){a=mxUtils.trim(a);
+c:null);d.setAttributeForCell(a,"linkTarget",e)},!0,d.getLinkTargetForCell(a))}},null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&(d.clearSelection(),b.actions.get("image").funct())})).isEnabled=l;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,c,b){a=mxUtils.trim(a);
if(0<a.length){var f=null,e=d.getLinkTitle(a);null!=c&&0<c.length&&(f=c[0].iconUrl,e=c[0].name||c[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));c=new mxCell(e,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=f?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+f:"spacing=10;"));c.vertex=!0;f=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry([c],!0));c.geometry.x=f.x;c.geometry.y=f.y;
-d.setAttributeForCell(c,"linkTarget",b);d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.getModel().beginUpdate();try{c=d.addCell(c),d.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{d.getModel().endUpdate()}d.setSelectionCell(c);d.scrollCellToVisible(d.getSelectionCell())}},!0)})).isEnabled=n;this.addAction("link...",mxUtils.bind(this,function(){if(d.isEnabled())if(d.cellEditor.isContentEditing()){var a=d.getSelectedElement(),c=d.getParentByName(a,"A",d.cellEditor.textarea),f="";
-if(null==c&&null!=a&&null!=a.getElementsByTagName)for(var e=a.getElementsByTagName("a"),m=0;m<e.length&&null==c;m++)e[m].textContent==a.textContent&&(c=e[m]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"",d.selectNode(c));var k=d.cellEditor.saveSelection();b.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(a){d.cellEditor.restoreSelection(k);null!=a&&d.insertLink(a)}))}else d.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=n;
-this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var b=a[c];if(d.getModel().getChildCount(b))d.updateGroupBounds([b],20);else{var e=d.view.getState(b),m=d.getCellGeometry(b);d.getModel().isVertex(b)&&null!=e&&null!=e.text&&null!=m&&d.isWrapping(b)?(m=m.clone(),m.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(b,m)):d.updateCellSize(b)}}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+
-"+Shift+Y");this.addAction("formattedText",function(){d.stopEditing();var a=d.getCommonStyle(d.getSelectionCells()),a="1"==mxUtils.getValue(a,"html","0")?null:"1";d.getModel().beginUpdate();try{for(var c=d.getSelectionCells(),f=0;f<c.length;f++)if(state=d.getView().getState(c[f]),null!=state){var e=mxUtils.getValue(state.style,"html","0");if("1"==e&&null==a){var m=d.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(m=m.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));
-var k=document.createElement("div");k.innerHTML=d.sanitizeHtml(m);m=mxUtils.extractTextWithWhitespace(k.childNodes);d.cellLabelChanged(state.cell,m);d.setCellStyles("html",a,[c[f]])}else"0"==e&&"1"==a&&(m=mxUtils.htmlEntities(d.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(m=m.replace(/\n/g,"<br/>")),d.cellLabelChanged(state.cell,d.sanitizeHtml(m)),d.setCellStyles("html",a,[c[f]]))}b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=
+d.setAttributeForCell(c,"linkTarget",b);d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.getModel().beginUpdate();try{c=d.addCell(c),d.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{d.getModel().endUpdate()}d.setSelectionCell(c);d.scrollCellToVisible(d.getSelectionCell())}},!0)})).isEnabled=l;this.addAction("link...",mxUtils.bind(this,function(){if(d.isEnabled())if(d.cellEditor.isContentEditing()){var a=d.getSelectedElement(),c=d.getParentByName(a,"A",d.cellEditor.textarea),f="";
+if(null==c&&null!=a&&null!=a.getElementsByTagName)for(var e=a.getElementsByTagName("a"),k=0;k<e.length&&null==c;k++)e[k].textContent==a.textContent&&(c=e[k]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"",d.selectNode(c));var p=d.cellEditor.saveSelection();b.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(a){d.cellEditor.restoreSelection(p);null!=a&&d.insertLink(a)}))}else d.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=l;
+this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var b=a[c];if(d.getModel().getChildCount(b))d.updateGroupBounds([b],20);else{var e=d.view.getState(b),k=d.getCellGeometry(b);d.getModel().isVertex(b)&&null!=e&&null!=e.text&&null!=k&&d.isWrapping(b)?(k=k.clone(),k.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(b,k)):d.updateCellSize(b)}}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+
+"+Shift+Y");this.addAction("formattedText",function(){d.stopEditing();var a=d.getCommonStyle(d.getSelectionCells()),a="1"==mxUtils.getValue(a,"html","0")?null:"1";d.getModel().beginUpdate();try{for(var c=d.getSelectionCells(),f=0;f<c.length;f++)if(state=d.getView().getState(c[f]),null!=state){var e=mxUtils.getValue(state.style,"html","0");if("1"==e&&null==a){var k=d.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(k=k.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));
+var p=document.createElement("div");p.innerHTML=d.sanitizeHtml(k);k=mxUtils.extractTextWithWhitespace(p.childNodes);d.cellLabelChanged(state.cell,k);d.setCellStyles("html",a,[c[f]])}else"0"==e&&"1"==a&&(k=mxUtils.htmlEntities(d.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(k=k.replace(/\n/g,"<br/>")),d.cellLabelChanged(state.cell,d.sanitizeHtml(k)),d.setCellStyles("html",a,[c[f]]))}b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=
a?a:"0"],"cells",c))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),c="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(c=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,c)});this.addAction("rotation",function(){var a="0",c=d.getView().getState(d.getSelectionCell());null!=c&&(a=c.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),function(a){null!=a&&0<
a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,"Home");this.addAction("zoomIn",function(a){d.isFastZoomEnabled()?d.lazyZoom(!0,!0,b.buttonZoomDelay):d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(a){d.isFastZoomEnabled()?d.lazyZoom(!1,
!0,b.buttonZoomDelay):d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){var a=d.isSelectionEmpty()?d.getGraphBounds():d.getBoundingBox(d.getSelectionCells()),c=d.view.translate,f=d.view.scale;a.x=a.x/f-c.x;a.y=a.y/f-c.y;a.width/=f;a.height/=f;null!=d.backgroundImage&&a.add(new mxRectangle(0,0,d.backgroundImage.width,d.backgroundImage.height));0==a.width||0==a.height?(d.zoomTo(1),b.resetScrollbars()):(c=Editor.fitWindowBorders,null!=c&&(a.x-=
@@ -2935,15 +2936,15 @@ c.x,a.y-=c.y,a.width+=c.width+c.x,a.height+=c.height+c.y),d.fitWindow(a))},null,
(d.container.scrollWidth-d.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,c=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/c,(d.container.clientHeight-10)/a.height/c))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y,(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=
Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+
"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),mxUtils.bind(this,
-function(a){a=parseInt(a);!isNaN(a)&&0<a&&(a=new ChangePageSetup(b,null,null,null,a/100),a.ignoreColor=!0,a.ignoreImage=!0,d.model.execute(a))}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var l=null,l=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.isGridEnabled()});
-l.setEnabled(!1);l=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});l.setEnabled(!1);l=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled());b.fireEvent(new mxEventObject("tooltipsEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});
-l=this.addAction("collapseExpand",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.foldingEnabled});l.isEnabled=n;l=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.scrollbars});l=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));
-l.setToggleAction(!0);l.setSelectedCallback(function(){return d.pageVisible});l=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionArrowsEnabled});l=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},
-null,null,"Alt+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});l=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});l.isEnabled=n;l=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});l.setToggleAction(!0);
-l.setSelectedCallback(function(){return b.editor.autosave});l.isEnabled=n;l.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var t=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){t||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){t=!1}),t=!0)}));l=mxUtils.bind(this,function(a,c,b,e){return this.addAction(a,function(){if(null!=
+function(a){a=parseInt(a);!isNaN(a)&&0<a&&(a=new ChangePageSetup(b,null,null,null,a/100),a.ignoreColor=!0,a.ignoreImage=!0,d.model.execute(a))}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var m=null,m=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");m.setToggleAction(!0);m.setSelectedCallback(function(){return d.isGridEnabled()});
+m.setEnabled(!1);m=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});m.setEnabled(!1);m=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled());b.fireEvent(new mxEventObject("tooltipsEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});
+m=this.addAction("collapseExpand",function(){var a=new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.foldingEnabled});m.isEnabled=l;m=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.scrollbars});m=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));
+m.setToggleAction(!0);m.setSelectedCallback(function(){return d.pageVisible});m=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");m.setToggleAction(!0);m.setSelectedCallback(function(){return d.connectionArrowsEnabled});m=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},
+null,null,"Alt+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});m=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});m.isEnabled=l;m=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});m.setToggleAction(!0);
+m.setSelectedCallback(function(){return b.editor.autosave});m.isEnabled=l;m.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var u=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){u||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){u=!1}),u=!0)}));m=mxUtils.bind(this,function(a,c,b,e){return this.addAction(a,function(){if(null!=
b&&d.cellEditor.isContentEditing())b();else{d.stopEditing(!1);d.getModel().beginUpdate();try{var a=d.getSelectionCells();d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,c,a);(c&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&d.replaceElement(a)}):(c&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&d.replaceElement(a)}):
-(c&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&d.updateLabelElements(d.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&d.replaceElement(a)});for(var f=0;f<a.length;f++)0==d.model.getChildCount(a[f])&&d.autoSizeCell(a[f],!1)}finally{d.getModel().endUpdate()}}},null,null,e)});l("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");l("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},
-Editor.ctrlKey+"+I");l("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
+(c&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&d.updateLabelElements(d.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&d.replaceElement(a)});for(var f=0;f<a.length;f++)0==d.model.getChildCount(a[f])&&d.autoSizeCell(a[f],!1)}finally{d.getModel().endUpdate()}}},null,null,e)});m("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");m("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},
+Editor.ctrlKey+"+I");m("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,
null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,
mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",
@@ -2952,40 +2953,41 @@ function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUN
"keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",
function(){var a=d.view.getState(d.getSelectionCell()),c="1";null!=a&&null!=d.getFoldingImage(a)&&(c="0");d.setCellStyles("collapsible",c);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[c],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var a=d.getSelectionCells();if(null!=a&&0<a.length){var c=d.getModel(),c=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",c.getStyle(a[0])||"",function(c){null!=c&&d.setCellStyle(mxUtils.trim(c),
a)},null,null,400,220);this.editorUi.showDialog(c.container,420,300,!0,!0);c.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var c=
-e.graph.selectionCellsHandler.getHandler(a);if(c instanceof mxEdgeHandler){for(var b=d.view.translate,g=d.view.scale,m=b.x,b=b.y,a=d.getModel().getParent(a),k=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=k;)m+=k.x,b+=k.y,a=d.getModel().getParent(a),k=d.getCellGeometry(a);m=Math.round(d.snap(d.popupMenuHandler.triggerX/g-m));g=Math.round(d.snap(d.popupMenuHandler.triggerY/g-b));c.addPointAt(c.state,m,g)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=
-a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=d.getSelectionCells();if(null!=a){a=d.addAllEdges(a);d.getModel().beginUpdate();try{for(var c=0;c<a.length;c++){var b=a[c];if(d.getModel().isEdge(b)){var e=d.getCellGeometry(b);null!=e&&(e=e.clone(),e.points=null,e.x=0,e.y=0,e.offset=null,d.getModel().setGeometry(b,e))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");l=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&
-document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");l=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");l=this.addAction("indent",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("indent",!1,null)}),null,null,"Shift+Tab");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+
-" ("+mxResources.get("url")+"):",c=d.getView().getState(d.getSelectionCell()),f="";null!=c&&(f=c.style[mxConstants.STYLE_IMAGE]||f);var e=d.cellEditor.saveSelection();b.showImageDialog(a,f,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(e),d.insertImage(a,c,b);else{var f=d.getSelectionCells();if(null!=a&&(0<a.length||0<f.length)){var g=null;d.getModel().beginUpdate();try{if(0==f.length){var f=[d.insertVertex(d.getDefaultParent(),null,"",0,0,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],
-k=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(f,!0));f[0].geometry.x=k.x;f[0].geometry.y=k.y;g=f;d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,f);var m=d.getCurrentCellStyle(f[0]);"image"!=m[mxConstants.STYLE_SHAPE]&&"label"!=m[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==d.getSelectionCount()&&null!=c&&null!=b){var p=f[0],
-l=d.getModel().getGeometry(p);null!=l&&(l=l.clone(),l.width=c,l.height=b,d.getModel().setGeometry(p,l))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=n;l=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,196),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),
-this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));l=this.addAction("formatPanel",mxUtils.bind(this,
-function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));l=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),
-this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
-Actions.prototype.addAction=function(a,b,e,d,n){var l;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),l=mxResources.get(a)+"..."):l=mxResources.get(a);return this.put(a,new Action(l,b,e,d,n))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};function Action(a,b,e,d,n){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=d;this.shortcut=n;this.visible=!0}
-mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.shadowData=this.data=b||"";this.shadowPages=null;this.created=(new Date).getTime();this.stats={opened:0,merged:0,fileMerged:0,fileReloaded:0,conflicts:0,timeouts:0,saved:0,closed:0,destroyed:0,joined:0,checksumErrors:0,bytesSent:0,bytesReceived:0,msgSent:0,msgReceived:0,cacheHits:0,cacheMiss:0,cacheFail:0}};DrawioFile.SYNC=urlParams.sync||"auto";DrawioFile.LAST_WRITE_WINS=!0;mxUtils.extend(DrawioFile,mxEventSource);
+e.graph.selectionCellsHandler.getHandler(a);if(c instanceof mxEdgeHandler){for(var b=d.view.translate,g=d.view.scale,k=b.x,b=b.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=p;)k+=p.x,b+=p.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);k=Math.round(d.snap(d.popupMenuHandler.triggerX/g-k));g=Math.round(d.snap(d.popupMenuHandler.triggerY/g-b));c.addPointAt(c.state,k,g)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=
+a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(a){var c=d.getSelectionCells();if(null!=c){c=d.addAllEdges(c);d.getModel().beginUpdate();try{for(var b=0;b<c.length;b++){var e=c[b];if(d.getModel().isEdge(e)){var k=d.getCellGeometry(e);mxEvent.isShiftDown(a)?(d.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),d.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),d.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[e]),d.setCellStyles(mxConstants.STYLE_ENTRY_Y,
+null,[e])):null!=k&&(k=k.clone(),k.points=null,k.x=0,k.y=0,k.offset=null,d.getModel().setGeometry(e,k))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");m=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");m=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");
+m=this.addAction("indent",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("indent",!1,null)}),null,null,"Shift+Tab");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",c=d.getView().getState(d.getSelectionCell()),f="";null!=c&&(f=c.style[mxConstants.STYLE_IMAGE]||f);var e=d.cellEditor.saveSelection();b.showImageDialog(a,f,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(e),
+d.insertImage(a,c,b);else{var f=d.getSelectionCells();if(null!=a&&(0<a.length||0<f.length)){var g=null;d.getModel().beginUpdate();try{if(0==f.length){var f=[d.insertVertex(d.getDefaultParent(),null,"",0,0,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],k=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(f,!0));f[0].geometry.x=k.x;f[0].geometry.y=k.y;g=f;d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,
+0<a.length?a:null,f);var p=d.getCurrentCellStyle(f[0]);"image"!=p[mxConstants.STYLE_SHAPE]&&"label"!=p[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==d.getSelectionCount()&&null!=c&&null!=b){var t=f[0],m=d.getModel().getGeometry(t);null!=m&&(m=m.clone(),m.width=c,m.height=b,d.getModel().setGeometry(t,m))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},
+d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=l;m=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,196),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers")),
+this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));m=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));
+m=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),
+null,null,Editor.ctrlKey+"+Shift+O");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,d,l){var m;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),m=mxResources.get(a)+"..."):m=mxResources.get(a);return this.put(a,new Action(m,b,e,d,l))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};
+function Action(a,b,e,d,l){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=d;this.shortcut=l;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};
+Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.shadowData=this.data=b||"";this.shadowPages=null;this.created=(new Date).getTime();this.stats={opened:0,merged:0,fileMerged:0,fileReloaded:0,conflicts:0,timeouts:0,saved:0,closed:0,destroyed:0,joined:0,checksumErrors:0,bytesSent:0,bytesReceived:0,msgSent:0,msgReceived:0,cacheHits:0,cacheMiss:0,cacheFail:0}};DrawioFile.SYNC=urlParams.sync||"auto";DrawioFile.LAST_WRITE_WINS=!0;mxUtils.extend(DrawioFile,mxEventSource);
DrawioFile.prototype.allChangesSavedKey="allChangesSaved";DrawioFile.prototype.savingSpinnerKey="saving";DrawioFile.prototype.savingStatusKey="saving";DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.optimisticSyncDelay=300;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.lastSaved=null;DrawioFile.prototype.lastChanged=null;DrawioFile.prototype.opened=null;DrawioFile.prototype.modified=!1;
DrawioFile.prototype.shadowModified=!1;DrawioFile.prototype.data=null;DrawioFile.prototype.shadowData=null;DrawioFile.prototype.shadowPages=null;DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;DrawioFile.prototype.maxAutosaveRevisionDelay=3E5;DrawioFile.prototype.inConflictState=!1;DrawioFile.prototype.invalidChecksum=!1;DrawioFile.prototype.errorReportsEnabled=!1;DrawioFile.prototype.ageStart=null;
DrawioFile.prototype.getSize=function(){return null!=this.data?this.data.length:0};DrawioFile.prototype.synchronizeFile=function(a,b){this.savingFile?null!=b&&b({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(a,b):this.updateFile(a,b)};
-DrawioFile.prototype.updateFile=function(a,b,e,d){null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():this.getLatestVersion(mxUtils.bind(this,function(n){try{null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():null!=n?this.mergeFile(n,a,b,d):this.reloadFile(a,b))}catch(l){null!=b&&b(l)}}),b))};
-DrawioFile.prototype.mergeFile=function(a,b,e,d){var n=!0;try{this.stats.fileMerged++;var l=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),t=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=t&&0<t.length){this.shadowPages=t;this.backupPatch=this.isModified()?this.ui.diffPages(l,this.ui.pages):null;var q=[this.ui.diffPages(null!=d?d:l,this.shadowPages)];if(!this.ignorePatches(q)){var c=this.ui.patchPages(l,
-q[0]);d={};var f=this.ui.getHashValueForPages(c,d),l={},g=this.ui.getHashValueForPages(this.shadowPages,l);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",q,"checksum",g==f,f);if(null!=f&&f!=g){var m=this.compressReportData(this.getAnonymizedXmlForPages(t)),k=this.compressReportData(this.getAnonymizedXmlForPages(c)),p=this.ui.hashValue(a.getCurrentEtag()),u=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,q,"Shadow Details: "+JSON.stringify(d)+
-"\nChecksum: "+f+"\nCurrent: "+g+"\nCurrent Details: "+JSON.stringify(l)+"\nFrom: "+p+"\nTo: "+u+"\n\nFile Data:\n"+m+"\nPatched Shadow:\n"+k,null,"mergeFile");return}this.patch(q,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw n=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=b&&b()}catch(z){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
-null!=e&&e(z);try{if(n)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,z);else{var A=this.getCurrentUser(),F=null!=A?A.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),F,z)}}catch(y){}}};
-DrawioFile.prototype.getAnonymizedXmlForPages=function(a){var b=new mxCodec(mxUtils.createXmlDocument()),e=b.document.createElement("mxfile");if(null!=a)for(var d=0;d<a.length;d++){var n=b.encode(new mxGraphModel(a[d].root));"1"!=urlParams.dev&&(n=this.ui.anonymizeNode(n,!0));n.setAttribute("id",a[d].getId());a[d].viewState&&this.ui.editor.graph.saveViewState(a[d].viewState,n,!0);e.appendChild(n)}return mxUtils.getPrettyXml(e)};
+DrawioFile.prototype.updateFile=function(a,b,e,d){null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():this.getLatestVersion(mxUtils.bind(this,function(l){try{null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=b&&b():null!=l?this.mergeFile(l,a,b,d):this.reloadFile(a,b))}catch(m){null!=b&&b(m)}}),b))};
+DrawioFile.prototype.mergeFile=function(a,b,e,d){var l=!0;try{this.stats.fileMerged++;var m=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),u=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=u&&0<u.length){this.shadowPages=u;this.backupPatch=this.isModified()?this.ui.diffPages(m,this.ui.pages):null;var q=[this.ui.diffPages(null!=d?d:m,this.shadowPages)];if(!this.ignorePatches(q)){var c=this.ui.patchPages(m,
+q[0]);d={};var f=this.ui.getHashValueForPages(c,d),m={},g=this.ui.getHashValueForPages(this.shadowPages,m);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",q,"checksum",g==f,f);if(null!=f&&f!=g){var k=this.compressReportData(this.getAnonymizedXmlForPages(u)),p=this.compressReportData(this.getAnonymizedXmlForPages(c)),t=this.ui.hashValue(a.getCurrentEtag()),v=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,q,"Shadow Details: "+JSON.stringify(d)+
+"\nChecksum: "+f+"\nCurrent: "+g+"\nCurrent Details: "+JSON.stringify(m)+"\nFrom: "+t+"\nTo: "+v+"\n\nFile Data:\n"+k+"\nPatched Shadow:\n"+p,null,"mergeFile");return}this.patch(q,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw l=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(a.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=b&&b()}catch(y){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
+null!=e&&e(y);try{if(l)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,y);else{var A=this.getCurrentUser(),F=null!=A?A.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),F,y)}}catch(z){}}};
+DrawioFile.prototype.getAnonymizedXmlForPages=function(a){var b=new mxCodec(mxUtils.createXmlDocument()),e=b.document.createElement("mxfile");if(null!=a)for(var d=0;d<a.length;d++){var l=b.encode(new mxGraphModel(a[d].root));"1"!=urlParams.dev&&(l=this.ui.anonymizeNode(l,!0));l.setAttribute("id",a[d].getId());a[d].viewState&&this.ui.editor.graph.saveViewState(a[d].viewState,l,!0);e.appendChild(l)}return mxUtils.getPrettyXml(e)};
DrawioFile.prototype.compressReportData=function(a,b,e){b=null!=b?b:1E4;null!=e&&null!=a&&a.length>e?a=a.substring(0,e)+"[...]":null!=a&&a.length>b&&(a=Graph.compress(a)+"\n");return a};
-DrawioFile.prototype.checksumError=function(a,b,e,d,n){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=b)for(a=0;a<b.length;a++)this.ui.anonymizePatch(b[a]);var l=mxUtils.bind(this,function(a){var c=this.compressReportData(JSON.stringify(b,null,2));a=null!=a?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement)),
-25E3):"n/a";this.sendErrorReport("Checksum Error in "+n+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+c+(null!=a?"\n\nRemote:\n"+a:""),null,7E4)});null==d?l(null):this.getLatestVersion(mxUtils.bind(this,function(a){null!=a&&a.getCurrentEtag()==d?l(a):l(null)}),function(){})}else{var t=this.getCurrentUser(),q=null!=t?t.id:"unknown";EditorUi.logError("Checksum Error in "+n+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+q+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync"));
-try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:n,label:"user_"+q+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")})}catch(c){}}}catch(c){}};
-DrawioFile.prototype.sendErrorReport=function(a,b,e,d){try{var n=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),l=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),t=this.getCurrentUser(),q=null!=t?this.ui.hashValue(t.id):"unknown",c=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",f=this.getTitle(),g=f.lastIndexOf("."),t="xml";0<g&&(t=f.substring(g));var m=null!=e?e.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
-":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+t+")\nUser="+q+c+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=b?"\n\n"+b:
-"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+m+"\n\nShadow:\n"+n+"\n\nData:\n"+l,d)}catch(k){}};
-DrawioFile.prototype.reloadFile=function(a,b){try{this.ui.spinner.stop();var e=mxUtils.bind(this,function(){this.stats.fileReloaded++;var b=this.ui.editor.graph.getViewState(),e=this.ui.editor.graph.getSelectionCells(),l=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(l,b,e);null!=this.backupPatch&&this.patch([this.backupPatch]);var d=this.ui.getCurrentFile();null!=d&&(d.stats=this.stats);null!=a&&
+DrawioFile.prototype.checksumError=function(a,b,e,d,l){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=b)for(a=0;a<b.length;a++)this.ui.anonymizePatch(b[a]);var m=mxUtils.bind(this,function(a){var c=this.compressReportData(JSON.stringify(b,null,2));a=null!=a?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement)),
+25E3):"n/a";this.sendErrorReport("Checksum Error in "+l+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+c+(null!=a?"\n\nRemote:\n"+a:""),null,7E4)});null==d?m(null):this.getLatestVersion(mxUtils.bind(this,function(a){null!=a&&a.getCurrentEtag()==d?m(a):m(null)}),function(){})}else{var u=this.getCurrentUser(),q=null!=u?u.id:"unknown";EditorUi.logError("Checksum Error in "+l+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+q+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync"));
+try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:l,label:"user_"+q+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")})}catch(c){}}}catch(c){}};
+DrawioFile.prototype.sendErrorReport=function(a,b,e,d){try{var l=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),m=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),u=this.getCurrentUser(),q=null!=u?this.ui.hashValue(u.id):"unknown",c=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",f=this.getTitle(),g=f.lastIndexOf("."),u="xml";0<g&&(u=f.substring(g));var k=null!=e?e.stack:Error().stack;EditorUi.sendReport(a+" "+(new Date).toISOString()+
+":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+u+")\nUser="+q+c+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=b?"\n\n"+b:
+"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+k+"\n\nShadow:\n"+l+"\n\nData:\n"+m,d)}catch(p){}};
+DrawioFile.prototype.reloadFile=function(a,b){try{this.ui.spinner.stop();var e=mxUtils.bind(this,function(){this.stats.fileReloaded++;var b=this.ui.editor.graph.getViewState(),e=this.ui.editor.graph.getSelectionCells(),m=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(m,b,e);null!=this.backupPatch&&this.patch([this.backupPatch]);var d=this.ui.getCurrentFile();null!=d&&(d.stats=this.stats);null!=a&&
a()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.handleFileSuccess("manual"==DrawioFile.SYNC)}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}catch(d){null!=b&&b(d)}};DrawioFile.prototype.copyFile=function(a,b){this.ui.editor.editAsNew(this.ui.getFileData(!0),this.ui.getCopyFilename(this))};
DrawioFile.prototype.ignorePatches=function(a){for(var b=!0,e=0;e<a.length&&b;e++)b=b&&0==Object.keys(a[e]).length;return b};
-DrawioFile.prototype.patch=function(a,b,e){var d=this.ui.editor.undoManager,n=d.history.slice(),l=d.indexOfNextAdd,t=this.ui.editor.graph;t.container.style.visibility="hidden";var q=this.changeListenerEnabled;this.changeListenerEnabled=e;var c=t.foldingEnabled,f=t.mathEnabled,g=t.cellRenderer.redraw;t.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());g.apply(this,arguments)};t.model.beginUpdate();try{for(var m=
-0;m<a.length;m++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[m],!0,b,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{t.container.style.visibility="";t.model.endUpdate();t.cellRenderer.redraw=g;this.changeListenerEnabled=q;e||(d.history=n,d.indexOfNextAdd=l,d.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)f!=
-t.mathEnabled?(this.ui.editor.updateGraphComponents(),t.refresh()):(c!=t.foldingEnabled?t.view.revalidate():t.view.validate(),t.sizeDidChange());this.ui.updateTabContainer()}};
-DrawioFile.prototype.save=function(a,b,e,d,n,l){try{if(this.isEditable())if(!n&&this.invalidChecksum)if(null!=e)e({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=b&&b();else if(null!=e)e({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(t){if(null!=e)e(t);else throw t;}};
+DrawioFile.prototype.patch=function(a,b,e){var d=this.ui.editor.undoManager,l=d.history.slice(),m=d.indexOfNextAdd,u=this.ui.editor.graph;u.container.style.visibility="hidden";var q=this.changeListenerEnabled;this.changeListenerEnabled=e;var c=u.foldingEnabled,f=u.mathEnabled,g=u.cellRenderer.redraw;u.cellRenderer.redraw=function(a){a.view.graph.isEditing(a.cell)&&(a.view.graph.scrollCellToVisible(a.cell),a.view.graph.cellEditor.resize());g.apply(this,arguments)};u.model.beginUpdate();try{for(var k=
+0;k<a.length;k++)this.ui.pages=this.ui.patchPages(this.ui.pages,a[k],!0,b,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{u.container.style.visibility="";u.model.endUpdate();u.cellRenderer.redraw=g;this.changeListenerEnabled=q;e||(d.history=l,d.indexOfNextAdd=m,d.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)f!=
+u.mathEnabled?(this.ui.editor.updateGraphComponents(),u.refresh()):(c!=u.foldingEnabled?u.view.revalidate():u.view.validate(),u.sizeDidChange());this.ui.updateTabContainer()}};
+DrawioFile.prototype.save=function(a,b,e,d,l,m){try{if(this.isEditable())if(!l&&this.invalidChecksum)if(null!=e)e({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=b&&b();else if(null!=e)e({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(u){if(null!=e)e(u);else throw u;}};
DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed()))};DrawioFile.prototype.isCompressedStorage=function(){return!0};DrawioFile.prototype.isCompressed=function(){var a=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=a?"false"!=a:this.isCompressedStorage()&&Editor.compressXml};DrawioFile.prototype.saveAs=function(a,b,e){};DrawioFile.prototype.saveFile=function(a,b,e,d){};
DrawioFile.prototype.getPublicUrl=function(a){a(null)};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.getShadowModified=function(){return this.shadowModified};DrawioFile.prototype.setShadowModified=function(a){this.shadowModified=a};DrawioFile.prototype.setModified=function(a){this.shadowModified=this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};
DrawioFile.prototype.isAutosave=function(){return!this.inConflictState&&this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,b,e){};DrawioFile.prototype.isMovable=function(){return!1};DrawioFile.prototype.isTrashed=function(){return!1};DrawioFile.prototype.move=function(a,b,e){};DrawioFile.prototype.share=function(){this.ui.alert(mxResources.get("sharingAvailable"),null,380)};DrawioFile.prototype.getHash=function(){return""};
@@ -3011,32 +3013,32 @@ DrawioFile.prototype.showRefreshDialog=function(a,b,e){null==e&&(e=mxResources.g
b)}),null,mxResources.get("synchronize"),mxUtils.bind(this,function(){this.reloadFile(a,b)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150))};
DrawioFile.prototype.showCopyDialog=function(a,b,e){this.invalidChecksum=this.inConflictState=!1;this.addUnsavedStatus();this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedOverwriteDialog"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.copyFile(a,b)}),null,mxResources.get("overwrite"),e,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150)};
DrawioFile.prototype.showConflictDialog=function(a,b){this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedSyncDialog"),mxResources.get("overwrite"),a,null,mxResources.get("synchronize"),b,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog();this.handleFileError(null,!1)}),340,150)};
-DrawioFile.prototype.redirectToNewApp=function(a,b){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var e=window.location.protocol+"//"+window.location.host+"/"+this.ui.getSearch("create title mode url drive splash state".split(" "))+"#"+this.getHash(),d=mxResources.get("redirectToNewApp");null!=b&&(d+=" ("+b+")");var n=mxUtils.bind(this,function(){var b=mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href==e?window.location.reload():
-window.location.href=e});null==a&&this.isModified()?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1}),b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});null!=a?this.isModified()?this.ui.confirm(d,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()}),n,mxResources.get("cancel"),mxResources.get("discardChanges")):this.ui.confirm(d,n,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()})):this.ui.alert(mxResources.get("redirectToNewApp"),
-n)}};DrawioFile.prototype.handleFileSuccess=function(a){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.isModified()?this.fileChanged():a?(this.isTrashed()?this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey))+" ("+mxUtils.htmlEntities(mxResources.get("fileMovedToTrash"))+")"):this.addAllSavedStatus(),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.editor.setStatus(""))};
+DrawioFile.prototype.redirectToNewApp=function(a,b){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var e=window.location.protocol+"//"+window.location.host+"/"+this.ui.getSearch("create title mode url drive splash state".split(" "))+"#"+this.getHash(),d=mxResources.get("redirectToNewApp");null!=b&&(d+=" ("+b+")");var l=mxUtils.bind(this,function(){var b=mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href==e?window.location.reload():
+window.location.href=e});null==a&&this.isModified()?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1}),b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});null!=a?this.isModified()?this.ui.confirm(d,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()}),l,mxResources.get("cancel"),mxResources.get("discardChanges")):this.ui.confirm(d,l,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()})):this.ui.alert(mxResources.get("redirectToNewApp"),
+l)}};DrawioFile.prototype.handleFileSuccess=function(a){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.isModified()?this.fileChanged():a?(this.isTrashed()?this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey))+" ("+mxUtils.htmlEntities(mxResources.get("fileMovedToTrash"))+")"):this.addAllSavedStatus(),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.editor.setStatus(""))};
DrawioFile.prototype.handleFileError=function(a,b){this.ui.spinner.stop();if(this.ui.getCurrentFile()==this)if(this.inConflictState)this.handleConflictError(a,b);else if(this.isModified()&&this.addUnsavedStatus(a),b)this.ui.handleError(a,null!=a?mxResources.get("errorSavingFile"):null);else if(!this.isModified()){var e=this.getErrorMessage(a);null!=e&&60<e.length&&(e=e.substring(0,60)+"...");this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("error"))+
(null!=e?" ("+mxUtils.htmlEntities(e)+")":"")+"</div>")}};
-DrawioFile.prototype.handleConflictError=function(a,b){var e=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),d=mxUtils.bind(this,function(a){this.handleFileError(a,!0)}),n=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&(this.ui.editor.setStatus(""),this.save(!0,e,d,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage))}),l=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,
-mxResources.get("updatingDocument"))&&this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&this.save(!0,e,d,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage)}),d)});"none"==DrawioFile.SYNC?this.showCopyDialog(e,d,n):this.invalidChecksum?this.showRefreshDialog(e,d,this.getErrorMessage(a)):b?this.showConflictDialog(n,l):this.addConflictStatus(mxUtils.bind(this,
+DrawioFile.prototype.handleConflictError=function(a,b){var e=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),d=mxUtils.bind(this,function(a){this.handleFileError(a,!0)}),l=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&(this.ui.editor.setStatus(""),this.save(!0,e,d,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage))}),m=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,
+mxResources.get("updatingDocument"))&&this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&this.save(!0,e,d,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage)}),d)});"none"==DrawioFile.SYNC?this.showCopyDialog(e,d,l):this.invalidChecksum?this.showRefreshDialog(e,d,this.getErrorMessage(a)):b?this.showConflictDialog(l,m):this.addConflictStatus(mxUtils.bind(this,
function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingDocument")));this.synchronizeFile(e,d)}),this.getErrorMessage(a))};DrawioFile.prototype.getErrorMessage=function(a){var b=null!=a?null!=a.error?a.error.message:a.message:null;null==b&&null!=a&&a.code==App.ERROR_TIMEOUT&&(b=mxResources.get("timeout"));return b};DrawioFile.prototype.isOverdue=function(){return null!=this.ageStart&&Date.now()-this.ageStart.getTime()>=this.ui.warnInterval};
DrawioFile.prototype.fileChanged=function(){this.lastChanged=new Date;this.setModified(!0);this.isAutosave()?(null!=this.savingStatusKey&&this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.savingStatusKey))+"..."),this.ui.scheduleSanityCheck(),null==this.ageStart&&(this.ageStart=new Date),this.sendFileChanges(),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){this.ui.stopSanityCheck();null==this.autosaveThread?(this.handleFileSuccess(!0),this.ageStart=
null):this.isModified()&&(this.ui.scheduleSanityCheck(),this.ageStart=this.lastChanged)}),mxUtils.bind(this,function(a){this.handleFileError(a)}))):(this.ageStart=null,this.isAutosaveOptional()&&this.ui.editor.autosave||this.inConflictState||this.addUnsavedStatus())};DrawioFile.prototype.isOptimisticSync=function(){return!1};
DrawioFile.prototype.createSecret=function(a){var b=Editor.guid(32);null==this.sync||this.isOptimisticSync()?a(b):this.sync.createToken(b,mxUtils.bind(this,function(e){a(b,e)}),mxUtils.bind(this,function(){a(b)}))};DrawioFile.prototype.fileSaving=function(){null!=this.sync&&this.isOptimisticSync()&&this.sync.fileSaving();"1"==urlParams.test&&EditorUi.debug("DrawioFile.fileSaving",[this])};
DrawioFile.prototype.sendFileChanges=function(){try{null!=this.p2pCollab&&null!=this.sync&&(this.updateFileData(),this.sync.sendFileChanges(this.ui.getPagesForNode(mxUtils.parseXml(this.getData()).documentElement),this.desc),"1"==urlParams.test&&EditorUi.debug("DrawioFile.sendFileChanges",[this]))}catch(a){console.log(a)}};
-DrawioFile.prototype.fileSaved=function(a,b,e,d,n){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++,this.invalidChecksum=this.inConflictState=!1,null==this.sync||this.isOptimisticSync()?(this.shadowData=a,this.shadowPages=null,null!=this.sync&&(this.sync.lastModified=this.getLastModifiedDate(),this.sync.resetUpdateStatusThread()),null!=e&&e()):this.sync.fileSaved(this.ui.getPagesForNode(mxUtils.parseXml(a).documentElement),b,e,d,n)}catch(q){this.invalidChecksum=this.inConflictState=
-!0;this.descriptorChanged();null!=d&&d(q);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,q);else{var l=this.getCurrentUser(),t=null!=l?l.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),t,q)}}catch(c){}}"1"==urlParams.test&&EditorUi.debug("DrawioFile.fileSaved",[this])};
-DrawioFile.prototype.autosave=function(a,b,e,d){null==this.lastAutosave&&(this.lastAutosave=Date.now());a=Date.now()-this.lastAutosave<b?a:0;this.clearAutosave();var n=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThread==n&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=e&&e(a)}),mxUtils.bind(this,
-function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),a);this.autosaveThread=n};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};
+DrawioFile.prototype.fileSaved=function(a,b,e,d,l){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++,this.invalidChecksum=this.inConflictState=!1,null==this.sync||this.isOptimisticSync()?(this.shadowData=a,this.shadowPages=null,null!=this.sync&&(this.sync.lastModified=this.getLastModifiedDate(),this.sync.resetUpdateStatusThread()),null!=e&&e()):this.sync.fileSaved(this.ui.getPagesForNode(mxUtils.parseXml(a).documentElement),b,e,d,l)}catch(q){this.invalidChecksum=this.inConflictState=
+!0;this.descriptorChanged();null!=d&&d(q);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,q);else{var m=this.getCurrentUser(),u=null!=m?m.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),u,q)}}catch(c){}}"1"==urlParams.test&&EditorUi.debug("DrawioFile.fileSaved",[this])};
+DrawioFile.prototype.autosave=function(a,b,e,d){null==this.lastAutosave&&(this.lastAutosave=Date.now());a=Date.now()-this.lastAutosave<b?a:0;this.clearAutosave();var l=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThread==l&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=e&&e(a)}),mxUtils.bind(this,
+function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),a);this.autosaveThread=l};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};
DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};
DrawioFile.prototype.close=function(a){this.updateFileData();this.stats.closed++;this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,b){if(null!=a&&null!=b){var e=a.lastIndexOf("."),d=0<e?a.substring(e):"",e=b.lastIndexOf(".");return d===(0<e?b.substring(e):"")}return a==b};
DrawioFile.prototype.removeListeners=function(){null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};DrawioFile.prototype.destroy=function(){this.clearAutosave();this.removeListeners();this.stats.destroyed++;null!=this.sync&&(this.sync.destroy(),this.sync=null)};DrawioFile.prototype.commentsSupported=function(){return!1};
-DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.prototype.commentsSaveNeeded=function(){return!1};DrawioFile.prototype.getComments=function(a,b){a([])};DrawioFile.prototype.addComment=function(a,b,e){b(Date.now())};DrawioFile.prototype.canReplyToReplies=function(){return!0};DrawioFile.prototype.canComment=function(){return!0};DrawioFile.prototype.newComment=function(a,b){return new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};LocalFile=function(a,b,e,d,n,l){DrawioFile.call(this,a,b);this.title=e;this.mode=d?null:App.MODE_DEVICE;this.fileHandle=n;this.desc=l};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return null!=this.fileHandle&&!this.invalidFileHandle&&DrawioFile.prototype.isAutosave.apply(this,arguments)};LocalFile.prototype.isAutosaveOptional=function(){return null!=this.fileHandle};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};
+DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.prototype.commentsSaveNeeded=function(){return!1};DrawioFile.prototype.getComments=function(a,b){a([])};DrawioFile.prototype.addComment=function(a,b,e){b(Date.now())};DrawioFile.prototype.canReplyToReplies=function(){return!0};DrawioFile.prototype.canComment=function(){return!0};DrawioFile.prototype.newComment=function(a,b){return new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};LocalFile=function(a,b,e,d,l,m){DrawioFile.call(this,a,b);this.title=e;this.mode=d?null:App.MODE_DEVICE;this.fileHandle=l;this.desc=m};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return null!=this.fileHandle&&!this.invalidFileHandle&&DrawioFile.prototype.isAutosave.apply(this,arguments)};LocalFile.prototype.isAutosaveOptional=function(){return null!=this.fileHandle};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};
LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,e){this.saveAs(this.title,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)};LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(a){this.desc=a};
LocalFile.prototype.getLatestVersion=function(a,b){null==this.fileHandle?a(null):this.ui.loadFileSystemEntry(this.fileHandle,a,b)};
-LocalFile.prototype.saveFile=function(a,b,e,d,n){a!=this.title&&(this.desc=this.fileHandle=null);this.title=a;n||this.updateFileData();var l=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var t=this.getData(),q=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),c=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var b=mxUtils.bind(this,
-function(a){this.savingFile=!1;null!=d&&d({error:a})});this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(d){this.invalidFileHandle=null;this.desc.lastModified==d.lastModified?a.write(l?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){var c=this.desc;this.savingFile=!1;this.desc=a;this.fileSaved(t,
-c,q,b)}),b)}),b)}),b):(this.inConflictState=!0,b())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;b(a)}))}),b)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,a,l?"image/png":"text/xml",l);else if(c.length<MAX_REQUEST_SIZE){var f=a.lastIndexOf("."),f=0<f?a.substring(f+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+f+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(a)+(l?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},
-mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));q()}});l?(b=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){c(a)}),d,this.ui.getCurrentFile()!=this?t:null,b.scale,b.border)):c(t)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
+LocalFile.prototype.saveFile=function(a,b,e,d,l){a!=this.title&&(this.desc=this.fileHandle=null);this.title=a;l||this.updateFileData();var m=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var u=this.getData(),q=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),c=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var b=mxUtils.bind(this,
+function(a){this.savingFile=!1;null!=d&&d({error:a})});this.fileHandle.createWritable().then(mxUtils.bind(this,function(a){this.fileHandle.getFile().then(mxUtils.bind(this,function(d){this.invalidFileHandle=null;this.desc.lastModified==d.lastModified?a.write(m?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){a.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(a){var c=this.desc;this.savingFile=!1;this.desc=a;this.fileSaved(u,
+c,q,b)}),b)}),b)}),b):(this.inConflictState=!0,b())}),mxUtils.bind(this,function(a){this.invalidFileHandle=!0;b(a)}))}),b)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,a,m?"image/png":"text/xml",m);else if(c.length<MAX_REQUEST_SIZE){var f=a.lastIndexOf("."),f=0<f?a.substring(f+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+f+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(a)+(m?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},
+mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));q()}});m?(b=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){c(a)}),d,this.ui.getCurrentFile()!=this?u:null,b.scale,b.border)):c(u)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
{description:"diagramXmlDesc",extension:"xml",mimeType:"text/xml"}];Editor.prototype.libraryFileTypes=[{description:"Library (.drawiolib, .xml)",extensions:["drawiolib","xml"]}];Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.styles=[{},{commonStyle:{fontColor:"#5C5C5C",strokeColor:"#006658",fillColor:"#21C0A5"}},{commonStyle:{fontColor:"#095C86",strokeColor:"#AF45ED",fillColor:"#F694C1"},edgeStyle:{strokeColor:"#60E696"}},
{commonStyle:{fontColor:"#46495D",strokeColor:"#788AA3",fillColor:"#B2C9AB"}},{commonStyle:{fontColor:"#5AA9E6",strokeColor:"#FF6392",fillColor:"#FFE45E"}},{commonStyle:{fontColor:"#1D3557",strokeColor:"#457B9D",fillColor:"#A8DADC"},graph:{background:"#F1FAEE"}},{commonStyle:{fontColor:"#393C56",strokeColor:"#E07A5F",fillColor:"#F2CC8F"},graph:{background:"#F4F1DE",gridColor:"#D4D0C0"}},{commonStyle:{fontColor:"#143642",strokeColor:"#0F8B8D",fillColor:"#FAE5C7"},edgeStyle:{strokeColor:"#A8201A"},
graph:{background:"#DAD2D8",gridColor:"#ABA4A9"}},{commonStyle:{fontColor:"#FEFAE0",strokeColor:"#DDA15E",fillColor:"#BC6C25"},graph:{background:"#283618",gridColor:"#48632C"}},{commonStyle:{fontColor:"#E4FDE1",strokeColor:"#028090",fillColor:"#F45B69"},graph:{background:"#114B5F",gridColor:"#0B3240"}},{},{vertexStyle:{strokeColor:"#D0CEE2",fillColor:"#FAD9D5"},edgeStyle:{strokeColor:"#09555B"},commonStyle:{fontColor:"#1A1A1A"}},{vertexStyle:{strokeColor:"#BAC8D3",fillColor:"#09555B",fontColor:"#EEEEEE"},
@@ -3078,8 +3080,8 @@ type:"bool",defVal:!0,isVisible:function(a,c){return 1==a.vertices.length&&0==a.
dispName:"Edit Dialog",type:"bool",defVal:!1},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"movableLabel",dispName:"Movable Label",type:"bool",defVal:!1,isVisible:function(a,c){var b=0<a.vertices.length?c.editorUi.editor.graph.getCellGeometry(a.vertices[0]):null;return null!=b&&!b.relative}},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",
defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",defVal:!1},{name:"pointerEvents",dispName:"Pointer Events",type:"bool",defVal:!0,isVisible:function(a,c){var b=mxUtils.getValue(a.style,
mxConstants.STYLE_FILLCOLOR,null);return c.editorUi.editor.graph.isSwimlane(a.vertices[0])||null==b||b==mxConstants.NONE}},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(a,c){return 0<a.vertices.length&&c.editorUi.editor.graph.isContainer(a.vertices[0])}}].concat(Editor.commonProperties);Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nTessa Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n';
-Editor.createRoughCanvas=function(a){var c=rough.canvas({getContext:function(){return a}});c.draw=function(c){var b=c.sets||[];c=c.options||this.getDefaultOptions();for(var d=0;d<b.length;d++){var f=b[d];switch(f.type){case "path":null!=c.stroke&&this._drawToContext(a,f,c);break;case "fillPath":this._drawToContext(a,f,c);break;case "fillSketch":this.fillSketch(a,f,c)}}};c.fillSketch=function(c,b,d){var f=a.state.strokeColor,e=a.state.strokeWidth,g=a.state.strokeAlpha,k=a.state.dashed,m=d.fillWeight;
-0>m&&(m=d.strokeWidth/2);a.setStrokeAlpha(a.state.fillAlpha);a.setStrokeColor(d.fill||"");a.setStrokeWidth(m);a.setDashed(!1);this._drawToContext(c,b,d);a.setDashed(k);a.setStrokeWidth(e);a.setStrokeColor(f);a.setStrokeAlpha(g)};c._drawToContext=function(a,c,b){a.begin();for(var d=0;d<c.ops.length;d++){var f=c.ops[d],e=f.data;switch(f.op){case "move":a.moveTo(e[0],e[1]);break;case "bcurveTo":a.curveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case "lineTo":a.lineTo(e[0],e[1])}}a.end();"fillPath"===c.type&&
+Editor.createRoughCanvas=function(a){var c=rough.canvas({getContext:function(){return a}});c.draw=function(c){var b=c.sets||[];c=c.options||this.getDefaultOptions();for(var d=0;d<b.length;d++){var f=b[d];switch(f.type){case "path":null!=c.stroke&&this._drawToContext(a,f,c);break;case "fillPath":this._drawToContext(a,f,c);break;case "fillSketch":this.fillSketch(a,f,c)}}};c.fillSketch=function(c,b,d){var f=a.state.strokeColor,e=a.state.strokeWidth,g=a.state.strokeAlpha,n=a.state.dashed,k=d.fillWeight;
+0>k&&(k=d.strokeWidth/2);a.setStrokeAlpha(a.state.fillAlpha);a.setStrokeColor(d.fill||"");a.setStrokeWidth(k);a.setDashed(!1);this._drawToContext(c,b,d);a.setDashed(n);a.setStrokeWidth(e);a.setStrokeColor(f);a.setStrokeAlpha(g)};c._drawToContext=function(a,c,b){a.begin();for(var d=0;d<c.ops.length;d++){var f=c.ops[d],e=f.data;switch(f.op){case "move":a.moveTo(e[0],e[1]);break;case "bcurveTo":a.curveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case "lineTo":a.lineTo(e[0],e[1])}}a.end();"fillPath"===c.type&&
b.filled?a.fill():a.stroke()};return c};(function(){function a(c,b,d){this.canvas=c;this.rc=b;this.shape=d;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,a.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,a.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,a.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=
mxUtils.bind(this,a.prototype.roundrect);this.originalEllipse=this.canvas.ellipse;this.canvas.ellipse=mxUtils.bind(this,a.prototype.ellipse);this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,a.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,a.prototype.moveTo);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,a.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,
a.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,a.prototype.arcTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,a.prototype.close);this.originalFill=this.canvas.fill;this.canvas.fill=mxUtils.bind(this,a.prototype.fill);this.originalStroke=this.canvas.stroke;this.canvas.stroke=mxUtils.bind(this,a.prototype.stroke);this.originalFillAndStroke=this.canvas.fillAndStroke;this.canvas.fillAndStroke=mxUtils.bind(this,a.prototype.fillAndStroke);
@@ -3089,9 +3091,9 @@ f=null;(b.filled=c)?(b.fill="none"===this.canvas.state.fillColor?"":this.canvas.
e);e=mxUtils.getValue(this.shape.style,"fillWeight",-1);b.fillWeight="auto"==e?-1:e;e=mxUtils.getValue(this.shape.style,"fillStyle","auto");"auto"==e&&(e=null!=this.shape.state?this.shape.state.view.graph.defaultPageBackgroundColor:"#ffffff",e=null!=b.fill&&(null!=f||null!=e&&b.fill.toLowerCase()==e.toLowerCase())?"solid":d.fillStyle);b.fillStyle=e;return b};a.prototype.begin=function(){this.passThrough?this.originalBegin.apply(this.canvas,arguments):this.path=[]};a.prototype.end=function(){this.passThrough&&
this.originalEnd.apply(this.canvas,arguments)};a.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var a=2;a<arguments.length;a+=2)this.lastX=arguments[a-1],this.lastY=arguments[a],this.path.push(this.canvas.format(this.lastX)),this.path.push(this.canvas.format(this.lastY))};a.prototype.lineTo=function(a,c){this.passThrough?this.originalLineTo.apply(this.canvas,arguments):(this.addOp(this.lineOp,a,c),this.lastX=a,this.lastY=c)};a.prototype.moveTo=
function(a,c){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,a,c),this.lastX=a,this.lastY=c,this.firstX=a,this.firstY=c)};a.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};a.prototype.quadTo=function(a,c,b,d){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,a,c,b,d),this.lastX=b,this.lastY=d)};a.prototype.curveTo=function(a,c,b,d,f,e){this.passThrough?
-this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,a,c,b,d,f,e),this.lastX=f,this.lastY=e)};a.prototype.arcTo=function(a,c,b,d,f,e,g){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var k=mxUtils.arcToCurves(this.lastX,this.lastY,a,c,b,d,f,e,g);if(null!=k)for(var m=0;m<k.length;m+=6)this.curveTo(k[m],k[m+1],k[m+2],k[m+3],k[m+4],k[m+5]);this.lastX=e;this.lastY=g}};a.prototype.rect=function(a,c,b,d){this.passThrough?this.originalRect.apply(this.canvas,
+this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,a,c,b,d,f,e),this.lastX=f,this.lastY=e)};a.prototype.arcTo=function(a,c,b,d,f,e,g){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var k=mxUtils.arcToCurves(this.lastX,this.lastY,a,c,b,d,f,e,g);if(null!=k)for(var n=0;n<k.length;n+=6)this.curveTo(k[n],k[n+1],k[n+2],k[n+3],k[n+4],k[n+5]);this.lastX=e;this.lastY=g}};a.prototype.rect=function(a,c,b,d){this.passThrough?this.originalRect.apply(this.canvas,
arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(a,c,b,d,this.getStyle(!0,!0)))};a.prototype.ellipse=function(a,c,b,d){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(a+b/2,c+d/2,b,d,this.getStyle(!0,!0)))};a.prototype.roundrect=function(a,c,b,d,f,e){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):(this.begin(),this.moveTo(a+f,c),this.lineTo(a+b-f,c),this.quadTo(a+b,c,a+b,c+e),this.lineTo(a+
-b,c+d-e),this.quadTo(a+b,c+d,a+b-f,c+d),this.lineTo(a+f,c+d),this.quadTo(a,c+d,a,c+d-e),this.lineTo(a,c+e),this.quadTo(a,c,a+f,c))};a.prototype.drawPath=function(a){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),a)}catch(Z){}this.passThrough=!1}else if(null!=this.nextShape){for(var c in a)this.nextShape.options[c]=a[c];null==a.stroke&&delete this.nextShape.options.stroke;a.filled||delete this.nextShape.options.fill;this.passThrough=!0;this.rc.draw(this.nextShape);
+b,c+d-e),this.quadTo(a+b,c+d,a+b-f,c+d),this.lineTo(a+f,c+d),this.quadTo(a,c+d,a,c+d-e),this.lineTo(a,c+e),this.quadTo(a,c,a+f,c))};a.prototype.drawPath=function(a){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),a)}catch(Y){}this.passThrough=!1}else if(null!=this.nextShape){for(var c in a)this.nextShape.options[c]=a[c];null==a.stroke&&delete this.nextShape.options.stroke;a.filled||delete this.nextShape.options.fill;this.passThrough=!0;this.rc.draw(this.nextShape);
this.passThrough=!1}};a.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};a.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};a.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!0))};a.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;
this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;this.canvas.rect=this.originalRect;this.canvas.ellipse=this.originalEllipse;
this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(c){return new a(c,Editor.createRoughCanvas(c),this)};var c=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(a){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0")?c.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(a):this.createRoughCanvas(a)};var b=mxShape.prototype.paint;
@@ -3102,58 +3104,58 @@ f=[];if(null!=d&&0<d.length)for(var e=0;e<d.length;e++)if("mxgraph"==d[e].getAtt
d.charAt(0)&&"%"!=d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d)),null!=d&&0<d.length)a=mxUtils.parseXml(d).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==a||c||(f=null,"diagram"==a.nodeName?f=a:"mxfile"==a.nodeName&&(d=a.getElementsByTagName("diagram"),0<d.length&&(f=d[Math.max(0,Math.min(d.length-1,urlParams.page||0))])),null!=f&&(a=Editor.parseDiagramNode(f,b)));null==a||"mxGraphModel"==a.nodeName||
c&&"mxfile"==a.nodeName||(a=null);return a};Editor.parseDiagramNode=function(a,c){var b=mxUtils.trim(mxUtils.getTextContent(a)),d=null;0<b.length?(b=Graph.decompress(b,null,c),null!=b&&0<b.length&&(d=mxUtils.parseXml(b).documentElement)):(b=mxUtils.getChildNodes(a),0<b.length&&(d=mxUtils.createXmlDocument(),d.appendChild(d.importNode(b[0],!0)),d=d.documentElement));return d};Editor.getDiagramNodeXml=function(a){var c=mxUtils.getTextContent(a),b=null;0<c.length?b=Graph.decompress(c):null!=a.firstChild&&
(b=mxUtils.getXml(a.firstChild));return b};Editor.extractGraphModelFromPdf=function(a){a=a.substring(a.indexOf(",")+1);a=window.atob&&!mxClient.IS_SF?atob(a):Base64.decode(a,!0);if("%PDF-1.7"==a.substring(0,8)){var c=a.indexOf("EmbeddedFile");if(-1<c){var b=a.indexOf("stream",c)+9;if(0<a.substring(c,b).indexOf("application#2Fvnd.jgraph.mxfile"))return c=a.indexOf("endstream",b-1),pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(b,c)),{to:"string"})}return null}for(var b=null,c="",d=0,f=0,e=[],
-g=null;f<a.length;){var k=a.charCodeAt(f),f=f+1;10!=k&&(c+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==d){var m=a.indexOf("%3C%2Fmxfile%3E)",f)+15,f=f-9;if(m>f){b=a.substring(f,m);break}}10==k&&("endobj"==c?g=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(g=[],e[c.split(" ")[0]]=g):null!=g&&g.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(e));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return b};
+g=null;f<a.length;){var k=a.charCodeAt(f),f=f+1;10!=k&&(c+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(d)?d++:d=0;if(19==d){var n=a.indexOf("%3C%2Fmxfile%3E)",f)+15,f=f-9;if(n>f){b=a.substring(f,n);break}}10==k&&("endobj"==c?g=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(g=[],e[c.split(" ")[0]]=g):null!=g&&g.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(e));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return b};
Editor.extractGraphModelFromXref=function(a){var c=a.trailer,b=null;null!=c&&(c=/.* \/Info (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(c=a[c[1]],null!=c&&(c=/.* \/Subject (\d+) (\d+) R/g.exec(c.join("\n")),null!=c&&0<c.length&&(a=a[c[1]],null!=a&&(a=a.join("\n"),b=a.substring(1,a.length-1))))));return b};Editor.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,
-function(a,b,f){a=d.substring(a+8,a+8+f);"zTXt"==b?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(f+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(D){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));
+function(a,b,f){a=d.substring(a+8,a+8+f);"zTXt"==b?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=pako.inflateRaw(Graph.stringToArrayBuffer(a.substring(f+2)),{to:"string"}).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&("mxGraphModel"==a[0]||"mxfile"==a[0])&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(E){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));
return c};Editor.extractParserError=function(a,c){var b=null,d=null!=a?a.getElementsByTagName("parsererror"):null;null!=d&&0<d.length&&(b=c||mxResources.get("invalidChars"),d=d[0].getElementsByTagName("div"),0<d.length&&(b=mxUtils.getTextContent(d[0])));return null!=b?mxUtils.trim(b):b};Editor.addRetryToError=function(a,c){if(null!=a){var b=null!=a.error?a.error:a;null==b.retry&&(b.retry=c)}};Editor.configure=function(a,c){if(null!=a){Editor.config=a;Editor.configVersion=a.version;Menus.prototype.defaultFonts=
a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=a.autosaveDelay||DrawioFile.prototype.autosaveDelay;
null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);null!=a.styles&&(Editor.styles=a.styles);null!=a.globalVars&&(Editor.globalVars=a.globalVars);null!=a.compressXml&&(Editor.compressXml=a.compressXml);null!=a.simpleLabels&&(Editor.simpleLabels=a.simpleLabels);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&
(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&
-(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.gridSteps&&(b=parseInt(a.gridSteps),!isNaN(b)&&0<b&&(mxGraphView.prototype.gridSteps=b));a.emptyDiagramXml&&
-(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(b=parseInt(a.autosaveDelay),!isNaN(b)&&0<b?DrawioFile.prototype.autosaveDelay=b:EditorUi.debug("Invalid autosaveDelay: "+
-a.autosaveDelay));if(null!=a.plugins&&!c)for(App.initPluginCallback(),b=0;b<a.plugins.length;b++)mxscript(a.plugins[b]);null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var c=document.getElementsByTagName("script")[0];if(null!=c&&null!=c.parentNode){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a));
-c.parentNode.insertBefore(b,c);a=a.split("url(");for(b=1;b<a.length;b++){var d=a[b].indexOf(")"),d=Editor.trimCssUrl(a[b].substring(0,d)),f=document.createElement("link");f.setAttribute("rel","preload");f.setAttribute("href",d);f.setAttribute("as","font");f.setAttribute("crossorigin","");c.parentNode.insertBefore(f,c)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";
-Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var c=[],b=0;b<a;b++)c.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return c.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=
-!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=
-this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");
-null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1);if(b=c.getAttribute("extFonts"))try{for(b=b.split("|").map(function(a){a=
-a.split("^");return{name:a[0],url:a[1]}}),d=0;d<b.length;d++)this.graph.addExtFont(b[d].name,b[d].url)}catch(D){console.log("ExtFonts format error: "+D.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);
-null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var d=this.graph.extFonts.map(function(a){return a.name+"^"+a.url});c.setAttribute("extFonts",d.join("|"))}return c};
-Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(ga){}return!1};Editor.prototype.extractGraphModel=function(a,c,b){return Editor.extractGraphModel.apply(this,
-arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=
-function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";Editor.initMath=function(a,c){if("undefined"===typeof window.MathJax){a=(null!=
-a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var b=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";c=null!=c?c:{"HTML-CSS":{availableFonts:[b],imageFont:null},SVG:{font:b,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};
-window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var d=Editor.prototype.init;Editor.prototype.init=
-function(){d.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};b=document.getElementsByTagName("script");if(null!=b&&0<b.length){var f=document.createElement("script");f.setAttribute("type","text/javascript");f.setAttribute("src",a);b[0].parentNode.appendChild(f)}try{if(mxClient.IS_GC||mxClient.IS_SF){var e=document.createElement("style");
-e.type="text/css";e.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(e)}}catch(Z){}}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,
-function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};
-Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var c=a.convert,b=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=Editor.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||b.crossOriginImages&&b.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,19)||mxClient.IS_CHROMEAPP||(d=c.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};
-return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,c){try{var b=!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);b&&c(Editor.createSvgDataUri(a.getText()))}),function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)});else{var f=new Image;
-this.crossOriginImages&&(f.crossOrigin="anonymous");f.onload=function(){window.clearTimeout(d);if(b)try{var a=document.createElement("canvas"),e=a.getContext("2d");a.height=f.height;a.width=f.width;e.drawImage(f,0,0);c(a.toDataURL())}catch(Y){c(Editor.svgBrokenImage.src)}};f.onerror=function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)};f.src=a}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(a,c,b,d){null==d&&(d=this.createImageUrlConverter());var f=0,
-e=b||{};b=mxUtils.bind(this,function(b,g){for(var k=a.getElementsByTagName(b),m=0;m<k.length;m++)mxUtils.bind(this,function(b){try{if(null!=b){var k=d.convert(b.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var m=e[k];null==m?(f++,this.convertImageToDataUri(k,function(d){null!=d&&(e[k]=d,b.setAttribute(g,d));f--;0==f&&c(a)})):b.setAttribute(g,m)}else null!=k&&b.setAttribute(g,k)}}catch(ha){}})(k[m])});b("image","xlink:href");b("img","src");0==f&&c(a)};Editor.base64Encode=function(a){for(var c=
-"",b=0,d=a.length,f,e,g;b<d;){f=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);c+="==";break}e=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
-15)<<2);c+="=";break}g=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return c};Editor.prototype.loadUrl=function(a,c,b,d,f,e,g,k){try{var m=!g&&(d||/(\.png)($|\?)/i.test(a)||
-/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));f=null!=f?f:!0;var p=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=c){var d=a.getText();if(m){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}e=
-null!=e?e:"data:image/png;base64,";d=e+Editor.base64Encode(d)}c(d)}}else null!=b&&(0==a.getStatus()?b({message:mxResources.get("accessDenied")},a):b({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=b&&b({message:mxResources.get("error")+" "+a.getStatus()})},m,this.timeout,function(){f&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:p})},k)});p()}catch(aa){null!=b&&b(aa)}};Editor.prototype.absoluteCssFonts=function(a){var c=null;if(null!=a){var b=a.split("url(");if(0<b.length){c=
-[b[0]];a=window.location.pathname;var d=null!=a?a.lastIndexOf("/"):-1;0<=d&&(a=a.substring(0,d+1));var d=document.getElementsByTagName("base"),f=null;null!=d&&0<d.length&&(f=d[0].getAttribute("href"));for(var e=1;e<b.length;e++)if(d=b[e].indexOf(")"),0<d){var g=Editor.trimCssUrl(b[e].substring(0,d));this.graph.isRelativeUrl(g)&&(g=null!=f?f+g:window.location.protocol+"//"+window.location.hostname+("/"==g.charAt(0)?"":a)+g);c.push('url("'+g+'"'+b[e].substring(d))}else c.push(b[e])}else c=[a]}return null!=
-c?c.join(""):null};Editor.prototype.embedCssFonts=function(a,c){var b=a.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});var f=mxUtils.bind(this,function(){if(0==d){for(var a=[b[0]],f=1;f<b.length;f++){var e=b[f].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(b[f].substring(0,e))]);a.push('"'+b[f].substring(e))}c(a.join(""))}});if(0<b.length){for(var e=1;e<b.length;e++){var g=b[e].indexOf(")"),k=null,m=b[e].indexOf("format(",g);0<m&&(k=Editor.trimCssUrl(b[e].substring(m+
-7,b[e].indexOf(")",m))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;d++;var c="application/x-font-ttf";if("svg"==k||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";
-else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){this.cachedFonts[a]=c;d--;f()}),mxUtils.bind(this,function(a){d--;f()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(Editor.trimCssUrl(b[e].substring(0,g)),k)}f()}else c(a)};Editor.prototype.loadFonts=function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,
-mxUtils.bind(this,function(c){this.resolvedFontCss=c;a()})):a()};Editor.prototype.embedExtFonts=function(a){var c=this.graph.getCustomFonts();if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(b,a)}),e=0;e<c.length;e++)mxUtils.bind(this,function(a,c){Graph.isCssFontUrl(c)?null==this.cachedGoogleFonts[c]?(d++,this.loadUrl(c,mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;d--;f()}),mxUtils.bind(this,
-function(a){d--;b+="@import url("+c+");";f()}))):b+=this.cachedGoogleFonts[c]:b+='@font-face {font-family: "'+a+'";src: url("'+c+'")}'})(c[e].name,c[e].url);f()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var c=document.getElementsByTagName("style"),b=0;b<c.length;b++)0<mxUtils.getTextContent(c[b]).indexOf("MathJax")&&a[0].appendChild(c[b].cloneNode(!0))};Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);
-if(null!=c){var b=a.getElementsByTagName("defs"),d=a.ownerDocument;0==b.length?(b=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);b.appendChild(d)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||
-this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var d=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(d/a,d/c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,m,p,u,l,n,z,y,A,q,t){try{e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:this.graph;n=null!=n?n:0;var x=m?null:l.background;x==mxConstants.NONE&&(x=null);null==x&&(x=d);null==x&&0==m&&(x=A?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(l.getSvg(null,null,n,z,null,g,null,null,null,p,
-null,A,q,t),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){z.drawImage(d,0,0);a(m,b)},0):(z.drawImage(d,0,0),a(m,b))},m=document.createElement("canvas"),p=parseInt(b.getAttribute("width")),u=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*u),c/p)):c/p);k=this.getMaxCanvasScale(p,u,k);p=Math.ceil(k*p);u=Math.ceil(k*u);m.setAttribute("width",p);m.setAttribute("height",
-u);var z=m.getContext("2d");null!=x&&(z.beginPath(),z.rect(0,0,p,u),z.fillStyle=x,z.fill());1!=k&&z.scale(k,k);if(y){var A=l.view,q=A.scale;A.scale=1;var B=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));A.scale=q;var B="data:image/svg+xml;base64,"+B,t=l.gridSize*A.gridSteps*k,C=l.getGraphBounds(),D=A.translate.x*q,H=A.translate.y*q,F=D+(C.x-D)/q-n,E=H+(C.y-H)/q-n,I=new Image;I.onload=function(){try{for(var a=-Math.round(t-mxUtils.mod((D-F)*k,t)),c=-Math.round(t-mxUtils.mod((H-E)*
-k,t));a<p;a+=t)for(var b=c;b<u;b+=t)z.drawImage(I,a/k,b/k);g()}catch(ua){null!=f&&f(ua)}};I.onerror=function(a){null!=f&&f(a)};I.src=B}else g()}catch(xa){null!=f&&f(xa)}});d.onerror=function(a){null!=f&&f(a)};p&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(ra){null!=f&&f(ra)}});this.embedExtFonts(mxUtils.bind(this,
-function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(O){null!=f&&f(O)}}))}catch(ra){null!=f&&f(ra)}}),b,u)}catch(T){null!=f&&f(T)}};Editor.crcTable=[];for(var n=0;256>n;n++)for(var l=n,t=0;8>t;t++)l=1==(l&1)?3988292384^l>>>1:l>>>1,Editor.crcTable[n]=l;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>
-0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=m;m+=c;return a.substring(b,m)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var m=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,4),"IHDR"!=e(a,4))null!=f&&
-f();else{e(a,17);f=a.substring(0,m);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,m-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(m-8,a.length);break}f+=a.substring(m-8,m-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0))}};
-if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var q=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){q.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=
-function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var f=Format.prototype.init;Format.prototype.init=function(){f.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?g.apply(this,arguments):
-this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=m.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),
-function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var k=DiagramFormatPanel.prototype.addOptions;
-DiagramFormatPanel.prototype.addOptions=function(a){a=k.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});
+(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.enableCustomLibraries&&(Editor.enableCustomLibraries=a.enableCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);null!=a.zoomFactor&&(b=parseFloat(a.zoomFactor),!isNaN(b)&&1<b&&(Graph.prototype.zoomFactor=b));null!=a.gridSteps&&
+(b=parseInt(a.gridSteps),!isNaN(b)&&0<b&&(mxGraphView.prototype.gridSteps=b));a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&Editor.configureFontCss(a.fontCss);null!=a.autosaveDelay&&(b=parseInt(a.autosaveDelay),
+!isNaN(b)&&0<b?DrawioFile.prototype.autosaveDelay=b:EditorUi.debug("Invalid autosaveDelay: "+a.autosaveDelay));if(null!=a.plugins&&!c)for(App.initPluginCallback(),b=0;b<a.plugins.length;b++)mxscript(a.plugins[b]);null!=a.maxImageBytes&&(EditorUi.prototype.maxImageBytes=a.maxImageBytes);null!=a.maxImageSize&&(EditorUi.prototype.maxImageSize=a.maxImageSize)}};Editor.configureFontCss=function(a){if(null!=a){Editor.prototype.fontCss=a;var c=document.getElementsByTagName("script")[0];if(null!=c&&null!=
+c.parentNode){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a));c.parentNode.insertBefore(b,c);a=a.split("url(");for(b=1;b<a.length;b++){var d=a[b].indexOf(")"),d=Editor.trimCssUrl(a[b].substring(0,d)),f=document.createElement("link");f.setAttribute("rel","preload");f.setAttribute("href",d);f.setAttribute("as","font");f.setAttribute("crossorigin","");c.parentNode.insertBefore(f,c)}}}};Editor.trimCssUrl=function(a){return a.replace(RegExp("^[\\s\"']+",
+"g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(a){a=null!=a?a:Editor.GUID_LENGTH;for(var c=[],b=0;b<a;b++)c.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return c.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=
+null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||
+"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=
+b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==
+c.getAttribute("shadow"),!1);if(b=c.getAttribute("extFonts"))try{for(b=b.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}}),d=0;d<b.length;d++)this.graph.addExtFont(b[d].name,b[d].url)}catch(E){console.log("ExtFonts format error: "+E.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;
+Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");if(null!=this.graph.extFonts&&0<this.graph.extFonts.length){var d=this.graph.extFonts.map(function(a){return a.name+
+"^"+a.url});c.setAttribute("extFonts",d.join("|"))}return c};Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(ka){}return!1};Editor.prototype.extractGraphModel=
+function(a,c,b){return Editor.extractGraphModel.apply(this,arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};
+var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";
+Editor.initMath=function(a,c){if("undefined"===typeof window.MathJax){a=(null!=a?a:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};var b=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";c=null!=c?c:{"HTML-CSS":{availableFonts:[b],imageFont:null},
+SVG:{font:b,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c);MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};
+Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var d=Editor.prototype.init;Editor.prototype.init=function(){d.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};b=document.getElementsByTagName("script");if(null!=b&&0<b.length){var f=document.createElement("script");f.setAttribute("type","text/javascript");f.setAttribute("src",
+a);b[0].parentNode.appendChild(f)}try{if(mxClient.IS_GC||mxClient.IS_SF){var e=document.createElement("style");e.type="text/css";e.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(e)}}catch(Y){}}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;
+var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};Editor.prototype.isCorsEnabledForUrl=function(a){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));
+return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)};Editor.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var c=a.convert,b=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=Editor.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||b.crossOriginImages&&b.isCorsEnabledForUrl(d)?"chrome-extension://"==d.substring(0,
+19)||mxClient.IS_CHROMEAPP||(d=c.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};Editor.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};Editor.prototype.convertImageToDataUri=function(a,c){try{var b=!0,d=window.setTimeout(mxUtils.bind(this,function(){b=!1;c(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){window.clearTimeout(d);b&&c(Editor.createSvgDataUri(a.getText()))}),
+function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)});else{var f=new Image;this.crossOriginImages&&(f.crossOrigin="anonymous");f.onload=function(){window.clearTimeout(d);if(b)try{var a=document.createElement("canvas"),e=a.getContext("2d");a.height=f.height;a.width=f.width;e.drawImage(f,0,0);c(a.toDataURL())}catch(X){c(Editor.svgBrokenImage.src)}};f.onerror=function(){window.clearTimeout(d);b&&c(Editor.svgBrokenImage.src)};f.src=a}}catch(U){c(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=
+function(a,c,b,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=b||{};b=mxUtils.bind(this,function(b,g){for(var k=a.getElementsByTagName(b),n=0;n<k.length;n++)mxUtils.bind(this,function(b){try{if(null!=b){var k=d.convert(b.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var n=e[k];null==n?(f++,this.convertImageToDataUri(k,function(d){null!=d&&(e[k]=d,b.setAttribute(g,d));f--;0==f&&c(a)})):b.setAttribute(g,n)}else null!=k&&b.setAttribute(g,k)}}catch(fa){}})(k[n])});b("image","xlink:href");
+b("img","src");0==f&&c(a)};Editor.base64Encode=function(a){for(var c="",b=0,d=a.length,f,e,g;b<d;){f=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);c+="==";break}e=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
+3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2);c+="=";break}g=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return c};
+Editor.prototype.loadUrl=function(a,c,b,d,f,e,g,k){try{var n=!g&&(d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a)||/(\.pdf)($|\?)/i.test(a));f=null!=f?f:!0;var p=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=c){var d=a.getText();if(n){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();
+for(var d=Array(a.length),f=0;f<a.length;f++)d[f]=String.fromCharCode(a[f]);d=d.join("")}e=null!=e?e:"data:image/png;base64,";d=e+Editor.base64Encode(d)}c(d)}}else null!=b&&(0==a.getStatus()?b({message:mxResources.get("accessDenied")},a):b({message:mxResources.get("error")+" "+a.getStatus()},a))}),function(a){null!=b&&b({message:mxResources.get("error")+" "+a.getStatus()})},n,this.timeout,function(){f&&null!=b&&b({code:App.ERROR_TIMEOUT,retry:p})},k)});p()}catch(Z){null!=b&&b(Z)}};Editor.prototype.absoluteCssFonts=
+function(a){var c=null;if(null!=a){var b=a.split("url(");if(0<b.length){c=[b[0]];a=window.location.pathname;var d=null!=a?a.lastIndexOf("/"):-1;0<=d&&(a=a.substring(0,d+1));var d=document.getElementsByTagName("base"),f=null;null!=d&&0<d.length&&(f=d[0].getAttribute("href"));for(var e=1;e<b.length;e++)if(d=b[e].indexOf(")"),0<d){var g=Editor.trimCssUrl(b[e].substring(0,d));this.graph.isRelativeUrl(g)&&(g=null!=f?f+g:window.location.protocol+"//"+window.location.hostname+("/"==g.charAt(0)?"":a)+g);
+c.push('url("'+g+'"'+b[e].substring(d))}else c.push(b[e])}else c=[a]}return null!=c?c.join(""):null};Editor.prototype.embedCssFonts=function(a,c){var b=a.split("url("),d=0;null==this.cachedFonts&&(this.cachedFonts={});var f=mxUtils.bind(this,function(){if(0==d){for(var a=[b[0]],f=1;f<b.length;f++){var e=b[f].indexOf(")");a.push('url("');a.push(this.cachedFonts[Editor.trimCssUrl(b[f].substring(0,e))]);a.push('"'+b[f].substring(e))}c(a.join(""))}});if(0<b.length){for(var e=1;e<b.length;e++){var g=b[e].indexOf(")"),
+k=null,n=b[e].indexOf("format(",g);0<n&&(k=Editor.trimCssUrl(b[e].substring(n+7,b[e].indexOf(")",n))));mxUtils.bind(this,function(a){if(null==this.cachedFonts[a]){this.cachedFonts[a]=a;d++;var c="application/x-font-ttf";if("svg"==k||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";
+else if("eot"==k||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b=a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){this.cachedFonts[a]=c;d--;f()}),mxUtils.bind(this,function(a){d--;f()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(Editor.trimCssUrl(b[e].substring(0,g)),k)}f()}else c(a)};Editor.prototype.loadFonts=
+function(a){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(c){this.resolvedFontCss=c;a()})):a()};Editor.prototype.embedExtFonts=function(a){var c=this.graph.getCustomFonts();if(0<c.length){var b="",d=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var f=mxUtils.bind(this,function(){0==d&&this.embedCssFonts(b,a)}),e=0;e<c.length;e++)mxUtils.bind(this,function(a,c){Graph.isCssFontUrl(c)?null==this.cachedGoogleFonts[c]?(d++,this.loadUrl(c,
+mxUtils.bind(this,function(a){this.cachedGoogleFonts[c]=a;b+=a;d--;f()}),mxUtils.bind(this,function(a){d--;b+="@import url("+c+");";f()}))):b+=this.cachedGoogleFonts[c]:b+='@font-face {font-family: "'+a+'";src: url("'+c+'")}'})(c[e].name,c[e].url);f()}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0<a.length)for(var c=document.getElementsByTagName("style"),b=0;b<c.length;b++)0<mxUtils.getTextContent(c[b]).indexOf("MathJax")&&a[0].appendChild(c[b].cloneNode(!0))};
+Editor.prototype.addFontCss=function(a,c){c=null!=c?c:this.absoluteCssFonts(this.fontCss);if(null!=c){var b=a.getElementsByTagName("defs"),d=a.ownerDocument;0==b.length?(b=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)):b=b[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);b.appendChild(d)}};
+Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(a,c,b){var d=mxClient.IS_FF?8192:16384;return Math.min(b,Math.min(d/a,d/c))};Editor.prototype.exportToCanvas=function(a,c,b,d,f,e,g,k,p,t,v,m,l,y,z,A,q,u){try{e=null!=e?e:!0;g=null!=g?g:!0;m=null!=m?m:this.graph;l=null!=l?l:0;var n=p?null:m.background;n==mxConstants.NONE&&(n=null);null==n&&(n=d);null==n&&0==p&&(n=A?this.graph.defaultPageBackgroundColor:"#ffffff");
+this.convertImages(m.getSvg(null,null,l,y,null,g,null,null,null,t,null,A,q,u),mxUtils.bind(this,function(b){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var g=function(){mxClient.IS_SF?window.setTimeout(function(){y.drawImage(d,0,0);a(p,b)},0):(y.drawImage(d,0,0),a(p,b))},p=document.createElement("canvas"),t=parseInt(b.getAttribute("width")),v=parseInt(b.getAttribute("height"));k=null!=k?k:1;null!=c&&(k=e?Math.min(1,Math.min(3*c/(4*v),c/t)):c/t);k=this.getMaxCanvasScale(t,v,k);t=
+Math.ceil(k*t);v=Math.ceil(k*v);p.setAttribute("width",t);p.setAttribute("height",v);var y=p.getContext("2d");null!=n&&(y.beginPath(),y.rect(0,0,t,v),y.fillStyle=n,y.fill());1!=k&&y.scale(k,k);if(z){var A=m.view,q=A.scale;A.scale=1;var B=btoa(unescape(encodeURIComponent(A.createSvgGrid(A.gridColor))));A.scale=q;var B="data:image/svg+xml;base64,"+B,C=m.gridSize*A.gridSteps*k,u=m.getGraphBounds(),I=A.translate.x*q,E=A.translate.y*q,F=I+(u.x-I)/q-l,D=E+(u.y-E)/q-l,G=new Image;G.onload=function(){try{for(var a=
+-Math.round(C-mxUtils.mod((I-F)*k,C)),c=-Math.round(C-mxUtils.mod((E-D)*k,C));a<t;a+=C)for(var b=c;b<v;b+=C)y.drawImage(G,a/k,b/k);g()}catch(ua){null!=f&&f(ua)}};G.onerror=function(a){null!=f&&f(a)};G.src=B}else g()}catch(xa){null!=f&&f(xa)}});d.onerror=function(a){null!=f&&f(a)};t&&this.graph.addSvgShadow(b);this.graph.mathEnabled&&this.addMathCss(b);var g=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(b,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(b))}catch(ra){null!=
+f&&f(ra)}});this.embedExtFonts(mxUtils.bind(this,function(a){try{null!=a&&this.addFontCss(b,a),this.loadFonts(g)}catch(O){null!=f&&f(O)}}))}catch(ra){null!=f&&f(ra)}}),b,v)}catch(T){null!=f&&f(T)}};Editor.crcTable=[];for(var l=0;256>l;l++)for(var m=l,u=0;8>u;u++)m=1==(m&1)?3988292384^m>>>1:m>>>1,Editor.crcTable[l]=m;Editor.updateCRC=function(a,c,b,d){for(var f=0;f<d;f++)a=Editor.crcTable[(a^c.charCodeAt(b+f))&255]^a>>>8;return a};Editor.crc32=function(a){for(var c=-1,b=0;b<a.length;b++)c=c>>>8^Editor.crcTable[(c^
+a.charCodeAt(b))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(a,c,b,d,f){function e(a,c){var b=n;n+=c;return a.substring(b,n)}function g(a){a=e(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(e(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(e(a,
+4),"IHDR"!=e(a,4))null!=f&&f();else{e(a,17);f=a.substring(0,n);do{var p=g(a);if("IDAT"==e(a,4)){f=a.substring(0,n-8);"pHYs"==c&&"dpi"==b?(b=Math.round(d/.0254),b=k(b)+k(b)+String.fromCharCode(1)):b=b+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,c,0,4);d=Editor.updateCRC(d,b,0,b.length);f+=k(b.length)+c+b+k(d^4294967295);f+=a.substring(n-8,a.length);break}f+=a.substring(n-8,n-4+p);e(a,p);e(a,4)}while(p);return"data:image/png;base64,"+(window.btoa?
+btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";var q=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){q.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&
+(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var f=Format.prototype.init;Format.prototype.init=function(){f.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var g=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?
+g.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var k=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=k.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),
+function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var p=DiagramFormatPanel.prototype.addOptions;
+DiagramFormatPanel.prototype.addOptions=function(a){a=p.apply(this,arguments);var c=this.editorUi,b=c.editor.graph;if(b.isEnabled()){var d=c.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return c.editor.autosave},function(a){c.editor.setAutosave(a);c.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(c.editor.autosave)};c.editor.addListener("autosaveChanged",this.listener)},destroy:function(){c.editor.removeListener(this.listener)}});
a.appendChild(f)}}if(this.isMathOptionVisible()&&b.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return b.mathEnabled},function(a){c.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(b.mathEnabled)};c.addListener("mathEnabledChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var e=c.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");
e.style.position="relative";e.style.marginLeft="6px";e.style.top="2px";f.appendChild(e)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=
[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",
@@ -3178,36 +3180,36 @@ stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79
stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=
0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&null!=f.shape&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded=!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),
-d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(U){}}};var p=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));p.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,f=0;f<b.length;f++)this.findCommonProperties(b[f],c,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],
-c,0==b.length&&0==f);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var u=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");
-c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return u.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=
-function(a,c,b){function d(a,c,b,d){l.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(l.setCellStyles(b.countProperty,g.length,l.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}l.setCellStyles(a,
-c,l.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var m=b.dependentPropsDefVal[a],p=b.dependentPropsVals[a];if(p.length>c)p=p.slice(0,c);else for(var n=p.length;n<c;n++)p.push(m);p=p.join(",");l.setCellStyles(b.dependentProps[a],p,l.getSelectionCells());f.push(b.dependentProps[a]);e.push(p)}if("function"==typeof b.onChange)b.onChange(l,c);u.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",l.getSelectionCells()))}finally{l.getModel().endUpdate()}}
-function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height="4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(u,
-function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),n.push({name:a,values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(u,function(c){for(var m=g,u=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==
-a)m=m.nextSibling,u++;else break;var l={type:b,parentRow:g,index:u,isDeletable:!0,defVal:f,countProperty:e},u=p(a,"",l,0==u%2,k);d(a,f,l);m.parentNode.insertBefore(u,m.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var m=0;m<f;m++)k[m]=null!=c[m]?c[m]:null!=d?d:"";n.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}
-function m(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function p(c,b,p,l,n){var x=p.dispName,z=p.type,y=document.createElement("tr");y.className="gePropRow"+(n?"Dark":"")+(l?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);l=!1;null!=p.index&&(y.setAttribute("data-index",p.index),x=(null!=x?x:"")+"["+p.index+"]",l=!0);var A=document.createElement("td");
-A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(x,null,x));l&&(A.style.textAlign="right");y.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==z)A.appendChild(e(c,b,p));else if("bool"==z||"boolean"==z)A.appendChild(m(c,b,p));else if("enum"==z){var q=p.enumList;for(n=0;n<q.length;n++)if(x=q[n],x.val==b){A.innerHTML=mxUtils.htmlEntities(mxResources.get(x.dispName,null,x.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(u,function(){var e=
-document.createElement("select");f(A,e);for(var g=0;g<q.length;g++){var k=q[g],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);m.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(m)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,p)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==z?A.appendChild(g(c,b,p.subType,p.subDefVal,p.countProperty,
-y,n)):"staticArr"==z?A.appendChild(k(c,b,p.subType,p.subDefVal,p.size,y,n)):"readOnly"==z?(n=document.createElement("input"),n.setAttribute("readonly",""),n.value=b,n.style.width="96px",n.style.borderWidth="0px",A.appendChild(n)):(A.innerHTML=b,mxEvent.addListener(A,"click",mxUtils.bind(u,function(){function e(){var a=g.value,a=0==a.length&&"string"!=z?0:a;p.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",z="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=p.min&&a<p.min?a=p.min:
-null!=p.max&&a>p.max&&(a=p.max);a=mxUtils.htmlEntities(("int"==z?parseInt(a):a)+"");d(c,a,p)}var g=document.createElement("input");f(A,g,!0);g.value=b;g.className="gePropEditor";"int"!=z&&"float"!=z||p.allowAuto||(g.type="number",g.step="int"==z?"1":"any",null!=p.min&&(g.min=parseFloat(p.min)),null!=p.max&&(g.max=parseFloat(p.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));p.isDeletable&&(n=mxUtils.button("-",
-mxUtils.bind(u,function(a){d(c,"",p,p.index);mxEvent.consume(a)})),n.style.height="16px",n.style.width="25px",n.style["float"]="right",n.className="geColorBtn",A.appendChild(n));y.appendChild(A);return y}var u=this,l=this.editorUi.editor.graph,n=[];a.style.position="relative";a.style.padding="0";var x=document.createElement("table");x.className="geProperties";x.style.whiteSpace="nowrap";x.style.width="100%";var z=document.createElement("tr");z.className="gePropHeader";var y=document.createElement("th");
-y.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;y.appendChild(A);mxUtils.write(y,mxResources.get("property"));z.style.cursor="pointer";var q=function(){var c=x.querySelectorAll(".gePropNonHeaderRow"),b;if(u.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(sa){}}else A.src=
-Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(z,"click",function(){u.editorUi.propertiesCollapsed=!u.editorUi.propertiesCollapsed;q()});z.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value");z.appendChild(y);x.appendChild(z);var t=!1,B=!1,z=null;1==b.vertices.length&&0==b.edges.length?z=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(z=b.edges[0].id);null!=z&&x.appendChild(p("id",
-mxUtils.htmlEntities(z),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in c)if(z=c[C],"function"!=typeof z.isVisible||z.isVisible(b,this)){var H=null!=b.style[C]?mxUtils.htmlEntities(b.style[C]+""):null!=z.getDefaultValue?z.getDefaultValue(b,this):z.defVal;if("separator"==z.type)B=!B;else{if("staticArr"==z.type)z.size=parseInt(b.style[z.sizeProperty]||c[z.sizeProperty].defVal)||0;else if(null!=z.dependentProps){for(var F=z.dependentProps,E=[],I=[],y=0;y<F.length;y++){var M=b.style[F[y]];I.push(c[F[y]].subDefVal);
-E.push(null!=M?M.split(","):[])}z.dependentPropsDefVal=I;z.dependentPropsVals=E}x.appendChild(p(C,H,z,t,B));t=!t}}for(y=0;y<n.length;y++)for(z=n[y],c=z.parentRow,b=0;b<z.values.length;b++)C=p(z.name,z.values[b],{type:z.type,parentRow:z.parentRow,isDeletable:z.isDeletable,index:b,defVal:z.defVal,countProperty:z.countProperty,size:z.size},0==b%2,z.flipBkg),c.parentNode.insertBefore(C,c.nextSibling),c=C;a.appendChild(x);q();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,
+d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(U){}}};var t=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"==a.style.shape||a.containsLabel||this.container.appendChild(this.addStyles(this.createPanel()));t.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,f=0;f<b.length;f++)this.findCommonProperties(b[f],c,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],
+c,0==b.length&&0==f);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");
+c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=
+function(a,c,b){function d(a,c,b,d){v.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(v.setCellStyles(b.countProperty,g.length,v.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}v.setCellStyles(a,
+c,v.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var p=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var m=n.length;m<c;m++)n.push(p);n=n.join(",");v.setCellStyles(b.dependentProps[a],n,v.getSelectionCells());f.push(b.dependentProps[a]);e.push(n)}if("function"==typeof b.onChange)b.onChange(v,c);t.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",v.getSelectionCells()))}finally{v.getModel().endUpdate()}}
+function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height="4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(t,
+function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),m.push({name:a,values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(t,function(c){for(var p=g,t=0;null!=p.nextSibling;)if(p.nextSibling.getAttribute("data-pName")==
+a)p=p.nextSibling,t++;else break;var v={type:b,parentRow:g,index:t,isDeletable:!0,defVal:f,countProperty:e},t=n(a,"",v,0==t%2,k);d(a,f,v);p.parentNode.insertBefore(t,p.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var p=0;p<f;p++)k[p]=null!=c[p]?c[p]:null!=d?d:"";m.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}
+function p(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,v,m){var l=n.dispName,y=n.type,z=document.createElement("tr");z.className="gePropRow"+(m?"Dark":"")+(v?"Alt":"")+" gePropNonHeaderRow";z.setAttribute("data-pName",c);z.setAttribute("data-pValue",b);v=!1;null!=n.index&&(z.setAttribute("data-index",n.index),l=(null!=l?l:"")+"["+n.index+"]",v=!0);var A=document.createElement("td");
+A.className="gePropRowCell";A.innerHTML=mxUtils.htmlEntities(mxResources.get(l,null,l));v&&(A.style.textAlign="right");z.appendChild(A);A=document.createElement("td");A.className="gePropRowCell";if("color"==y)A.appendChild(e(c,b,n));else if("bool"==y||"boolean"==y)A.appendChild(p(c,b,n));else if("enum"==y){var q=n.enumList;for(m=0;m<q.length;m++)if(l=q[m],l.val==b){A.innerHTML=mxUtils.htmlEntities(mxResources.get(l.dispName,null,l.dispName));break}mxEvent.addListener(A,"click",mxUtils.bind(t,function(){var e=
+document.createElement("select");f(A,e);for(var g=0;g<q.length;g++){var k=q[g],p=document.createElement("option");p.value=mxUtils.htmlEntities(k.val);p.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(p)}e.value=b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==y?A.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,
+z,m)):"staticArr"==y?A.appendChild(k(c,b,n.subType,n.subDefVal,n.size,z,m)):"readOnly"==y?(m=document.createElement("input"),m.setAttribute("readonly",""),m.value=b,m.style.width="96px",m.style.borderWidth="0px",A.appendChild(m)):(A.innerHTML=b,mxEvent.addListener(A,"click",mxUtils.bind(t,function(){function e(){var a=g.value,a=0==a.length&&"string"!=y?0:a;n.allowAuto&&(null!=a.trim&&"auto"==a.trim().toLowerCase()?(a="auto",y="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=n.min&&a<n.min?a=n.min:
+null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==y?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");f(A,g,!0);g.value=b;g.className="gePropEditor";"int"!=y&&"float"!=y||n.allowAuto||(g.type="number",g.step="int"==y?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max)));a.appendChild(g);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){e()})})));n.isDeletable&&(m=mxUtils.button("-",
+mxUtils.bind(t,function(a){d(c,"",n,n.index);mxEvent.consume(a)})),m.style.height="16px",m.style.width="25px",m.style["float"]="right",m.className="geColorBtn",A.appendChild(m));z.appendChild(A);return z}var t=this,v=this.editorUi.editor.graph,m=[];a.style.position="relative";a.style.padding="0";var l=document.createElement("table");l.className="geProperties";l.style.whiteSpace="nowrap";l.style.width="100%";var y=document.createElement("tr");y.className="gePropHeader";var z=document.createElement("th");
+z.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;z.appendChild(A);mxUtils.write(z,mxResources.get("property"));y.style.cursor="pointer";var q=function(){var c=l.querySelectorAll(".gePropNonHeaderRow"),b;if(t.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(sa){}}else A.src=
+Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(y,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;q()});y.appendChild(z);z=document.createElement("th");z.className="gePropHeaderCell";z.innerHTML=mxResources.get("value");y.appendChild(z);l.appendChild(y);var u=!1,B=!1,y=null;1==b.vertices.length&&0==b.edges.length?y=b.vertices[0].id:0==b.vertices.length&&1==b.edges.length&&(y=b.edges[0].id);null!=y&&l.appendChild(n("id",
+mxUtils.htmlEntities(y),{dispName:"ID",type:"readOnly"},!0,!1));for(var C in c)if(y=c[C],"function"!=typeof y.isVisible||y.isVisible(b,this)){var I=null!=b.style[C]?mxUtils.htmlEntities(b.style[C]+""):null!=y.getDefaultValue?y.getDefaultValue(b,this):y.defVal;if("separator"==y.type)B=!B;else{if("staticArr"==y.type)y.size=parseInt(b.style[y.sizeProperty]||c[y.sizeProperty].defVal)||0;else if(null!=y.dependentProps){for(var F=y.dependentProps,D=[],G=[],z=0;z<F.length;z++){var N=b.style[F[z]];G.push(c[F[z]].subDefVal);
+D.push(null!=N?N.split(","):[])}y.dependentPropsDefVal=G;y.dependentPropsVals=D}l.appendChild(n(C,I,y,u,B));u=!u}}for(z=0;z<m.length;z++)for(y=m[z],c=y.parentRow,b=0;b<y.values.length;b++)C=n(y.name,y.values[b],{type:y.type,parentRow:y.parentRow,isDeletable:y.isDeletable,index:b,defVal:y.defVal,countProperty:y.countProperty,size:y.size},0==b%2,y.flipBkg),c.parentNode.insertBefore(C,c.nextSibling),c=C;a.appendChild(l);q();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){mxEvent.addListener(a,
"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var b=this.editorUi,d=b.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),
-g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";for(var k=[],m=0;m<this.defaultColorSchemes.length;m++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,
-"click",mxUtils.bind(this,function(){u(a)}))})(m);k.push(p);g.appendChild(p)}var u=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;l(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),l=mxUtils.bind(this,function(a){var c=mxUtils.bind(this,function(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),
-g=0;g<f.length;g++){for(var k=d.getModel().getStyle(f[g]),m=0;m<e.length;m++)k=mxUtils.removeStylename(k,e[m]);var p=d.getModel().isVertex(f[g])?b.initialDefaultVertexStyle:b.initialdefaultEdgeStyle;null!=a?(k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(c)||(k=""==a.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
+g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";for(var k=[],n=0;n<this.defaultColorSchemes.length;n++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a){mxEvent.addListener(p,
+"click",mxUtils.bind(this,function(){t(a)}))})(n);k.push(p);g.appendChild(p)}var t=mxUtils.bind(this,function(a){null!=this.format.currentScheme&&(k[this.format.currentScheme].style.background="transparent");this.format.currentScheme=a;v(this.defaultColorSchemes[this.format.currentScheme]);k[this.format.currentScheme].style.background="#84d7ff"}),v=mxUtils.bind(this,function(a){var c=mxUtils.bind(this,function(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),
+g=0;g<f.length;g++){for(var k=d.getModel().getStyle(f[g]),n=0;n<e.length;n++)k=mxUtils.removeStylename(k,e[n]);var p=d.getModel().isVertex(f[g])?b.initialDefaultVertexStyle:b.initialdefaultEdgeStyle;null!=a?(k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isAltDown(c)||(k=""==a.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
null))),mxEvent.isShiftDown(c)||(k=""==a.stroke?mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null))),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(f[g])||(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))):(k=mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,
"#ffffff")),k=mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(f[g])&&(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(f[g],k)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height=
10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";if(null!=a){var g="1"==urlParams.sketch?"2px solid":"1px solid";null!=a.gradient?mxClient.IS_IE&&10>document.documentMode?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":
c.style.backgroundColor=""==a.fill?mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?"#2a2a2a":"#ffffff");c.style.border=a.stroke==mxConstants.NONE?g+" transparent":""==a.stroke?g+" "+mxUtils.getValue(b.initialDefaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"):g+" "+(a.stroke||mxUtils.getValue(b.initialDefaultVertexStyle,
-mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"))}else{var g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=g;c.style.border="1px solid "+k}c.style.borderRadius="0";f.appendChild(c)});f.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(f),c(a[g])});null==this.format.currentScheme?u(Editor.isDarkMode()?1:"1"==urlParams.sketch?
-5:0):u(this.format.currentScheme);var m=10>=this.defaultColorSchemes.length?28:8,n=document.createElement("div");n.style.cssText="position:absolute;left:10px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(n,"click",mxUtils.bind(this,function(){u(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var z=document.createElement("div");z.style.cssText="position:absolute;left:202px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(a.appendChild(n),a.appendChild(z));mxEvent.addListener(z,"click",mxUtils.bind(this,function(){u(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));c(n);c(z);l(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&a.appendChild(g);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&(b=mxUtils.button(mxResources.get("editStyle"),
+mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":"#2a2a2a"))}else{var g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=g;c.style.border="1px solid "+k}c.style.borderRadius="0";f.appendChild(c)});f.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(f),c(a[g])});null==this.format.currentScheme?t(Editor.isDarkMode()?1:"1"==urlParams.sketch?
+5:0):t(this.format.currentScheme);var n=10>=this.defaultColorSchemes.length?28:8,m=document.createElement("div");m.style.cssText="position:absolute;left:10px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
+mxEvent.addListener(m,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:"+n+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+1<this.defaultColorSchemes.length&&(a.appendChild(m),a.appendChild(l));mxEvent.addListener(l,"click",mxUtils.bind(this,function(){t(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));c(m);c(l);v(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&a.appendChild(g);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&(b=mxUtils.button(mxResources.get("editStyle"),
mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),b.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),b.style.width="202px",b.style.marginBottom="2px",a.appendChild(b));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),
c.setAttribute("title",mxResources.get("editShape")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c)):c.image&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft=
"2px"),a.appendChild(c));return a}}Graph.customFontElements={};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(a){return a.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(a){return Graph.isGoogleFontUrl(a)};Graph.createFontElement=function(a,c){var b;Graph.isCssFontUrl(c)?(b=document.createElement("link"),b.setAttribute("rel","stylesheet"),b.setAttribute("type","text/css"),b.setAttribute("charset","UTF-8"),b.setAttribute("href",c)):(b=document.createElement("style"),
@@ -3218,22 +3220,22 @@ Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";
"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint;this.getInsertPoint=function(){return null!=c?this.getPointForEvent(c):b.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var c=this.graph.getCellStyle(a);if(null!=c){if("rack"==c.childLayout){var b=new mxStackLayout(this.graph,!1);b.gridSize=null!=c.rackUnitSize?parseFloat(c.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:
20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.allowGaps=c.allowGaps||0;b.horizontal="1"==mxUtils.getValue(c,"horizontalRack","0");b.resizeParent=!1;b.fill=!0;return b}if("undefined"!==typeof mxTableLayout&&"tableLayout"==c.childLayout)return b=new mxTableLayout(this.graph),b.rows=c.tableRows||2,b.columns=c.tableColumns||2,b.colPercentages=c.colPercentages,b.rowPercentages=c.rowPercentages,b.equalColumns="1"==mxUtils.getValue(c,
"equalColumns",b.colPercentages?"0":"1"),b.equalRows="1"==mxUtils.getValue(c,"equalRows",b.rowPercentages?"0":"1"),b.resizeParent="1"==mxUtils.getValue(c,"resizeParent","1"),b.border=c.tableBorder||b.border,b.marginLeft=c.marginLeft||0,b.marginRight=c.marginRight||0,b.marginTop=c.marginTop||0,b.marginBottom=c.marginBottom||0,b.autoAddCol="1"==mxUtils.getValue(c,"autoAddCol","0"),b.autoAddRow="1"==mxUtils.getValue(c,"autoAddRow",b.autoAddCol?"0":"1"),b.colWidths=c.colWidths||"100",b.rowHeights=c.rowHeights||
-"50",b}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};var F=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(a){return Graph.processFontStyle(F.apply(this,arguments))};var z=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(a,c,b,d,f,e,g,k,m,p,u){z.apply(this,arguments);Graph.processFontAttributes(u)};var y=mxText.prototype.redraw;mxText.prototype.redraw=function(){y.apply(this,arguments);null!=this.node&&"DIV"==
+"50",b}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};var F=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(a){return Graph.processFontStyle(F.apply(this,arguments))};var y=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(a,c,b,d,f,e,g,k,p,t,v){y.apply(this,arguments);Graph.processFontAttributes(v)};var z=mxText.prototype.redraw;mxText.prototype.redraw=function(){z.apply(this,arguments);null!=this.node&&"DIV"==
this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.getCustomFonts=function(){var a=this.extFonts,a=null!=a?a.slice():[],c;for(c in Graph.customFontElements){var b=Graph.customFontElements[c];a.push({name:b.name,url:b.url})}return a};Graph.prototype.setFont=function(a,c){Graph.addFont(a,c);document.execCommand("fontname",!1,a);if(null!=c){var b=this.cellEditor.textarea.getElementsByTagName("font");c=Graph.getFontUrl(a,c);for(var d=0;d<b.length;d++)b[d].getAttribute("face")==
-a&&b[d].getAttribute("data-font-src")!=c&&b[d].setAttribute("data-font-src",c)}};var M=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return M.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var a=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=a)for(var c in a)this.globalVars[c]=
-a[c]}catch(C){null!=window.console&&console.log("Error in vars URL parameter: "+C)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var L=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=L.apply(this,arguments);null==c&&null!=this.globalVars&&(c=this.globalVars[a]);return c};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var a=this.themes["default-style2"];this.defaultStylesheet=
-(new mxCodec(a.ownerDocument)).decode(a)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var I=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,c,b,d,f,e,g,k,m,p,u,l,n,z){var y=null,x=null;l||null==this.themes||"darkTheme"!=this.defaultThemeName||(y=this.stylesheet,x=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=
-I.apply(this,arguments),q=this.getCustomFonts();if(u&&0<q.length){var t=A.ownerDocument,H=null!=t.createElementNS?t.createElementNS(mxConstants.NS_SVG,"style"):t.createElement("style");null!=t.setAttributeNS?H.setAttributeNS("type","text/css"):H.setAttribute("type","text/css");for(var F="",E="",B=0;B<q.length;B++){var C=q[B].name,M=q[B].url;Graph.isCssFontUrl(M)?F+="@import url("+M+");\n":E+='@font-face {\nfont-family: "'+C+'";\nsrc: url("'+M+'");\n}\n'}H.appendChild(t.createTextNode(F+E));A.getElementsByTagName("defs")[0].appendChild(H)}null!=
-y&&(this.defaultPageBackgroundColor=x,this.stylesheet=y,this.refresh());return A};var G=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=G.apply(this,arguments);if(this.mathEnabled){var c=a.drawText;a.drawText=function(a,b){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var d=a.text.getContentNode();if(null!=d){d=d.cloneNode(!0);if(d.getElementsByTagNameNS)for(var f=
-d.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<f.length;)f[0].parentNode.removeChild(f[0]);null!=d.innerHTML&&(f=a.text.value,a.text.value=d.innerHTML,c.apply(this,arguments),a.text.value=f)}}else c.apply(this,arguments)}}return a};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
+a&&b[d].getAttribute("data-font-src")!=c&&b[d].setAttribute("data-font-src",c)}};var L=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return L.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var a=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=a)for(var c in a)this.globalVars[c]=
+a[c]}catch(C){null!=window.console&&console.log("Error in vars URL parameter: "+C)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var M=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=M.apply(this,arguments);null==c&&null!=this.globalVars&&(c=this.globalVars[a]);return c};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var a=this.themes["default-style2"];this.defaultStylesheet=
+(new mxCodec(a.ownerDocument)).decode(a)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var G=Graph.prototype.getSvg;Graph.prototype.getSvg=function(a,c,b,d,f,e,g,k,p,t,v,m,l,y){var n=null,z=null;m||null==this.themes||"darkTheme"!=this.defaultThemeName||(n=this.stylesheet,z=this.defaultPageBackgroundColor,this.defaultPageBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":"#2a2a2a",this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=
+G.apply(this,arguments),q=this.getCustomFonts();if(v&&0<q.length){var u=A.ownerDocument,I=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"style"):u.createElement("style");null!=u.setAttributeNS?I.setAttributeNS("type","text/css"):I.setAttribute("type","text/css");for(var F="",D="",C=0;C<q.length;C++){var B=q[C].name,N=q[C].url;Graph.isCssFontUrl(N)?F+="@import url("+N+");\n":D+='@font-face {\nfont-family: "'+B+'";\nsrc: url("'+N+'");\n}\n'}I.appendChild(u.createTextNode(F+D));A.getElementsByTagName("defs")[0].appendChild(I)}null!=
+n&&(this.defaultPageBackgroundColor=z,this.stylesheet=n,this.refresh());return A};var J=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var a=J.apply(this,arguments);if(this.mathEnabled){var c=a.drawText;a.drawText=function(a,b){if(null!=a.text&&null!=a.text.value&&a.text.checkBounds()&&(mxUtils.isNode(a.text.value)||a.text.dialect==mxConstants.DIALECT_STRICTHTML)){var d=a.text.getContentNode();if(null!=d){d=d.cloneNode(!0);if(d.getElementsByTagNameNS)for(var f=
+d.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<f.length;)f[0].parentNode.removeChild(f[0]);null!=d.innerHTML&&(f=a.text.value,a.text.value=d.innerHTML,c.apply(this,arguments),a.text.value=f)}}else c.apply(this,arguments)}}return a};var H=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){H.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
-this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var E=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){E.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var c=0;c<a.actions.length;c++){var b=a.actions[c];if(null!=b.open)if(this.isCustomLink(b.open)){if(!this.customLinkClicked(b.open))return}else this.openLink(b.open)}this.model.beginUpdate();
+this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var D=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){D.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var c=0;c<a.actions.length;c++){var b=a.actions[c];if(null!=b.open)if(this.isCustomLink(b.open)){if(!this.customLinkClicked(b.open))return}else this.openLink(b.open)}this.model.beginUpdate();
try{for(c=0;c<a.actions.length;c++)b=a.actions[c],null!=b.toggle&&this.toggleCells(this.getCellsForAction(b.toggle,!0)),null!=b.show&&this.setCellsVisible(this.getCellsForAction(b.show,!0),!0),null!=b.hide&&this.setCellsVisible(this.getCellsForAction(b.hide,!0),!1)}finally{this.model.endUpdate()}for(c=0;c<a.actions.length;c++){var b=a.actions[c],d=[];null!=b.select&&this.isEnabled()&&(d=this.getCellsForAction(b.select),this.setSelectionCells(d));null!=b.highlight&&(d=this.getCellsForAction(b.highlight),
this.highlightCells(d,b.highlight.color,b.highlight.duration,b.highlight.opacity));null!=b.scroll&&(d=this.getCellsForAction(b.scroll));null!=b.viewbox&&this.fitWindow(b.viewbox,b.viewbox.border);0<d.length&&this.scrollCellToVisible(d[0])}}};Graph.prototype.updateCustomLinksForCell=function(a,c){var b=this.getLinkForCell(c);null!=b&&"data:action/json,"==b.substring(0,17)&&this.setLinkForCell(c,this.updateCustomLink(a,b));if(this.isHtmlLabel(c)){var d=document.createElement("div");d.innerHTML=this.sanitizeHtml(this.getLabel(c));
-for(var f=d.getElementsByTagName("a"),e=!1,g=0;g<f.length;g++)b=f[g].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(f[g].setAttribute("href",this.updateCustomLink(a,b)),e=!0);e&&this.labelChanged(c,d.innerHTML)}};Graph.prototype.updateCustomLink=function(a,c){if("data:action/json,"==c.substring(0,17))try{var b=JSON.parse(c.substring(17));null!=b.actions&&(this.updateCustomLinkActions(a,b.actions),c="data:action/json,"+JSON.stringify(b))}catch(ga){}return c};Graph.prototype.updateCustomLinkActions=
+for(var f=d.getElementsByTagName("a"),e=!1,g=0;g<f.length;g++)b=f[g].getAttribute("href"),null!=b&&"data:action/json,"==b.substring(0,17)&&(f[g].setAttribute("href",this.updateCustomLink(a,b)),e=!0);e&&this.labelChanged(c,d.innerHTML)}};Graph.prototype.updateCustomLink=function(a,c){if("data:action/json,"==c.substring(0,17))try{var b=JSON.parse(c.substring(17));null!=b.actions&&(this.updateCustomLinkActions(a,b.actions),c="data:action/json,"+JSON.stringify(b))}catch(ka){}return c};Graph.prototype.updateCustomLinkActions=
function(a,c){for(var b=0;b<c.length;b++){var d=c[b];this.updateCustomLinkAction(a,d.toggle);this.updateCustomLinkAction(a,d.show);this.updateCustomLinkAction(a,d.hide);this.updateCustomLinkAction(a,d.select);this.updateCustomLinkAction(a,d.highlight);this.updateCustomLinkAction(a,d.scroll)}};Graph.prototype.updateCustomLinkAction=function(a,c){if(null!=c&&null!=c.cells){for(var b=[],d=0;d<c.cells.length;d++)if("*"==c.cells[d])b.push(c.cells[d]);else{var f=a[c.cells[d]];null!=f?""!=f&&b.push(f):b.push(c.cells[d])}c.cells=
b}};Graph.prototype.getCellsForAction=function(a,c){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags,null,null,c))};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var d=this.getDefaultParent(),c=c.concat(this.model.filterDescendants(function(a){return a!=d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b,d){var f=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());
-b=null!=b?b:"tags";for(var e=0,g={},k=0;k<a.length;k++)0<a[k].length&&(g[a[k].toLowerCase()]=!0,e++);for(k=0;k<c.length;k++)if(d&&this.model.getParent(c[k])==this.model.root||this.model.isVertex(c[k])||this.model.isEdge(c[k])){var m=null!=c[k].value&&"object"==typeof c[k].value?mxUtils.trim(c[k].value.getAttribute(b)||""):"",p=!1;if(0<m.length){if(m=m.toLowerCase().split(" "),m.length>=a.length){for(var u=p=0;u<m.length&&p<e;u++)null!=g[m[u]]&&p++;p=p==e}}else p=0==a.length;p&&f.push(c[k])}}return f};
+b=null!=b?b:"tags";for(var e=0,g={},k=0;k<a.length;k++)0<a[k].length&&(g[a[k].toLowerCase()]=!0,e++);for(k=0;k<c.length;k++)if(d&&this.model.getParent(c[k])==this.model.root||this.model.isVertex(c[k])||this.model.isEdge(c[k])){var p=null!=c[k].value&&"object"==typeof c[k].value?mxUtils.trim(c[k].value.getAttribute(b)||""):"",n=!1;if(0<p.length){if(p=p.toLowerCase().split(" "),p.length>=a.length){for(var t=n=0;t<p.length&&n<e;t++)null!=g[p[t]]&&n++;n=n==e}}else n=0==a.length;n&&f.push(c[k])}}return f};
Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f<a.length;f++)this.highlightCell(a[f],c,b,d)};Graph.prototype.highlightCell=function(a,c,
b,d){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var f=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),e=new mxCellHighlight(this,c,f,!1);null!=d&&(e.opacity=d);e.highlight(a);window.setTimeout(function(){null!=e.shape&&(mxUtils.setPrefixedStyle(e.shape.node.style,"transition","all 1200ms ease-in-out"),e.shape.node.style.opacity=0);window.setTimeout(function(){e.destroy()},1200)},b)}};Graph.prototype.addSvgShadow=function(a,
c,b){b=null!=b?b:!1;var d=a.ownerDocument,f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");f.setAttribute("id",this.shadowId);var e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");e.setAttribute("in","SourceAlpha");e.setAttribute("stdDeviation",this.svgShadowBlur);e.setAttribute("result","blur");f.appendChild(e);e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feOffset"):
@@ -3252,316 +3254,316 @@ mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupN
"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js",STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=
[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=
[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=
-[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var J=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,k,m,p){if(null!=b&&null==mxMarker.markers[b]){var u=this.getPackageForType(b);null!=u&&mxStencilRegistry.getStencil(u)}return J.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){z.value=Math.max(1,
-Math.min(k,Math.max(parseInt(z.value),parseInt(n.value))));n.value=Math.max(1,Math.min(k,Math.min(parseInt(z.value),parseInt(n.value))))}function d(c){function b(c,b,e){var g=c.useCssTransforms,k=c.currentTranslate,m=c.currentScale,p=c.view.translate,u=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,c.view.translate=new mxPoint(0,0),c.view.scale=1);var l=c.getGraphBounds(),n=0,z=0,y=K.get(),A=1/c.pageScale,t=x.checked;if(t)var A=parseInt(G.value),
-H=parseInt(B.value),A=Math.min(y.height*H/(l.height/c.view.scale),y.width*A/(l.width/c.view.scale));else A=parseInt(q.value)/(100*c.pageScale),isNaN(A)&&(d=1/c.pageScale,q.value="100 %");y=mxRectangle.fromRectangle(y);y.width=Math.ceil(y.width*d);y.height=Math.ceil(y.height*d);A*=d;!t&&c.pageVisible?(l=c.getPageLayout(),n-=l.x*y.width,z-=l.y*y.height):t=!0;if(null==b){b=PrintDialog.createPrintPreview(c,A,y,0,n,z,t);b.pageSelector=!1;b.mathEnabled=!1;n=a.getCurrentFile();null!=n&&(b.title=n.getTitle());
+[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var K=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,k,p,t){if(null!=b&&null==mxMarker.markers[b]){var n=this.getPackageForType(b);null!=n&&mxStencilRegistry.getStencil(n)}return K.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){l.value=Math.max(1,
+Math.min(k,Math.max(parseInt(l.value),parseInt(m.value))));m.value=Math.max(1,Math.min(k,Math.min(parseInt(l.value),parseInt(m.value))))}function d(c){function b(c,b,e){var g=c.useCssTransforms,k=c.currentTranslate,p=c.currentScale,n=c.view.translate,t=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,c.view.translate=new mxPoint(0,0),c.view.scale=1);var v=c.getGraphBounds(),m=0,l=0,y=K.get(),z=1/c.pageScale,u=q.checked;if(u)var z=parseInt(B.value),
+I=parseInt(R.value),z=Math.min(y.height*I/(v.height/c.view.scale),y.width*z/(v.width/c.view.scale));else z=parseInt(A.value)/(100*c.pageScale),isNaN(z)&&(d=1/c.pageScale,A.value="100 %");y=mxRectangle.fromRectangle(y);y.width=Math.ceil(y.width*d);y.height=Math.ceil(y.height*d);z*=d;!u&&c.pageVisible?(v=c.getPageLayout(),m-=v.x*y.width,l-=v.y*y.height):u=!0;if(null==b){b=PrintDialog.createPrintPreview(c,z,y,0,m,l,u);b.pageSelector=!1;b.mathEnabled=!1;m=a.getCurrentFile();null!=m&&(b.title=m.getTitle());
var F=b.writeHead;b.writeHead=function(b){F.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)b.writeln('<style type="text/css">'),b.writeln(Editor.mathJaxWebkitCss),b.writeln("</style>");mxClient.IS_GC&&(b.writeln('<style type="text/css">'),b.writeln("@media print {"),b.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),b.writeln("}"),b.writeln("</style>"));null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"));for(var d=
-c.getCustomFonts(),f=0;f<d.length;f++){var e=d[f].name,g=d[f].url;Graph.isCssFontUrl(g)?b.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(g)+'" charset="UTF-8" type="text/css">'):(b.writeln('<style type="text/css">'),b.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(e)+'";\nsrc: url("'+mxUtils.htmlEntities(g)+'");\n}'),b.writeln("</style>"))}};if("undefined"!==typeof MathJax){var E=b.renderPage;b.renderPage=function(c,b,d,f,e,g){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&
-!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var m=E.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}n=null;z=f.enableFlowAnimation;f.enableFlowAnimation=!1;null!=f.themes&&"darkTheme"==f.defaultThemeName&&(n=f.stylesheet,f.stylesheet=f.getDefaultStylesheet(),f.refresh());b.open(null,null,e,!0);f.enableFlowAnimation=z;null!=n&&(f.stylesheet=n,f.refresh())}else{y=c.background;if(null==
-y||""==y||y==mxConstants.NONE)y="#ffffff";b.backgroundColor=y;b.autoOrigin=t;b.appendGraph(c,A,n,z,e,!0);e=c.getCustomFonts();if(null!=b.wnd)for(n=0;n<e.length;n++)z=e[n].name,t=e[n].url,Graph.isCssFontUrl(t)?b.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(t)+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),b.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(z)+'";\nsrc: url("'+mxUtils.htmlEntities(t)+'");\n}'),
-b.wnd.document.writeln("</style>"))}g&&(c.useCssTransforms=g,c.currentTranslate=k,c.currentScale=m,c.view.translate=p,c.view.scale=u);return b}var d=parseInt(X.value)/100;isNaN(d)&&(d=1,X.value="100 %");var d=.75*d,e=null;null!=f.themes&&"darkTheme"==f.defaultThemeName&&(e=f.stylesheet,f.stylesheet=f.getDefaultStylesheet(),f.refresh());var g=n.value,k=z.value,p=!u.checked,l=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,u.checked,g,k,x.checked,G.value,B.value,parseInt(q.value)/100,parseInt(X.value)/
-100,K.get());else{p&&(p=g==m&&k==m);if(!p&&null!=a.pages&&a.pages.length){var y=0,p=a.pages.length-1;u.checked||(y=parseInt(g)-1,p=parseInt(k)-1);for(var A=y;A<=p;A++){var t=a.pages[A],g=t==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.stylesheet),k=!0,y=!1,H=null,F=null;null==t.viewState&&null==t.root&&a.updatePageRoot(t);null!=t.viewState&&(k=t.viewState.pageVisible,y=t.viewState.mathEnabled,H=t.viewState.background,F=t.viewState.backgroundImage,g.extFonts=t.viewState.extFonts);
-g.background=H;g.backgroundImage=null!=F?new mxImage(F.src,F.width,F.height):null;g.pageVisible=k;g.mathEnabled=y;var E=g.getGlobalVariable;g.getGlobalVariable=function(c){return"page"==c?t.getName():"pagenumber"==c?A+1:"pagecount"==c?null!=a.pages?a.pages.length:1:E.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(t);g.model.setRoot(t.root)}l=b(g,l,A!=p);g!=f&&g.container.parentNode.removeChild(g.container)}}else l=b(f);null==l?a.handleError({message:mxResources.get("errorUpdatingPreview")}):
-(l.mathEnabled&&(p=l.wnd.document,c&&(l.wnd.IMMEDIATE_PRINT=!0),p.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),l.closeDocument(),!l.mathEnabled&&c&&PrintDialog.printPreview(l));null!=e&&(f.stylesheet=e,f.refresh())}}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var k=1,m=1,p=
-document.createElement("div");p.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var u=document.createElement("input");u.style.cssText="margin-right:8px;margin-bottom:8px;";u.setAttribute("value","all");u.setAttribute("type","radio");u.setAttribute("name","pages-printdialog");p.appendChild(u);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));p.appendChild(g);mxUtils.br(p);var l=u.cloneNode(!0);u.setAttribute("checked","checked");
-l.setAttribute("value","range");p.appendChild(l);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");p.appendChild(g);var n=document.createElement("input");n.style.cssText="margin:0 8px 0 8px;";n.setAttribute("value","1");n.setAttribute("type","number");n.setAttribute("min","1");n.style.width="50px";p.appendChild(n);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));p.appendChild(g);var z=n.cloneNode(!0);p.appendChild(z);mxEvent.addListener(n,"focus",
-function(){l.checked=!0});mxEvent.addListener(z,"focus",function(){l.checked=!0});mxEvent.addListener(n,"change",b);mxEvent.addListener(z,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage==a.pages[g]){m=g+1;n.value=m;z.value=m;break}n.setAttribute("max",k);z.setAttribute("max",k);a.isPagesEnabled()?1<k&&(e.appendChild(p),l.checked=!0):l.checked=!0;var y=document.createElement("div");y.style.marginBottom="10px";var A=document.createElement("input");
-A.style.marginRight="8px";A.setAttribute("value","adjust");A.setAttribute("type","radio");A.setAttribute("name","printZoom");y.appendChild(A);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));y.appendChild(g);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","100 %");q.style.width="50px";y.appendChild(q);mxEvent.addListener(q,"focus",function(){A.checked=!0});e.appendChild(y);var p=p.cloneNode(!1),x=A.cloneNode(!0);x.setAttribute("value",
-"fit");A.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(x);p.appendChild(g);y=document.createElement("table");y.style.display="inline-block";var t=document.createElement("tbody"),H=document.createElement("tr"),F=H.cloneNode(!0),E=document.createElement("td"),I=E.cloneNode(!0),M=E.cloneNode(!0),Q=E.cloneNode(!0),L=E.cloneNode(!0),J=E.cloneNode(!0);E.style.textAlign="right";Q.style.textAlign=
-"right";mxUtils.write(E,mxResources.get("fitTo"));var G=document.createElement("input");G.style.cssText="margin:0 8px 0 8px;";G.setAttribute("value","1");G.setAttribute("min","1");G.setAttribute("type","number");G.style.width="40px";I.appendChild(G);g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(Q,mxResources.get("fitToBy"));var B=G.cloneNode(!0);L.appendChild(B);mxEvent.addListener(G,"focus",function(){x.checked=!0});mxEvent.addListener(B,
-"focus",function(){x.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));J.appendChild(g);H.appendChild(E);H.appendChild(I);H.appendChild(M);F.appendChild(Q);F.appendChild(L);F.appendChild(J);t.appendChild(H);t.appendChild(F);y.appendChild(t);p.appendChild(y);e.appendChild(p);p=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));p.appendChild(g);
-g=document.createElement("div");g.style.marginBottom="12px";var K=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);p.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));p.appendChild(g);var X=document.createElement("input");X.style.cssText="margin:0 8px 0 8px;";X.setAttribute("value","100 %");X.style.width="60px";p.appendChild(X);e.appendChild(p);g=document.createElement("div");g.style.cssText=
-"text-align:right;margin:48px 0 0 0;";p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});p.className="geBtn";a.editor.cancelFirst&&g.appendChild(p);a.isOffline()||(y=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),y.className="geBtn",g.appendChild(y));PrintDialog.previewEnabled&&(y=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),y.className="geBtn",g.appendChild(y));y=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?
-"print":"ok"),function(){a.hideDialog();d(!0)});y.className="geBtn gePrimaryBtn";g.appendChild(y);a.editor.cancelFirst||g.appendChild(p);e.appendChild(g);this.container=e};var H=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&
-(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(H.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),
-this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var X=document.createElement("canvas"),Q=new Image;Q.onload=function(){try{X.getContext("2d").drawImage(Q,0,0);var a=X.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(B){}};Q.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(x){}})();
+c.getCustomFonts(),f=0;f<d.length;f++){var e=d[f].name,g=d[f].url;Graph.isCssFontUrl(g)?b.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(g)+'" charset="UTF-8" type="text/css">'):(b.writeln('<style type="text/css">'),b.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(e)+'";\nsrc: url("'+mxUtils.htmlEntities(g)+'");\n}'),b.writeln("</style>"))}};if("undefined"!==typeof MathJax){var D=b.renderPage;b.renderPage=function(c,b,d,f,e,g){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&
+!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject;var p=D.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:p.className="geDisableMathJax";return p}}m=null;l=f.enableFlowAnimation;f.enableFlowAnimation=!1;null!=f.themes&&"darkTheme"==f.defaultThemeName&&(m=f.stylesheet,f.stylesheet=f.getDefaultStylesheet(),f.refresh());b.open(null,null,e,!0);f.enableFlowAnimation=l;null!=m&&(f.stylesheet=m,f.refresh())}else{y=c.background;if(null==
+y||""==y||y==mxConstants.NONE)y="#ffffff";b.backgroundColor=y;b.autoOrigin=u;b.appendGraph(c,z,m,l,e,!0);e=c.getCustomFonts();if(null!=b.wnd)for(m=0;m<e.length;m++)l=e[m].name,u=e[m].url,Graph.isCssFontUrl(u)?b.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(u)+'" charset="UTF-8" type="text/css">'):(b.wnd.document.writeln('<style type="text/css">'),b.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(l)+'";\nsrc: url("'+mxUtils.htmlEntities(u)+'");\n}'),
+b.wnd.document.writeln("</style>"))}g&&(c.useCssTransforms=g,c.currentTranslate=k,c.currentScale=p,c.view.translate=n,c.view.scale=t);return b}var d=parseInt(H.value)/100;isNaN(d)&&(d=1,H.value="100 %");var d=.75*d,e=null;null!=f.themes&&"darkTheme"==f.defaultThemeName&&(e=f.stylesheet,f.stylesheet=f.getDefaultStylesheet(),f.refresh());var g=m.value,k=l.value,n=!t.checked,v=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(a,t.checked,g,k,q.checked,B.value,R.value,parseInt(A.value)/100,parseInt(H.value)/
+100,K.get());else{n&&(n=g==p&&k==p);if(!n&&null!=a.pages&&a.pages.length){var y=0,n=a.pages.length-1;t.checked||(y=parseInt(g)-1,n=parseInt(k)-1);for(var z=y;z<=n;z++){var u=a.pages[z],g=u==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.stylesheet),k=!0,y=!1,I=null,F=null;null==u.viewState&&null==u.root&&a.updatePageRoot(u);null!=u.viewState&&(k=u.viewState.pageVisible,y=u.viewState.mathEnabled,I=u.viewState.background,F=u.viewState.backgroundImage,g.extFonts=u.viewState.extFonts);
+g.background=I;g.backgroundImage=null!=F?new mxImage(F.src,F.width,F.height):null;g.pageVisible=k;g.mathEnabled=y;var D=g.getGlobalVariable;g.getGlobalVariable=function(c){return"page"==c?u.getName():"pagenumber"==c?z+1:"pagecount"==c?null!=a.pages?a.pages.length:1:D.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(u);g.model.setRoot(u.root)}v=b(g,v,z!=n);g!=f&&g.container.parentNode.removeChild(g.container)}}else v=b(f);null==v?a.handleError({message:mxResources.get("errorUpdatingPreview")}):
+(v.mathEnabled&&(n=v.wnd.document,c&&(v.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),v.closeDocument(),!v.mathEnabled&&c&&PrintDialog.printPreview(v));null!=e&&(f.stylesheet=e,f.refresh())}}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var k=1,p=1,n=
+document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var t=document.createElement("input");t.style.cssText="margin-right:8px;margin-bottom:8px;";t.setAttribute("value","all");t.setAttribute("type","radio");t.setAttribute("name","pages-printdialog");n.appendChild(t);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));n.appendChild(g);mxUtils.br(n);var v=t.cloneNode(!0);t.setAttribute("checked","checked");
+v.setAttribute("value","range");n.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");n.appendChild(g);var m=document.createElement("input");m.style.cssText="margin:0 8px 0 8px;";m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.style.width="50px";n.appendChild(m);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));n.appendChild(g);var l=m.cloneNode(!0);n.appendChild(l);mxEvent.addListener(m,"focus",
+function(){v.checked=!0});mxEvent.addListener(l,"focus",function(){v.checked=!0});mxEvent.addListener(m,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage==a.pages[g]){p=g+1;m.value=p;l.value=p;break}m.setAttribute("max",k);l.setAttribute("max",k);a.isPagesEnabled()?1<k&&(e.appendChild(n),v.checked=!0):v.checked=!0;var y=document.createElement("div");y.style.marginBottom="10px";var z=document.createElement("input");
+z.style.marginRight="8px";z.setAttribute("value","adjust");z.setAttribute("type","radio");z.setAttribute("name","printZoom");y.appendChild(z);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));y.appendChild(g);var A=document.createElement("input");A.style.cssText="margin:0 8px 0 8px;";A.setAttribute("value","100 %");A.style.width="50px";y.appendChild(A);mxEvent.addListener(A,"focus",function(){z.checked=!0});e.appendChild(y);var n=n.cloneNode(!1),q=z.cloneNode(!0);q.setAttribute("value",
+"fit");z.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(q);n.appendChild(g);y=document.createElement("table");y.style.display="inline-block";var u=document.createElement("tbody"),I=document.createElement("tr"),F=I.cloneNode(!0),D=document.createElement("td"),G=D.cloneNode(!0),N=D.cloneNode(!0),L=D.cloneNode(!0),M=D.cloneNode(!0),J=D.cloneNode(!0);D.style.textAlign="right";L.style.textAlign=
+"right";mxUtils.write(D,mxResources.get("fitTo"));var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","1");B.setAttribute("min","1");B.setAttribute("type","number");B.style.width="40px";G.appendChild(B);g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsAcross"));N.appendChild(g);mxUtils.write(L,mxResources.get("fitToBy"));var R=B.cloneNode(!0);M.appendChild(R);mxEvent.addListener(B,"focus",function(){q.checked=!0});mxEvent.addListener(R,
+"focus",function(){q.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));J.appendChild(g);I.appendChild(D);I.appendChild(G);I.appendChild(N);F.appendChild(L);F.appendChild(M);F.appendChild(J);u.appendChild(I);u.appendChild(F);y.appendChild(u);n.appendChild(y);e.appendChild(n);n=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));n.appendChild(g);
+g=document.createElement("div");g.style.marginBottom="12px";var K=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));n.appendChild(g);var H=document.createElement("input");H.style.cssText="margin:0 8px 0 8px;";H.setAttribute("value","100 %");H.style.width="60px";n.appendChild(H);e.appendChild(n);g=document.createElement("div");g.style.cssText=
+"text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&g.appendChild(n);a.isOffline()||(y=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),y.className="geBtn",g.appendChild(y));PrintDialog.previewEnabled&&(y=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),y.className="geBtn",g.appendChild(y));y=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?
+"print":"ok"),function(){a.hideDialog();d(!0)});y.className="geBtn gePrimaryBtn";g.appendChild(y);a.editor.cancelFirst||g.appendChild(n);e.appendChild(g);this.container=e};var I=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&
+(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(I.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),
+this.shadowVisible=!this.shadowVisible))};Editor.prototype.useCanvasForExport=!1;try{var R=document.createElement("canvas"),N=new Image;N.onload=function(){try{R.getContext("2d").drawImage(N,0,0);var a=R.toDataURL("image/png");Editor.prototype.useCanvasForExport=null!=a&&6<a.length}catch(B){}};N.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(n){}})();
(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.9";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
-null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&
-!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,
-topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,d,e,k,p,u){p=null!=p?p:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&
-null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";k=null!=k?k:Error(a);(new Image).src=c+"/log?severity="+p+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=e?":colno:"+encodeURIComponent(e):"")+(null!=k&&null!=k.stack?"&stack="+encodeURIComponent(k.stack):"")}}catch(F){}try{u||null==window.console||
-console.error(p,a,b,d,e,k)}catch(F){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.sendReport=function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>
-b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(g){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)null!=arguments[b]&&a.push(arguments[b]);console.log.apply(console,a)}}catch(g){}};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,
-e)}function f(a){a=c(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.removeChildNodes=function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
-EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
+(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="14.6.10";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
+null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
+!mxClient.IS_OP&&!EditorUi.isElectronApp&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,
+messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(a,b,d,e,p,t,v){t=null!=t?t:0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
+"1"!=urlParams.dev)try{if(a!=EditorUi.lastErrorMessage&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=a;var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";p=null!=p?p:Error(a);(new Image).src=c+"/log?severity="+t+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(d)+(null!=e?":colno:"+
+encodeURIComponent(e):"")+(null!=p&&null!=p.stack?"&stack="+encodeURIComponent(p.stack):"")}}catch(F){}try{v||null==window.console||console.error(t,a,b,d,e,p)}catch(F){}};EditorUi.logEvent=function(a){if("1"==urlParams.dev)EditorUi.debug("logEvent",a);else if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.sendReport=
+function(a,b){if("1"==urlParams.dev)EditorUi.debug("sendReport",a);else if(EditorUi.enableLogging)try{b=null!=b?b:5E4,a.length>b&&(a=a.substring(0,b)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a))}catch(g){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var a=[(new Date).toISOString()],b=0;b<arguments.length;b++)null!=arguments[b]&&a.push(arguments[b]);
+console.log.apply(console,a)}}catch(g){}};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,e)}function f(a){a=c(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.removeChildNodes=
+function(a){for(;null!=a.firstChild;)a.removeChild(a.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.maxTextWidth=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.maxTextBytes=5E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.insertTemplateEnabled=!0;EditorUi.prototype.closableScratchpad=
-!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(k){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&6<a.length}catch(p){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(k){}try{b=
-document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(k){}})();EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);
+!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(p){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&&6<a.length}catch(t){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(p){}try{b=
+document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(p){}})();EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);
b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(a){return this.isOfflineApp()||!navigator.onLine||!a&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};
EditorUi.prototype.createSpinner=function(a,b,d){var c=null==a||null==b;d=null!=d?d:24;var f=new Spinner({lines:12,length:d,width:Math.round(d/3),radius:Math.round(d/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=f.spin;f.spin=function(d,g){var k=!1;this.active||(e.call(this,d),this.active=!0,null!=g&&(c&&(b=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,a=document.body.clientWidth/2-2),k=document.createElement("div"),
k.style.position="absolute",k.style.whiteSpace="nowrap",k.style.background="#4B4243",k.style.color="white",k.style.fontFamily="Helvetica, Arial",k.style.fontSize="9pt",k.style.padding="6px",k.style.paddingLeft="10px",k.style.paddingRight="10px",k.style.zIndex=2E9,k.style.left=Math.max(0,a)+"px",k.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(k.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(k.style,
"boxShadow","2px 2px 3px 0px #ddd"),"..."!=g.substring(g.length-3,g.length)&&"!"!=g.charAt(g.length-1)&&(g+="..."),k.innerHTML=g,d.appendChild(k),f.status=k),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(d,g)}));this.stop();return a}),k=!0);return k};var g=f.stop;f.stop=function(){g.call(this);this.active=!1;null!=f.status&&null!=f.status.parentNode&&f.status.parentNode.removeChild(f.status);f.status=null};f.pause=function(){return function(){}};
-return f};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(m){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&
+return f};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(k){}return!1};EditorUi.prototype.isVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&
3==a.charCodeAt(2)&&4==a.charCodeAt(3)||80==a.charCodeAt(0)&&75==a.charCodeAt(1)&&3==a.charCodeAt(2)&&6==a.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=function(a){return 8<a.length&&(208==a.charCodeAt(0)&&207==a.charCodeAt(1)&&17==a.charCodeAt(2)&&224==a.charCodeAt(3)&&161==a.charCodeAt(4)&&177==a.charCodeAt(5)&&26==a.charCodeAt(6)&&225==a.charCodeAt(7)||60==a.charCodeAt(0)&&63==a.charCodeAt(1)&&120==a.charCodeAt(2)&&109==a.charCodeAt(3)&&108==a.charCodeAt(3))};EditorUi.prototype.isPngData=
-function(a){return 8<a.length&&137==a.charCodeAt(0)&&80==a.charCodeAt(1)&&78==a.charCodeAt(2)&&71==a.charCodeAt(3)&&13==a.charCodeAt(4)&&10==a.charCodeAt(5)&&26==a.charCodeAt(6)&&10==a.charCodeAt(7)};var a=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(c){var b=a.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var d=b.getFunction,e=this.editor.graph,k=this;b.getFunction=function(a){if(e.isSelectionEmpty()&&null!=k.pages&&0<k.pages.length){var c=
-k.getSelectedPageIndex();if(mxEvent.isShiftDown(a)){if(37==a.keyCode)return function(){0<c&&k.movePage(c,c-1)};if(38==a.keyCode)return function(){0<c&&k.movePage(c,0)};if(39==a.keyCode)return function(){c<k.pages.length-1&&k.movePage(c,c+1)};if(40==a.keyCode)return function(){c<k.pages.length-1&&k.movePage(c,k.pages.length-1)}}else if(mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)){if(37==a.keyCode)return function(){0<c&&k.selectNextPage(!1)};if(38==a.keyCode)return function(){0<
-c&&k.selectPage(k.pages[0])};if(39==a.keyCode)return function(){c<k.pages.length-1&&k.selectNextPage(!0)};if(40==a.keyCode)return function(){c<k.pages.length-1&&k.selectPage(k.pages[k.pages.length-1])}}}return d.apply(this,arguments)}}return b};var b=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var c=b.apply(this,arguments);if(null==c)try{var d=a.indexOf("&lt;mxfile ");if(0<=d){var e=a.lastIndexOf("&lt;/mxfile&gt;");e>d&&(c=a.substring(d,e+
-15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var k=mxUtils.parseXml(a),p=this.editor.extractGraphModel(k.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=p?mxUtils.getXml(p):""}catch(u){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length));a=Graph.zapGremlins(a)}return a};
+function(a){return 8<a.length&&137==a.charCodeAt(0)&&80==a.charCodeAt(1)&&78==a.charCodeAt(2)&&71==a.charCodeAt(3)&&13==a.charCodeAt(4)&&10==a.charCodeAt(5)&&26==a.charCodeAt(6)&&10==a.charCodeAt(7)};var a=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(c){var b=a.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var d=b.getFunction,e=this.editor.graph,p=this;b.getFunction=function(a){if(e.isSelectionEmpty()&&null!=p.pages&&0<p.pages.length){var c=
+p.getSelectedPageIndex();if(mxEvent.isShiftDown(a)){if(37==a.keyCode)return function(){0<c&&p.movePage(c,c-1)};if(38==a.keyCode)return function(){0<c&&p.movePage(c,0)};if(39==a.keyCode)return function(){c<p.pages.length-1&&p.movePage(c,c+1)};if(40==a.keyCode)return function(){c<p.pages.length-1&&p.movePage(c,p.pages.length-1)}}else if(mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)){if(37==a.keyCode)return function(){0<c&&p.selectNextPage(!1)};if(38==a.keyCode)return function(){0<
+c&&p.selectPage(p.pages[0])};if(39==a.keyCode)return function(){c<p.pages.length-1&&p.selectNextPage(!0)};if(40==a.keyCode)return function(){c<p.pages.length-1&&p.selectPage(p.pages[p.pages.length-1])}}}return d.apply(this,arguments)}}return b};var b=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var c=b.apply(this,arguments);if(null==c)try{var d=a.indexOf("&lt;mxfile ");if(0<=d){var e=a.lastIndexOf("&lt;/mxfile&gt;");e>d&&(c=a.substring(d,e+
+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var p=mxUtils.parseXml(a),t=this.editor.extractGraphModel(p.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=t?mxUtils.getXml(t):""}catch(v){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length));a=Graph.zapGremlins(a)}return a};
EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate();try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-
-1;0<=e;e--){var p=this.updatePageRoot(new DiagramPage(d[e]));null==p.getName()&&p.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,p,0==e?p:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
-this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,k,p,u,l,n,z,y){b=null!=b?b:this.editor.graph;k=null!=k?k:!1;n=null!=n?n:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){if(y){var m=
-a.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());m.appendChild(a)}else{m=Graph.zapGremlins(mxUtils.getXml(a));g=Graph.compress(m);if(Graph.decompress(g)!=m)return m;m=a.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());mxUtils.setTextContent(m,g)}g=a.ownerDocument.createElement("mxfile");g.appendChild(m)}z?(g=g.cloneNode(!0),g.removeAttribute("modified"),g.removeAttribute("host"),g.removeAttribute("agent"),g.removeAttribute("etag"),g.removeAttribute("userAgent"),
+1;0<=e;e--){var t=this.updatePageRoot(new DiagramPage(d[e]));null==t.getName()&&t.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,t,0==e?t:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),
+this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,p,t,v,m,l,y,z){b=null!=b?b:this.editor.graph;p=null!=p?p:!1;l=null!=l?l:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){if(z){var k=
+a.ownerDocument.createElement("diagram");k.setAttribute("id",Editor.guid());k.appendChild(a)}else{k=Graph.zapGremlins(mxUtils.getXml(a));g=Graph.compress(k);if(Graph.decompress(g)!=k)return k;k=a.ownerDocument.createElement("diagram");k.setAttribute("id",Editor.guid());mxUtils.setTextContent(k,g)}g=a.ownerDocument.createElement("mxfile");g.appendChild(k)}y?(g=g.cloneNode(!0),g.removeAttribute("modified"),g.removeAttribute("host"),g.removeAttribute("agent"),g.removeAttribute("etag"),g.removeAttribute("userAgent"),
g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.removeAttribute("userAgent"),g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("pages"),g.removeAttribute("type"),mxClient.IS_CHROMEAPP?g.setAttribute("host","Chrome"):EditorUi.isElectronApp?g.setAttribute("host","Electron"):g.setAttribute("host",window.location.hostname),g.setAttribute("modified",(new Date).toISOString()),g.setAttribute("agent",navigator.appVersion),g.setAttribute("version",
-EditorUi.VERSION),g.setAttribute("etag",Editor.guid()),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a),1<g.getElementsByTagName("diagram").length&&null!=this.pages&&g.setAttribute("pages",this.pages.length));y=y?mxUtils.getPrettyXml(g):mxUtils.getXml(g);if(!p&&!k&&(u||null!=d&&/(\.html)$/i.test(d.getTitle())))y=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(p||!k&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
-App.MODE_BROWSER||(e=null),y=this.getEmbeddedSvg(y,b,e,null,l,n,f);return y};EditorUi.prototype.getXmlFileData=function(a,b,d){a=null!=a?a:!0;b=null!=b?b:!1;d=null!=d?d:!Editor.compressXml;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=function(a){var b=a.getElementsByTagName("mxGraphModel"),b=0<b.length?b[0]:null;null==b&&d?(b=mxUtils.trim(mxUtils.getTextContent(a)),a=a.cloneNode(!1),0<b.length&&(b=Graph.decompress(b),null!=b&&0<b.length&&a.appendChild(mxUtils.parseXml(b).documentElement))):
+EditorUi.VERSION),g.setAttribute("etag",Editor.guid()),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a),1<g.getElementsByTagName("diagram").length&&null!=this.pages&&g.setAttribute("pages",this.pages.length));z=z?mxUtils.getPrettyXml(g):mxUtils.getXml(g);if(!t&&!p&&(v||null!=d&&/(\.html)$/i.test(d.getTitle())))z=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(t||!p&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
+App.MODE_BROWSER||(e=null),z=this.getEmbeddedSvg(z,b,e,null,m,l,f);return z};EditorUi.prototype.getXmlFileData=function(a,b,d){a=null!=a?a:!0;b=null!=b?b:!1;d=null!=d?d:!Editor.compressXml;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(a=function(a){var b=a.getElementsByTagName("mxGraphModel"),b=0<b.length?b[0]:null;null==b&&d?(b=mxUtils.trim(mxUtils.getTextContent(a)),a=a.cloneNode(!1),0<b.length&&(b=Graph.decompress(b),null!=b&&0<b.length&&a.appendChild(mxUtils.parseXml(b).documentElement))):
null==b||d?a=a.cloneNode(!0):(a=a.cloneNode(!1),mxUtils.setTextContent(a,Graph.compressNode(b)));c.appendChild(a)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(c)),c=this.fileNode.cloneNode(!1),b)a(this.currentPage.node);else for(b=0;b<this.pages.length;b++){if(this.currentPage!=this.pages[b]&&this.pages[b].needsUpdate){var f=(new mxCodec(mxUtils.createXmlDocument())).encode(new mxGraphModel(this.pages[b].root));this.editor.graph.saveViewState(this.pages[b].viewState,
f);EditorUi.removeChildNodes(this.pages[b].node);mxUtils.setTextContent(this.pages[b].node,Graph.compressNode(f));delete this.pages[b].needsUpdate}a(this.pages[b].node)}return c};EditorUi.prototype.anonymizeString=function(a,b){for(var c=[],d=0;d<a.length;d++){var f=a.charAt(d);0<=EditorUi.ignoredAnonymizedChars.indexOf(f)?c.push(f):isNaN(parseInt(f))?f.toLowerCase()!=f?c.push(String.fromCharCode(65+Math.round(25*Math.random()))):f.toUpperCase()!=f?c.push(String.fromCharCode(97+Math.round(25*Math.random()))):
-/\s/.test(f)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var c=0;c<a[EditorUi.DIFF_INSERT].length;c++)try{var b=mxUtils.parseXml(a[EditorUi.DIFF_INSERT][c].data).documentElement.cloneNode(!1);null!=b.getAttribute("name")&&b.setAttribute("name",this.anonymizeString(b.getAttribute("name")));a[EditorUi.DIFF_INSERT][c].data=mxUtils.getXml(b)}catch(p){a[EditorUi.DIFF_INSERT][c].data=
-p.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var e=a[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(c=mxUtils.bind(this,function(a){var c=e.cells[a];if(null!=c){for(var b in c)null!=c[b].value&&(c[b].value="["+c[b].value.length+"]"),null!=c[b].xmlValue&&(c[b].xmlValue="["+c[b].xmlValue.length+"]"),null!=c[b].style&&(c[b].style="["+c[b].style.length+"]"),0==Object.keys(c[b]).length&&delete c[b];0==Object.keys(c).length&&
+/\s/.test(f)?c.push(" "):c.push("?"):c.push(b?"0":Math.round(9*Math.random()))}return c.join("")};EditorUi.prototype.anonymizePatch=function(a){if(null!=a[EditorUi.DIFF_INSERT])for(var c=0;c<a[EditorUi.DIFF_INSERT].length;c++)try{var b=mxUtils.parseXml(a[EditorUi.DIFF_INSERT][c].data).documentElement.cloneNode(!1);null!=b.getAttribute("name")&&b.setAttribute("name",this.anonymizeString(b.getAttribute("name")));a[EditorUi.DIFF_INSERT][c].data=mxUtils.getXml(b)}catch(t){a[EditorUi.DIFF_INSERT][c].data=
+t.message}if(null!=a[EditorUi.DIFF_UPDATE]){for(var d in a[EditorUi.DIFF_UPDATE]){var e=a[EditorUi.DIFF_UPDATE][d];null!=e.name&&(e.name=this.anonymizeString(e.name));null!=e.cells&&(c=mxUtils.bind(this,function(a){var c=e.cells[a];if(null!=c){for(var b in c)null!=c[b].value&&(c[b].value="["+c[b].value.length+"]"),null!=c[b].xmlValue&&(c[b].xmlValue="["+c[b].xmlValue.length+"]"),null!=c[b].style&&(c[b].style="["+c[b].style.length+"]"),0==Object.keys(c[b]).length&&delete c[b];0==Object.keys(c).length&&
delete e.cells[a]}}),c(EditorUi.DIFF_INSERT),c(EditorUi.DIFF_UPDATE),0==Object.keys(e.cells).length&&delete e.cells);0==Object.keys(e).length&&delete a[EditorUi.DIFF_UPDATE][d]}0==Object.keys(a[EditorUi.DIFF_UPDATE]).length&&delete a[EditorUi.DIFF_UPDATE]}return a};EditorUi.prototype.anonymizeAttributes=function(a,b){if(null!=a.attributes)for(var c=0;c<a.attributes.length;c++)"as"!=a.attributes[c].name&&a.setAttribute(a.attributes[c].name,this.anonymizeString(a.attributes[c].value,b));if(null!=a.childNodes)for(c=
0;c<a.childNodes.length;c++)this.anonymizeAttributes(a.childNodes[c],b)};EditorUi.prototype.anonymizeNode=function(a,b){for(var c=a.getElementsByTagName("mxCell"),d=0;d<c.length;d++)null!=c[d].getAttribute("value")&&c[d].setAttribute("value","["+c[d].getAttribute("value").length+"]"),null!=c[d].getAttribute("xmlValue")&&c[d].setAttribute("xmlValue","["+c[d].getAttribute("xmlValue").length+"]"),null!=c[d].getAttribute("style")&&c[d].setAttribute("style","["+c[d].getAttribute("style").length+"]"),null!=
c[d].parentNode&&"root"!=c[d].parentNode.nodeName&&null!=c[d].parentNode.parentNode&&(c[d].setAttribute("id",c[d].parentNode.getAttribute("id")),c[d].parentNode.parentNode.replaceChild(c[d],c[d].parentNode));return a};EditorUi.prototype.synchronizeCurrentFile=function(a){var c=this.getCurrentFile();null!=c&&(c.savingFile?this.handleError({message:mxResources.get("busy")}):!a&&c.invalidChecksum?c.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(c.clearAutosave(),
-this.editor.setStatus(""),a?c.reloadFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)})):c.synchronizeFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,d,e,k,p,u,l,n,z){k=null!=k?k:!0;p=null!=p?p:!1;var c=this.editor.graph;if(b||!a&&null!=n&&/(\.svg)$/i.test(n.getTitle()))if(z=
-!1,null!=c.themes&&"darkTheme"==c.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var f=c.getGlobalVariable,c=this.createTemporaryGraph(c.getStylesheet()),g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}u=null!=u?u:this.getXmlFileData(k,p,z);n=null!=n?n:this.getCurrentFile();a=this.createFileData(u,c,n,window.location.href,a,b,d,e,k,l,z);c!=this.editor.graph&&
-c.container.parentNode.removeChild(c.container);return a};EditorUi.prototype.getHtml=function(a,b,d,e,k,p){p=null!=p?p:!0;var c=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var c=p?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;p=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==k&&(b=this.getBasenames().join(";"),0<b.length&&(f=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",p);a.setAttribute("y0",
-g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=k&&(k=k.replace(/&/g,"&amp;"));a=null!=a?Graph.zapGremlins(mxUtils.getXml(a)):"";e=Graph.compress(a);Graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+
-(null!=k?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==k?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=k?'<meta http-equiv="refresh" content="0;URL=\''+k+"'\"/>\n":"")+"</head>\n<body"+(null==k&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==k?'<script type="text/javascript" src="'+
-f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,d,e,k){b=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=k&&(k=k.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};
-null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=k?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==k?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=k?'<meta http-equiv="refresh" content="0;URL=\''+k+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
-mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==k?'<script type="text/javascript" src="'+b+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
+this.editor.setStatus(""),a?c.reloadFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)})):c.synchronizeFile(mxUtils.bind(this,function(){c.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(a){c.handleFileError(a,!0)}))))};EditorUi.prototype.getFileData=function(a,b,d,e,p,t,m,l,q,y){p=null!=p?p:!0;t=null!=t?t:!1;var c=this.editor.graph;if(b||!a&&null!=q&&/(\.svg)$/i.test(q.getTitle()))if(y=
+!1,null!=c.themes&&"darkTheme"==c.defaultThemeName||null!=this.pages&&this.currentPage!=this.pages[0]){var f=c.getGlobalVariable,c=this.createTemporaryGraph(c.getStylesheet()),g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}m=null!=m?m:this.getXmlFileData(p,t,y);q=null!=q?q:this.getCurrentFile();a=this.createFileData(m,c,q,window.location.href,a,b,d,e,p,l,y);c!=this.editor.graph&&
+c.container.parentNode.removeChild(c.container);return a};EditorUi.prototype.getHtml=function(a,b,d,e,p,t){t=null!=t?t:!0;var c=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=b){var c=t?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;t=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==p&&(b=this.getBasenames().join(";"),0<b.length&&(f=EditorUi.drawHost+"/embed.js?s="+b));a.setAttribute("x0",t);a.setAttribute("y0",
+g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=p&&(p=p.replace(/&/g,"&amp;"));a=null!=a?Graph.zapGremlins(mxUtils.getXml(a)):"";e=Graph.compress(a);Graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==p?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+
+(null!=p?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==p?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=p?'<meta http-equiv="refresh" content="0;URL=\''+p+"'\"/>\n":"")+"</head>\n<body"+(null==p&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==p?'<script type="text/javascript" src="'+
+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+p+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,d,e,p){b=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=p&&(p=p.replace(/&/g,"&amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:Graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};
+null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==p?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=p?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==p?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=p?'<meta http-equiv="refresh" content="0;URL=\''+p+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
+mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==p?'<script type="text/javascript" src="'+b+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+p+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
null;var c=Editor.extractParserError(a,mxResources.get("invalidOrMissingFile"));if(c)throw Error(mxResources.get("notADiagramFile")+" ("+c+")");c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a&&"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<c.length||1==c.length&&c[0].hasAttribute("name"))){var b=null;this.fileNode=a;this.pages=[];for(var d=0;d<c.length;d++)null==c[d].getAttribute("id")&&c[d].setAttribute("id",d),a=new DiagramPage(c[d]),
null==a.getName()&&a.setName(mxResources.get("pageWithNumber",[d+1])),this.pages.push(a),null!=urlParams["page-id"]&&a.getId()==urlParams["page-id"]&&(b=a);this.currentPage=null!=b?b:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];a=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");a={};for(d=0;d<e.length;d++)a[e[d]]=!0;for(var p=this.editor.graph.getModel(),l=p.getChildren(p.root),d=0;d<l.length;d++){var n=l[d];p.setVisible(n,a[n.id]||!1)}}catch(F){}};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c)||/(\.drawio)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,k,p,l,n,q,z,y){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!k),
-f=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,e,k,null,null,null,b);this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d=this.editor.graph.pageVisible;
-null!=p&&(this.editor.graph.pageVisible=p);var f=this.createDownloadRequest(c,a,e,b,l,k,n,q,z,y);this.editor.graph.pageVisible=d;return f}catch(B){this.handleError(B)}}));else{var m=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var A=this.editor.graph.background;if(l||A==mxConstants.NONE)A=
-null;var t=this.editor.graph.getSvg(A,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(t);this.editor.convertImages(t,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();u('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),e)}}catch(H){this.handleError(H)}};EditorUi.prototype.createDownloadRequest=
-function(a,b,d,e,k,p,l,n,q,z){var c=this.editor.graph,f=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==p?!1:"xmlpng"!=b);var g="",m="";if(f.width*f.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};z=z?"1":"0";"pdf"==b&&0==p&&(m="&allPages=1");if("xmlpng"==b&&(z="1",b="png",null!=this.pages&&null!=this.currentPage))for(p=0;p<this.pages.length;p++)if(this.pages[p]==this.currentPage){g="&from="+p;break}p=c.background;"png"!=b&&"pdf"!=b||!k?k||
-null!=p&&p!=mxConstants.NONE||(p="#ffffff"):p=mxConstants.NONE;k={globalVars:c.getExportVariables()};q&&(k.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+m+"&bg="+(null!=p?p:mxConstants.NONE)+"&base64="+e+"&embedXml="+z+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=l?"&scale="+
-l:"")+(null!=n?"&border="+n:""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,
-mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),m()):this.handleError({message:mxResources.get("error")+
-" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)})):f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||e.warningImage,
-a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var e=this.editor.graph,p=e.getModel();p.beginUpdate();var l=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=p.getCell(a.getAttribute("id"));if(null!=n){try{var q=a.getAttribute("value");if(null!=q){var z=mxUtils.parseXml(q).documentElement;
-if(null!=z)if("1"==z.getAttribute("replace-value"))p.setValue(n,z);else for(var y=z.attributes,t=0;t<y.length;t++)e.setAttributeForCell(n,y[t].nodeName,0<y[t].nodeValue.length?y[t].nodeValue:null)}}catch(X){null!=window.console&&console.log("Error in value for "+n.id+": "+X)}try{var L=a.getAttribute("style");null!=L&&e.model.setStyle(n,L)}catch(X){null!=window.console&&console.log("Error in style for "+n.id+": "+X)}try{var I=a.getAttribute("icon");if(null!=I){var G=0<I.length?JSON.parse(I):null;null!=
-G&&G.append||e.removeCellOverlays(n);null!=G&&e.addCellOverlay(n,c(G))}}catch(X){null!=window.console&&console.log("Error in icon for "+n.id+": "+X)}try{var K=a.getAttribute("geometry");if(null!=K){var K=JSON.parse(K),E=e.getCellGeometry(n);if(null!=E){E=E.clone();for(key in K){var J=parseFloat(K[key]);"dx"==key?E.x+=J:"dy"==key?E.y+=J:"dw"==key?E.width+=J:"dh"==key?E.height+=J:E[key]=parseFloat(K[key])}e.model.setGeometry(n,E)}}}catch(X){null!=window.console&&console.log("Error in icon for "+n.id+
-": "+X)}}}else if("model"==a.nodeName){for(var H=a.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=H.nextSibling;null!=H&&(new mxCodec(a.firstChild)).decode(H,p)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(e.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(l=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
-1);a=a.nextSibling}}finally{p.endUpdate()}null!=l&&this.chromelessResize&&this.chromelessResize(!0,l)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),l=e.getMonth()+1,n=e.getDate(),q=e.getHours(),z=e.getMinutes(),e=e.getSeconds(),c=c+(" "+(f+"-"+l+"-"+n+"-"+q+"-"+z+"-"+e));return c=mxResources.get("copyOf",[c])+d};
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");a={};for(d=0;d<e.length;d++)a[e[d]]=!0;for(var t=this.editor.graph.getModel(),m=t.getChildren(t.root),d=0;d<m.length;d++){var l=m[d];t.setVisible(l,a[l.id]||!1)}}catch(F){}};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():
+this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c)||/(\.drawio)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,p,t,m,l,q,y,z){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!p),
+f=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+this.getFileData(!0,null,null,null,e,p,null,null,null,b);this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d=this.editor.graph.pageVisible;
+null!=t&&(this.editor.graph.pageVisible=t);var f=this.createDownloadRequest(c,a,e,b,m,p,l,q,y,z);this.editor.graph.pageVisible=d;return f}catch(B){this.handleError(B)}}));else{var k=null,v=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(k)}))});if("svg"==a){var A=this.editor.graph.background;if(m||A==mxConstants.NONE)A=
+null;var u=this.editor.graph.getSvg(A,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(u);this.editor.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();v('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",k=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();v(a)}),e)}}catch(I){this.handleError(I)}};EditorUi.prototype.createDownloadRequest=
+function(a,b,d,e,p,t,m,l,q,y){var c=this.editor.graph,f=c.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==t?!1:"xmlpng"!=b);var g="",k="";if(f.width*f.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};y=y?"1":"0";"pdf"==b&&0==t&&(k="&allPages=1");if("xmlpng"==b&&(y="1",b="png",null!=this.pages&&null!=this.currentPage))for(t=0;t<this.pages.length;t++)if(this.pages[t]==this.currentPage){g="&from="+t;break}t=c.background;"png"!=b&&"pdf"!=b||!p?p||
+null!=t&&t!=mxConstants.NONE||(t="#ffffff"):t=mxConstants.NONE;p={globalVars:c.getExportVariables()};q&&(p.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});Graph.translateDiagram&&(p.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+b+g+k+"&bg="+(null!=t?t:mxConstants.NONE)+"&base64="+e+"&embedXml="+y+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(p))+(null!=m?"&scale="+
+m:"")+(null!=l?"&border="+l:""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,
+mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),p()):this.handleError({message:mxResources.get("error")+
+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),p=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){p();k()}));p();k()}null!=b&&b()});null!=a.url&&0<a.url.length?this.editor.loadUrl(a.url,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)})):f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||e.warningImage,
+a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){d.alert(a.tooltip)});return c}var b=null,d=this;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,null!=a&&"updates"==a.nodeName)){var e=this.editor.graph,t=e.getModel();t.beginUpdate();var m=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var l=t.getCell(a.getAttribute("id"));if(null!=l){try{var q=a.getAttribute("value");if(null!=q){var y=mxUtils.parseXml(q).documentElement;
+if(null!=y)if("1"==y.getAttribute("replace-value"))t.setValue(l,y);else for(var z=y.attributes,u=0;u<z.length;u++)e.setAttributeForCell(l,z[u].nodeName,0<z[u].nodeValue.length?z[u].nodeValue:null)}}catch(R){null!=window.console&&console.log("Error in value for "+l.id+": "+R)}try{var M=a.getAttribute("style");null!=M&&e.model.setStyle(l,M)}catch(R){null!=window.console&&console.log("Error in style for "+l.id+": "+R)}try{var G=a.getAttribute("icon");if(null!=G){var J=0<G.length?JSON.parse(G):null;null!=
+J&&J.append||e.removeCellOverlays(l);null!=J&&e.addCellOverlay(l,c(J))}}catch(R){null!=window.console&&console.log("Error in icon for "+l.id+": "+R)}try{var H=a.getAttribute("geometry");if(null!=H){var H=JSON.parse(H),D=e.getCellGeometry(l);if(null!=D){D=D.clone();for(key in H){var K=parseFloat(H[key]);"dx"==key?D.x+=K:"dy"==key?D.y+=K:"dw"==key?D.width+=K:"dh"==key?D.height+=K:D[key]=parseFloat(H[key])}e.model.setGeometry(l,D)}}}catch(R){null!=window.console&&console.log("Error in icon for "+l.id+
+": "+R)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=I&&(new mxCodec(a.firstChild)).decode(I,t)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&(e.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(m=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):
+1);a=a.nextSibling}}finally{t.endUpdate()}null!=m&&this.chromelessResize&&this.chromelessResize(!0,m)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),m=e.getMonth()+1,l=e.getDate(),q=e.getHours(),y=e.getMinutes(),e=e.getSeconds(),c=c+(" "+(f+"-"+m+"-"+l+"-"+q+"-"+y+"-"+e));return c=mxResources.get("copyOf",[c])+d};
EditorUi.prototype.fileLoaded=function(a,b){var c=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var d=!1;this.hideDialog();null!=c&&(EditorUi.debug("File.closed",[c]),c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var f=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
this.setBackgroundImage(null);!b&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();b||this.showSplash()});if(null!=a)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);
a.addListener("contentChanged",this.descriptorChangedListener);a.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();a.isEditable()?a.isModified()?(a.addUnsavedStatus(),null!=a.backupPatch&&a.patch([a.backupPatch])):this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+
"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));d=!0;this.isOffline()||null==a.getMode()||EditorUi.logEvent({category:a.getMode().toUpperCase()+"-OPEN-FILE-"+a.getHash(),action:"size_"+a.getSize(),
-label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[a]);if(this.editor.editable&&this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(u){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(u){}}catch(u){this.fileLoadedError=u;if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=a?a.getHash():
-"none"),action:"message_"+u.message,label:"stack_"+u.stack})}catch(A){}var e=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?this.fileLoaded(c):f()});b?e():this.handleError(u,mxResources.get("errorLoadingFile"),e,!0,null,null,!0)}else f();return d};EditorUi.prototype.getHashValueForPages=function(a,b){var c=0,d=new mxGraphModel,f=new mxCodec;null!=b&&(b.byteCount=0,b.attrCount=
-0,b.eltCount=0,b.nodeCount=0);for(var e=0;e<a.length;e++){this.updatePageRoot(a[e]);var l=a[e].node.cloneNode(!1);l.removeAttribute("name");d.root=a[e].root;var n=f.encode(d);this.editor.graph.saveViewState(a[e].viewState,n,!0);n.removeAttribute("pageWidth");n.removeAttribute("pageHeight");l.appendChild(n);null!=b&&(b.eltCount+=l.getElementsByTagName("*").length,b.nodeCount+=l.getElementsByTagName("mxCell").length);c=(c<<5)-c+this.hashValue(l,function(a,c,b,d){return!d||"mxGeometry"!=a.nodeName&&
+label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[a]);if(this.editor.editable&&this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(v){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(v){}}catch(v){this.fileLoadedError=v;if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=a?a.getHash():
+"none"),action:"message_"+v.message,label:"stack_"+v.stack})}catch(A){}var e=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?this.fileLoaded(c):f()});b?e():this.handleError(v,mxResources.get("errorLoadingFile"),e,!0,null,null,!0)}else f();return d};EditorUi.prototype.getHashValueForPages=function(a,b){var c=0,d=new mxGraphModel,f=new mxCodec;null!=b&&(b.byteCount=0,b.attrCount=
+0,b.eltCount=0,b.nodeCount=0);for(var e=0;e<a.length;e++){this.updatePageRoot(a[e]);var m=a[e].node.cloneNode(!1);m.removeAttribute("name");d.root=a[e].root;var l=f.encode(d);this.editor.graph.saveViewState(a[e].viewState,l,!0);l.removeAttribute("pageWidth");l.removeAttribute("pageHeight");m.appendChild(l);null!=b&&(b.eltCount+=m.getElementsByTagName("*").length,b.nodeCount+=m.getElementsByTagName("mxCell").length);c=(c<<5)-c+this.hashValue(m,function(a,c,b,d){return!d||"mxGeometry"!=a.nodeName&&
"mxPoint"!=a.nodeName||"x"!=c&&"y"!=c&&"width"!=c&&"height"!=c?d&&"mxCell"==a.nodeName&&"previous"==c?null:b:Math.round(b)},b)<<0}return c};EditorUi.prototype.hashValue=function(a,b,d){var c=0;if(null!=a&&"object"===typeof a&&"number"===typeof a.nodeType&&"string"===typeof a.nodeName&&"function"===typeof a.getAttribute){null!=a.nodeName&&(c^=this.hashValue(a.nodeName,b,d));if(null!=a.attributes){null!=d&&(d.attrCount+=a.attributes.length);for(var f=0;f<a.attributes.length;f++){var e=a.attributes[f].name,
g=null!=b?b(a,e,a.attributes[f].value,!0):a.attributes[f].value;null!=g&&(c^=this.hashValue(e,b,d)+this.hashValue(g,b,d))}}if(null!=a.childNodes)for(f=0;f<a.childNodes.length;f++)c=(c<<5)-c+this.hashValue(a.childNodes[f],b,d)<<0}else if(null!=a&&"function"!==typeof a){a=String(a);b=0;null!=d&&(d.byteCount+=a.length);for(f=0;f<a.length;f++)b=(b<<5)-b+a.charCodeAt(f)<<0;c^=b}return c};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=
-function(a,b,d,e,k,p,l){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),
+function(a,b,d,e,p,t,m){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),
b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};
EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a,b){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var d=JSON.parse(mxUtils.getTextContent(c.documentElement));
this.libraryLoaded(a,d,c.documentElement.getAttribute("title"),b)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,d,e){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=
-null,g=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);d=null!=d&&0<d.length?d:a.getTitle();var m=this.sidebar.addPalette(a.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(a){g(b,a)}));this.repositionLibrary(c);var l=m.parentNode.previousSibling;e=l.getAttribute("title");
-null!=e&&0<e.length&&".scratchpad"!=a.title&&l.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+e);var n=document.createElement("div");n.style.position="absolute";n.style.right="0px";n.style.top="0px";n.style.padding="8px";n.style.backgroundColor="inherit";l.style.position="relative";var y=document.createElement("img");y.setAttribute("src",Dialog.prototype.closeImage);y.setAttribute("title",mxResources.get("close"));y.setAttribute("valign","absmiddle");y.setAttribute("border","0");y.style.cursor=
-"pointer";y.style.margin="0 3px";var q=null;if(".scratchpad"!=a.title||this.closableScratchpad)n.appendChild(y),mxEvent.addListener(y,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var t=this.editor.graph,I=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
-m,b,a,a.getMode());mxEvent.consume(c)}),K=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=I&&null!=I.parentNode&&I.parentNode.removeChild(I),I=y.cloneNode(!1),I.setAttribute("src",Editor.spinImage),I.setAttribute("title",mxResources.get("saving")),I.style.cursor="default",I.style.marginRight="2px",I.style.marginTop="-2px",n.insertBefore(I,n.firstChild),l.style.paddingRight=18*n.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=I&&null!=
-I.parentNode&&(I.parentNode.removeChild(I),l.style.paddingRight=18*n.childNodes.length+"px")})):null==q&&(q=y.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",mxResources.get("save")),n.insertBefore(q,n.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||(l.style.paddingRight=18*n.childNodes.length+"px",q.parentNode.removeChild(q),
-q=null)});mxEvent.consume(c)})),l.style.paddingRight=18*n.childNodes.length+"px")}),E=mxUtils.bind(this,function(a,c,d,e){a=t.cloneCells(mxUtils.sortCells(t.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var k=t.getCellGeometry(a[g]);null!=k&&k.translate(-c.x,-c.y)}m.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);K(d);null!=
-f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),J=mxUtils.bind(this,function(a){if(t.isSelectionEmpty())t.getRubberband().isActive()?(t.getRubberband().execute(a),t.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=t.getSelectionCells(),b=t.view.getBounds(c),d=t.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=t.view.translate.x;b.y-=t.view.translate.y;E(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(m,
-function(){},mxUtils.bind(this,function(a){t.isMouseDown&&null!=t.panningManager&&null!=t.graphHandler.first&&(t.graphHandler.suspend(),null!=t.graphHandler.hint&&(t.graphHandler.hint.style.visibility="hidden"),m.style.backgroundColor="#f1f3f4",m.style.cursor="copy",t.panningManager.stop(),t.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){t.isMouseDown&&null!=t.panningManager&&null!=t.graphHandler&&(m.style.backgroundColor="",m.style.cursor="default",this.sidebar.showTooltips=!0,
-t.panningManager.stop(),t.graphHandler.reset(),t.isMouseDown=!1,t.autoScroll=!0,J(a),mxEvent.consume(a))}));mxEvent.addListener(m,"mouseleave",mxUtils.bind(this,function(a){t.isMouseDown&&null!=t.graphHandler.first&&(t.graphHandler.resume(),null!=t.graphHandler.hint&&(t.graphHandler.hint.style.visibility="visible"),m.style.backgroundColor="",m.style.cursor="",t.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(m,"dragover",mxUtils.bind(this,function(a){m.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
-"copy";m.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(m,"drop",mxUtils.bind(this,function(a){m.style.cursor="";m.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,e,k,p,l,n,u,y){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
-new mxGeometry(0,0,p,l),c)],c[0].vertex=!0,E(c,new mxRectangle(0,0,p,l),a,mxEvent.isAltDown(a)?null:n.substring(0,n.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var z=!1,q=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(c);null!=e&&0<e.length&&(c=e)}if(null!=c)if(e=mxUtils.parseXml(c),"mxlibrary"==e.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(e.documentElement));
-g(k,m);b=b.concat(k);K(a);this.spinner.stop();z=!0}catch(V){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),k=0;k<p.length;k++){var l=this.stringToCells(Editor.getDiagramNodeXml(p[k])),n=this.editor.graph.getBoundingBoxFromGeometry(l);E(l,new mxRectangle(0,0,n.width,n.height),a)}z=!0}catch(V){null!=window.console&&console.log("error in drop handler:",V)}z||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
-null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=y&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?this.importVisio(y,function(a){q(a,"text/xml")},null,n):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,n)&&null!=y?this.parseFile(y,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?q(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?
-"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):q(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(m,"dragleave",function(a){m.style.cursor="";m.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));y=y.cloneNode(!1);y.setAttribute("src",Editor.editImage);y.setAttribute("title",mxResources.get("edit"));n.insertBefore(y,n.firstChild);mxEvent.addListener(y,"click",G);mxEvent.addListener(m,"dblclick",function(a){mxEvent.getSource(a)==
-m&&G(a)});e=y.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));n.insertBefore(e,n.firstChild);mxEvent.addListener(e,"click",J);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
-mxEvent.consume(a)})),n.insertBefore(e,n.firstChild))}l.appendChild(n);l.style.paddingRight=18*n.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+"image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(Graph.decompress(d.xml)),
+null,g=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});null!=this.sidebar&&null!=b&&this.sidebar.addEntries(b);d=null!=d&&0<d.length?d:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(a){g(b,a)}));this.repositionLibrary(c);var m=k.parentNode.previousSibling;e=m.getAttribute("title");
+null!=e&&0<e.length&&".scratchpad"!=a.title&&m.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+e);var l=document.createElement("div");l.style.position="absolute";l.style.right="0px";l.style.top="0px";l.style.padding="8px";l.style.backgroundColor="inherit";m.style.position="relative";var z=document.createElement("img");z.setAttribute("src",Dialog.prototype.closeImage);z.setAttribute("title",mxResources.get("close"));z.setAttribute("valign","absmiddle");z.setAttribute("border","0");z.style.cursor=
+"pointer";z.style.margin="0 3px";var q=null;if(".scratchpad"!=a.title||this.closableScratchpad)l.appendChild(z),mxEvent.addListener(z,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=q?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var u=this.editor.graph,G=null,J=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
+k,b,a,a.getMode());mxEvent.consume(c)}),H=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=G&&null!=G.parentNode&&G.parentNode.removeChild(G),G=z.cloneNode(!1),G.setAttribute("src",Editor.spinImage),G.setAttribute("title",mxResources.get("saving")),G.style.cursor="default",G.style.marginRight="2px",G.style.marginTop="-2px",l.insertBefore(G,l.firstChild),m.style.paddingRight=18*l.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=G&&null!=
+G.parentNode&&(G.parentNode.removeChild(G),m.style.paddingRight=18*l.childNodes.length+"px")})):null==q&&(q=z.cloneNode(!1),q.setAttribute("src",IMAGE_PATH+"/download.png"),q.setAttribute("title",mxResources.get("save")),l.insertBefore(q,l.firstChild),mxEvent.addListener(q,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==q||a.isModified()||(m.style.paddingRight=18*l.childNodes.length+"px",q.parentNode.removeChild(q),
+q=null)});mxEvent.consume(c)})),m.style.paddingRight=18*l.childNodes.length+"px")}),D=mxUtils.bind(this,function(a,c,d,e){a=u.cloneCells(mxUtils.sortCells(u.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var p=u.getCellGeometry(a[g]);null!=p&&p.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);H(d);null!=
+f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=mxUtils.bind(this,function(a){if(u.isSelectionEmpty())u.getRubberband().isActive()?(u.getRubberband().execute(a),u.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=u.getSelectionCells(),b=u.view.getBounds(c),d=u.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=u.view.translate.x;b.y-=u.view.translate.y;D(c,b)}mxEvent.consume(a)});mxEvent.addGestureListeners(k,
+function(){},mxUtils.bind(this,function(a){u.isMouseDown&&null!=u.panningManager&&null!=u.graphHandler.first&&(u.graphHandler.suspend(),null!=u.graphHandler.hint&&(u.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",u.panningManager.stop(),u.autoScroll=!1,mxEvent.consume(a))}),mxUtils.bind(this,function(a){u.isMouseDown&&null!=u.panningManager&&null!=u.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,
+u.panningManager.stop(),u.graphHandler.reset(),u.isMouseDown=!1,u.autoScroll=!0,K(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){u.isMouseDown&&null!=u.graphHandler.first&&(u.graphHandler.resume(),null!=u.graphHandler.hint&&(u.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",u.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){k.style.backgroundColor="#f1f3f4";a.dataTransfer.dropEffect=
+"copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.cursor="";k.style.backgroundColor="";0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,e,p,t,m,l,v,y){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(c),c=[new mxCell("",
+new mxGeometry(0,0,t,m),c)],c[0].vertex=!0,D(c,new mxRectangle(0,0,t,m),a,mxEvent.isAltDown(a)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var n=!1,z=mxUtils.bind(this,function(c,d){if(null!=c&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(c);null!=e&&0<e.length&&(c=e)}if(null!=c)if(e=mxUtils.parseXml(c),"mxlibrary"==e.documentElement.nodeName)try{var p=JSON.parse(mxUtils.getTextContent(e.documentElement));
+g(p,k);b=b.concat(p);H(a);this.spinner.stop();n=!0}catch(V){}else if("mxfile"==e.documentElement.nodeName)try{for(var t=e.documentElement.getElementsByTagName("diagram"),p=0;p<t.length;p++){var m=this.stringToCells(Editor.getDiagramNodeXml(t[p])),l=this.editor.graph.getBoundingBoxFromGeometry(m);D(m,new mxRectangle(0,0,l.width,l.height),a)}n=!0}catch(V){null!=window.console&&console.log("error in drop handler:",V)}n||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
+null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=y&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?this.importVisio(y,function(a){z(a,"text/xml")},null,l):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,l)&&null!=y?this.parseFile(y,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?z(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?
+"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):z(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){k.style.cursor="";k.style.backgroundColor="";a.stopPropagation();a.preventDefault()}));z=z.cloneNode(!1);z.setAttribute("src",Editor.editImage);z.setAttribute("title",mxResources.get("edit"));l.insertBefore(z,l.firstChild);mxEvent.addListener(z,"click",J);mxEvent.addListener(k,"dblclick",function(a){mxEvent.getSource(a)==
+k&&J(a)});e=z.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));l.insertBefore(e,l.firstChild);mxEvent.addListener(e,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(e=document.createElement("span"),e.setAttribute("title",mxResources.get("help")),e.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);
+mxEvent.consume(a)})),l.insertBefore(e,l.firstChild))}m.appendChild(l);m.style.paddingRight=18*l.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+"image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(Graph.decompress(d.xml)),
0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};EditorUi.prototype.footerHeight=0;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=
"#2a2a2a",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";"1"==urlParams.sketch&&(Menus.prototype.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},
{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(Menus.prototype.defaultFonts),Graph.prototype.defaultVertexStyle={fontFamily:Editor.sketchFontFamily,fontSize:"20",fontSource:Editor.sketchFontSource,pointerEvents:"0",sketch:"0"==urlParams.rough?"0":"1",hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",endArrow:"open",startSize:"14",endSize:"14",fontFamily:Editor.sketchFontFamily,
-fontSize:"20",fontSource:Editor.sketchFontSource,sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8",sketch:"0"==urlParams.rough?"0":"1"},Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,k){a=new ImageDialog(this,a,b,d,e,k);
-this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,k){a=new LibraryDialog(this,a,b,d,e,k);this.showDialog(a.container,
+fontSize:"20",fontSource:Editor.sketchFontSource,sourcePerimeterSpacing:"8",targetPerimeterSpacing:"8",sketch:"0"==urlParams.rough?"0":"1"},Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled=!1,Graph.prototype.defaultPageVisible=!1,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(a,b,d,e,p){a=new ImageDialog(this,a,b,d,e,p);
+this.showDialog(a.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a,c){if(!c){var b=new ChangePageSetup(this,null,a);b.ignoreColor=!0;this.editor.graph.model.execute(b)}});var c=new BackgroundImageDialog(this,a,b);this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,p){a=new LibraryDialog(this,a,b,d,e,p);this.showDialog(a.container,
640,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var c=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(a){this.editor.graph.isSelectionEmpty()&&c.refresh()}));return c};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer geSidebarFooter");
a.style.position="absolute";a.style.overflow="hidden";var b=document.createElement("a");b.className="geTitle";b.style.color="#DF6C0C";b.style.fontWeight="bold";b.style.height="100%";b.style.paddingTop="9px";b.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();
-mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,k,p,l){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&null!=a.message)try{l?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(I){}if(null!=f||null!=b){l=mxUtils.htmlEntities(mxResources.get("unknownError"));
-var g=mxResources.get("ok"),m=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),m=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){l=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=k?k:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var n=
-null!=k?null:null!=p?p:window.location.hash;if(null!=n&&("#G"==n.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==n.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){n="#U"==n.substring(0,2)?n.substring(45,n.lastIndexOf("%26ex")):n.substring(2);this.showError(b,l,mxResources.get("openInNewWindow"),
-mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+n);this.handleError(a,b,d,e,k)}),m,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=
+mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d,e,p,t,m){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=a&&null!=a.stack&&null!=a.message)try{m?null!=window.console&&console.error("EditorUi.handleError:",a):EditorUi.logError("Caught: "+(""==a.message&&null!=a.name)?a.name:a.message,a.filename,a.lineNumber,a.columnNumber,a,"INFO")}catch(G){}if(null!=f||null!=b){m=mxUtils.htmlEntities(mxResources.get("unknownError"));
+var g=mxResources.get("ok"),k=null;b=null!=b?b:mxResources.get("error");if(null!=f){null!=f.retry&&(g=mxResources.get("cancel"),k=function(){c();f.retry()});if(404==f.code||404==f.status||403==f.code){m=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=p?p:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var l=
+null!=p?null:null!=t?t:window.location.hash;if(null!=l&&("#G"==l.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==l.substring(0,45))&&(null!=a&&null!=a.error&&(null!=a.error.errors&&0<a.error.errors.length&&"fileAccess"==a.error.errors[0].reason||null!=a.error.data&&0<a.error.data.length&&"fileAccess"==a.error.data[0].reason)||404==f.code||404==f.status)){l="#U"==l.substring(0,2)?l.substring(45,l.lastIndexOf("%26ex")):l.substring(2);this.showError(b,m,mxResources.get("openInNewWindow"),
+mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+l);this.handleError(a,b,d,e,p)}),k,mxResources.get("changeUser"),mxUtils.bind(this,function(){function a(){f.innerHTML="";for(var a=0;a<c.length;a++){var b=document.createElement("option");mxUtils.write(b,c[a].displayName);b.value=a;f.appendChild(b);b=document.createElement("option");b.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(b,"<"+c[a].email+">");b.setAttribute("disabled","disabled");f.appendChild(b)}b=
document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=c.length;f.appendChild(b)}var c=this.drive.getUsersList(),b=document.createElement("div"),d=document.createElement("span");d.style.marginTop="6px";mxUtils.write(d,mxResources.get("changeUser")+": ");b.appendChild(d);var f=document.createElement("select");f.style.width="200px";a();mxEvent.addListener(f,"change",mxUtils.bind(this,function(){var b=f.value,d=c.length!=b;d&&this.drive.setUser(c[b]);this.drive.authorize(d,
-mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?l=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):
-null!=f.response&&null!=f.response.error?l=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?l=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?l=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(l=mxUtils.htmlEntities(f)))}var u=p=null;null!=f&&null!=f.helpLink&&(p=mxResources.get("help"),u=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,l,g,d,m,null,
-null,p,u,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,k,p){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,k,null,null,null,null,f);this.showDialog(a.container,
-340,46+f,!0,p);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");
+mxUtils.bind(this,function(){d||(c=this.drive.getUsersList(),a())}),mxUtils.bind(this,function(a){this.handleError(a)}),!0)}));b.appendChild(f);b=new CustomDialog(this,b,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(b.container,300,75,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=d&&d()}),480,150);return}}null!=f.message?m=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):
+null!=f.response&&null!=f.response.error?m=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?m=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?m=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(m=mxUtils.htmlEntities(f)))}var v=t=null;null!=f&&null!=f.helpLink&&(t=mxResources.get("help"),v=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)}));this.showError(b,m,g,d,k,null,
+null,t,v,null,null,null,e?d:null)}else null!=d&&d()};EditorUi.prototype.alert=function(a,b,d){a=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(a.container,d||340,100,!0,!1);a.init()};EditorUi.prototype.confirm=function(a,b,d,e,p,t){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(a.length/50));a=new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,p,null,null,null,null,f);this.showDialog(a.container,
+340,46+f,!0,t);a.init()};EditorUi.prototype.showBanner=function(a,b,d,e){var c=!1;if(!(this.bannerShowing||this["hideBanner"+a]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+a])){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");
mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";c=document.createElement("img");c.setAttribute("src",IMAGE_PATH+"/logo.png");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(c);c=document.createElement("img");c.setAttribute("src",Dialog.prototype.closeImage);c.setAttribute("title",
mxResources.get(e?"doNotShowAgain":"close"));c.setAttribute("border","0");c.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";f.appendChild(c);mxUtils.write(f,b);document.body.appendChild(f);this.bannerShowing=!0;b=document.createElement("div");b.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("id","geDoNotShowAgainCheckbox");g.style.marginRight=
-"6px";if(!e){b.appendChild(g);var m=document.createElement("label");m.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(m,mxResources.get("doNotShowAgain"));b.appendChild(m);f.style.paddingBottom="30px";f.appendChild(b)}var l=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,
-"click",mxUtils.bind(this,function(a){mxEvent.consume(a);l()}));var n=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){l()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=m?(null!=d&&d(),l(),mxEvent.consume(a)):n()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(n,
+"6px";if(!e){b.appendChild(g);var k=document.createElement("label");k.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(k,mxResources.get("doNotShowAgain"));b.appendChild(k);f.style.paddingBottom="30px";f.appendChild(b)}var m=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,g.checked||e)&&(this["hideBanner"+a]=!0,isLocalStorage&&null!=mxSettings.settings&&(mxSettings.settings["close"+a]=Date.now(),mxSettings.save()))});mxEvent.addListener(c,
+"click",mxUtils.bind(this,function(a){mxEvent.consume(a);m()}));var l=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){m()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);c!=g&&c!=k?(null!=d&&d(),m(),mxEvent.consume(a)):l()}));window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(l,
3E4);c=!0}return c};EditorUi.prototype.setCurrentFile=function(a){null!=a&&(a.opened=new Date);this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(a,b,d,e){a=a.toDataURL("image/"+d);if(null!=a&&6<a.length)null!=b&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(b))),0<e&&(a=Editor.writeGraphModelToPng(a,"pHYs",
-"dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,k){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,k);this.saveData(e,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||
-this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,k,p){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+
-"."+(null!=p?p:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");
-p=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);p=65==(f?parseInt(f[2],10):!1)?!1:p}if(p||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));p?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),
-c.parentNode.removeChild(c)}catch(F){}}else this.createEchoRequest(a,b,d,e,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,k,p){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=k?"&format="+k:"")+(null!=p?"&base64="+p:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),l=0;l<f;++l){for(var n=
-1024*l,q=Math.min(n+1024,d),z=Array(q-n),y=0;n<q;++y,++n)z[y]=c[n].charCodeAt(0);e[l]=new Uint8Array(z)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,k,p,l,n){p=null!=p?p:!1;l=null!=l?l:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(p);isLocalStorage&&k++;var c=4>=k?2:6<k?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==
-d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,n):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(G){this.handleError(G)}}))}catch(I){this.handleError(I)}}),mxUtils.bind(this,
-function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,p,l,null,1<k,c,a,d,e);p=this.isServices(k)?k>c?390:270:160;this.showDialog(b.container,400,p,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+
+"dpi",e));else throw{message:mxResources.get("unknownError")};return a};EditorUi.prototype.saveCanvas=function(a,b,d,e,p){var c="jpeg"==d?"jpg":d;e=this.getBaseFilename(e)+"."+c;a=this.createImageDataUri(a,b,d,p);this.saveData(e,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||
+this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(a,b){var c=new TextareaDialog(this,a,b,null,null,mxResources.get("close"));c.textarea.style.width="600px";c.textarea.style.height="380px";this.showDialog(c.container,620,460,!0,!0,null,null,null,null,!0);c.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,p,t){"text/xml"!=d||/(\.drawio)$/i.test(b)||/(\.xml)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.html)$/i.test(b)||(b=b+
+"."+(null!=t?t:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||null==d||"image/"!=d.substring(0,6)?this.showTextDialog(b+":",a):this.openInNewWindow(a,d,e);else{var c=document.createElement("a");
+t=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof c.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);t=65==(f?parseInt(f[2],10):!1)?!1:t}if(t||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));t?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c);try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},2E4),c.click(),
+c.parentNode.removeChild(c)}catch(F){}}else this.createEchoRequest(a,b,d,e,p).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,p,t){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=p?"&format="+p:"")+(null!=t?"&base64="+t:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var l=
+1024*m,q=Math.min(l+1024,d),y=Array(q-l),z=0;l<q;++z,++l)y[z]=c[l].charCodeAt(0);e[m]=new Uint8Array(y)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,p,m,l,q){m=null!=m?m:!1;l=null!=l?l:"vsdx"!=p&&(!mxClient.IS_IOS||!navigator.standalone);p=this.getServiceCount(m);isLocalStorage&&p++;var c=4>=p?2:6<p?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(a,d,e);else if(null!=d&&"text/html"==
+d.substring(0,9)){var f=new EmbedDialog(this,a);this.showDialog(f.container,440,240,!0,!0);f.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(a,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(a,!1)+"</pre>"),g.document.close())}else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e,null,q):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(J){this.handleError(J)}}))}catch(G){this.handleError(G)}}),mxUtils.bind(this,
+function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,m,l,null,1<p,c,a,d,e);m=this.isServices(p)?p>c?390:270:160;this.showDialog(b.container,400,m,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){var c=window.open("about:blank");null==c||null==c.document?mxUtils.popup(a,!0):("image/svg+xml"!=b||mxClient.IS_SVG?"image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):(a=d?a:btoa(unescape(encodeURIComponent(a))),c.document.write('<html><img style="max-width:100%;" src="data:'+
b+";base64,"+a+'"/></html>')):c.document.write("<html><pre>"+mxUtils.htmlEntities(a,!1)+"</pre></html>"),c.document.close())};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),
this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding=
"4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
this.editor.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,
-arguments)};EditorUi.prototype.saveData=function(a,b,d,e,k){this.isLocalFileSave()?this.saveLocalFile(d,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,k,b,c)}),d,k,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,k,p,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
-c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){p=null!=p?p:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,p,!0,c,d)}catch(I){this.handleError(I)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),
-a,p,!0,c,d)}catch(I){this.handleError(I)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,l,null,1<c,f,e,p,k);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
-EditorUi.prototype.exportFile=function(a,b,d,e,k,p){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,k,p,l,n,q,z,y,t){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=y?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,l,n,null,d,null,null,"blank"==
-z?"_blank":"self"==z?"_top":null,null,!0,y,t);e&&this.editor.graph.addSvgShadow(g);var m=this.getBaseFilename()+".svg",u=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,q,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",c,"image/svg+xml"):
-this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);p?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,u,this.thumbImageCache)):u(g)}catch(J){this.handleError(J)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,k,p,l){return this.addCheckbox(a,d,e,k,p,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,
-b,d,e,k,p,l,n){p=null!=p?p:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");l="geCheckbox-"+Editor.guid();c.id=l;null!=n&&c.setAttribute("name",n);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");p&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",l),a.appendChild(d),k||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
+arguments)};EditorUi.prototype.saveData=function(a,b,d,e,p){this.isLocalFileSave()?this.saveLocalFile(d,a,e,p,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,p,b,c)}),d,p,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,p,m,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);isLocalStorage&&c++;var f=4>=c?2:6<c?4:3;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==
+c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){m=null!=m?m:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,m,!0,c,d)}catch(G){this.handleError(G)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),
+a,m,!0,c,d)}catch(G){this.handleError(G)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,l,null,1<c,f,e,m,p);c=this.isServices(c)?4<c?390:270:160;this.showDialog(a.container,380,c,!0,!0);a.init()};EditorUi.prototype.isServices=function(a){return 1!=a};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};
+EditorUi.prototype.exportFile=function(a,b,d,e,p,m){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,b,d,e,p,m,l,q,u,y,z,L){if(this.spinner.spin(document.body,mxResources.get("export")))try{var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;var f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f=z?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var g=this.editor.graph.getSvg(f,a,l,q,null,d,null,null,"blank"==
+y?"_blank":"self"==y?"_top":null,null,!0,z,L);e&&this.editor.graph.addSvgShadow(g);var k=this.getBaseFilename()+".svg",t=mxUtils.bind(this,function(a){this.spinner.stop();p&&a.setAttribute("content",this.getFileData(!0,null,null,null,d,u,null,null,null,!1));var c='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||c.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",c,"image/svg+xml"):
+this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}))});this.editor.addFontCss(g);this.editor.graph.mathEnabled&&this.editor.addMathCss(g);m?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(g,t,this.thumbImageCache)):t(g)}catch(K){this.handleError(K)}};EditorUi.prototype.addRadiobox=function(a,b,d,e,p,m,l){return this.addCheckbox(a,d,e,p,m,l,!0,b)};EditorUi.prototype.addCheckbox=function(a,
+b,d,e,p,m,l,q){m=null!=m?m:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",l?"radio":"checkbox");l="geCheckbox-"+Editor.guid();c.id=l;null!=q&&c.setAttribute("name",q);d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");m&&(a.appendChild(c),d=document.createElement("label"),mxUtils.write(d,b),d.setAttribute("for",l),a.appendChild(d),p||mxUtils.br(a));return c};EditorUi.prototype.addEditButton=
function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft="24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");
d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||
-b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){l.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
+b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+
Dialog.prototype.closeImage+"')")+';"></div>'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");
-f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",l=null,l=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();l.style.padding=
-mxClient.IS_FF?"4px 2px 4px 2px":"4px";l.style.marginLeft="4px";l.style.height="22px";l.style.width="22px";l.style.position="relative";l.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";l.className="geColorBtn";a.appendChild(l);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,k,p,l){l=null!=l?l:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
-"1"!=urlParams.dev||l.push("lightbox=1"),"auto"!=a&&l.push("target="+a),null!=b&&b!=mxConstants.NONE&&l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=k&&0<k.length&&l.push("edit="+encodeURIComponent(k)),p&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&l.push("page-id="+this.currentPage.getId());return l};EditorUi.prototype.createLink=function(a,b,d,e,k,p,l,n,q,z){q=this.createUrlParameters(a,
-b,d,e,k,p,q);a=this.getCurrentFile();b=!0;null!=l?d="#U"+encodeURIComponent(l):(a=this.getCurrentFile(),n||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&q.push("title="+encodeURIComponent(a.getTitle()));z&&1<d.length&&(q.push("open="+d.substring(1)),d="");return(e&&
-"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<q.length?"?"+q.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,k,p,l,n,q,z,y){this.getBasenames();var c={};""!=k&&k!=mxConstants.NONE&&(c.highlight=k);"auto"!==e&&(c.target=e);q||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),
-c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);n&&d.push("layers");0<d.length&&(q&&d.push("lightbox"),c.toolbar=d.join(" "));null!=z&&0<z.length&&(c.edit=z);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(p?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
-encodeURIComponent(a):"";y(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
-mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","type-embedhtmldialog");f=m.cloneNode(!0);f.setAttribute("value",
-"copy");g.appendChild(f);var l=document.createElement("span");mxUtils.write(l,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(l);mxUtils.br(g);g.appendChild(m);l=document.createElement("span");mxUtils.write(l,mxResources.get("publicDiagramUrl"));g.appendChild(l);var n=this.getCurrentFile();null==d&&null!=n&&n.constructor==window.DriveFile&&(l=document.createElement("a"),l.style.paddingLeft="12px",l.style.color="gray",l.style.cursor="pointer",mxUtils.write(l,mxResources.get("share")),g.appendChild(l),
-mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(n.getId())})));f.setAttribute("checked","checked");null==d&&m.setAttribute("disabled","disabled");c.appendChild(g);var y=this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value=
-"100%";c.appendChild(t);var I=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),K=this.addCheckbox(c,mxResources.get("layers"),!0),E=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,E),H=J.getEditInput();H.style.marginBottom="16px";mxEvent.addListener(E,"change",function(){E.checked?H.removeAttribute("disabled"):H.setAttribute("disabled","disabled");H.checked&&E.checked?J.getEditSelect().removeAttribute("disabled"):
-J.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(m.checked?d:null,q.checked,t.value,y.getTarget(),y.getColor(),I.checked,G.checked,K.checked,E.checked,J.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,k,l){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
-"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var p=document.createElement("div");
-p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));m.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));p.style.marginTop="12px";p.className="geBtn";m.appendChild(p);c.appendChild(m);p=document.createElement("a");p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));m.appendChild(p);mxEvent.addListener(p,"click",
-mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var n=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),n=document.createElement("input"),n.setAttribute("type","text"),
-n.style.marginRight="16px",n.style.width="50px",n.style.marginLeft="6px",n.style.marginRight="16px",n.style.marginBottom="10px",n.value="100%",c.appendChild(n),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var t=this.addLinkSection(c,l);d=null!=this.pages&&1<this.pages.length;var G=null;if(null==g||g.constructor!=window.DriveFile||
-b)G=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var K=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!l),E=this.addEditButton(c,K),J=E.getEditInput();l&&(J.style.marginLeft=K.style.marginLeft,K.style.display="none",a-=30);var H=this.addCheckbox(c,mxResources.get("layers"),!0);H.style.marginLeft=J.style.marginLeft;H.style.marginBottom="16px";H.style.marginTop="8px";mxEvent.addListener(K,"change",function(){K.checked?(H.removeAttribute("disabled"),J.removeAttribute("disabled")):
-(H.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"));J.checked&&K.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(t.getTarget(),t.getColor(),null==G?!0:G.checked,K.checked,E.getLink(),H.checked,null!=n?n.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=n?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||
-5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)):t.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,k){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(k?"10":"4")+"px";c.appendChild(f);if(k){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
-"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.value=this.lastExportBorder||"0";c.appendChild(m);mxUtils.br(c)}var l=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
-n=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,q=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=q&&(q.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(m.value)||0;d(!l.checked,null!=n?n.checked:!1,null!=q?q.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(k?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
-function(a,b,d,e,k,l,n,q,t){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==q?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(m);mxUtils.write(c,mxResources.get("zoom")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight=
-"12px";p.value=this.lastExportZoom||"100%";c.appendChild(p);mxUtils.write(c,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";c.appendChild(u);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),E=document.createElement("input");E.style.marginTop="16px";E.style.marginRight="8px";E.style.marginLeft=
-"24px";E.setAttribute("disabled","disabled");E.setAttribute("type","checkbox");var J=document.createElement("select");J.style.marginTop="16px";J.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(m=0;m<a.length;m++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[m]){var H=document.createElement("option");mxUtils.write(H,mxResources.get(a[m]));H.setAttribute("value",a[m]);J.appendChild(H)}t?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(J),mxUtils.br(c),g+=26,mxEvent.addListener(J,
-"change",function(){"selectionOnly"==J.value&&(A.checked=!0)})):l&&(c.appendChild(E),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?t&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(J.value="diagram",E.setAttribute("checked","checked"),E.defaultChecked=!0,mxEvent.addListener(A,
-"change",function(){J.value=A.checked?"selectionOnly":"diagram"}));var F=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=q),Q=null;Editor.isDarkMode()&&(Q=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var x=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");
-b&&(c.appendChild(B),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==q||"jpeg"==q)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var ga=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=q);ga.style.marginBottom="16px";var D=document.createElement("select");D.style.maxWidth="260px";D.style.marginLeft="8px";D.style.marginRight="10px";D.className="geBtn";b=document.createElement("option");
-b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));D.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));D.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));D.appendChild(b);"svg"==q&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(D),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
-mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=p.value;k(p.value,F.checked,!A.checked,x.checked,ga.checked,B.checked,u.value,E.checked,!1,D.value,null!=C?C.checked:null,null!=Q?Q.checked:null,J.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,k){var c=document.createElement("div");
-c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var m=this.addCheckbox(c,mxResources.get("fit"),!0),l=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),n=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),t=this.addEditButton(c,q),I=t.getEditInput(),G=1<f.model.getChildCount(f.model.getRoot()),
-K=this.addCheckbox(c,mxResources.get("layers"),G,!G);K.style.marginLeft=I.style.marginLeft;K.style.marginBottom="12px";K.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(G&&K.removeAttribute("disabled"),I.removeAttribute("disabled")):(K.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"));I.checked&&q.checked?t.getEditSelect().removeAttribute("disabled"):t.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
-function(){a(m.checked,l.checked,n.checked,q.checked,t.getLink(),K.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,k,l,n,q){function c(c){var b=" ",m="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(k?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");a&&(m+="max-width:100%;");var p="";d&&(p=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+p+(""!=m?' style="'+m+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
-this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){q({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var m="";d&&(m="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var p=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+m+"&xml="+encodeURIComponent(b));p.send(mxUtils.bind(this,function(){200<=p.getStatus()&&
-299>=p.getStatus()?c("data:image/png;base64,"+p.getText()):q({message:mxResources.get("unknownError")})}))}else q({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,k,l,n){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var m=f[g].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
-c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var p=" ",u="";e&&(p="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(k?"&edit=_blank":"")+(l?"&layers=1":
-"")+"');}})(this);\"",u+="cursor:pointer;");a&&(u+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){n('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=u?' style="'+u+'"':"")+p+"/>")}))}else u="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
-EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(k?"&edit=_blank":"")+(l?"&layers=1":"")+"');}}})(this);"),u+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),k=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+k),u+="max-width:100%;max-height:"+k+"px;",c.removeAttribute("height")),""!=u&&c.setAttribute("style",u),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
+f.setAttribute("value","self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=
+mxClient.IS_FF?"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width="22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createUrlParameters=function(a,b,d,e,p,m,l){l=null!=l?l:[];e&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&
+"1"!=urlParams.dev||l.push("lightbox=1"),"auto"!=a&&l.push("target="+a),null!=b&&b!=mxConstants.NONE&&l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=p&&0<p.length&&l.push("edit="+encodeURIComponent(p)),m&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));d&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&l.push("page-id="+this.currentPage.getId());return l};EditorUi.prototype.createLink=function(a,b,d,e,p,m,l,q,u,y){u=this.createUrlParameters(a,
+b,d,e,p,m,u);a=this.getCurrentFile();b=!0;null!=l?d="#U"+encodeURIComponent(l):(a=this.getCurrentFile(),q||null==a||a.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(d="#"+a.getHash(),b=!1));b&&null!=a&&null!=a.getTitle()&&a.getTitle()!=this.defaultFilename&&u.push("title="+encodeURIComponent(a.getTitle()));y&&1<d.length&&(u.push("open="+d.substring(1)),d="");return(e&&
+"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<u.length?"?"+u.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,p,m,l,q,u,y,z){this.getBasenames();var c={};""!=p&&p!=mxConstants.NONE&&(c.highlight=p);"auto"!==e&&(c.target=e);u||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];l&&(d.push("pages"),
+c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);q&&d.push("layers");0<d.length&&(u&&d.push("lightbox"),c.toolbar=d.join(" "));null!=y&&0<y.length&&(c.edit=y);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(m?"max-width:100%;":"")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+
+encodeURIComponent(a):"";z(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.VIEWER_URL?window.VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,
+mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value",
+"copy");g.appendChild(f);var m=document.createElement("span");mxUtils.write(m,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(m);mxUtils.br(g);g.appendChild(k);m=document.createElement("span");mxUtils.write(m,mxResources.get("publicDiagramUrl"));g.appendChild(m);var l=this.getCurrentFile();null==d&&null!=l&&l.constructor==window.DriveFile&&(m=document.createElement("a"),m.style.paddingLeft="12px",m.style.color="gray",m.style.cursor="pointer",mxUtils.write(m,mxResources.get("share")),g.appendChild(m),
+mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var z=this.addLinkSection(c),q=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value=
+"100%";c.appendChild(u);var G=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,J=J=this.addCheckbox(c,mxResources.get("allPages"),g,!g),H=this.addCheckbox(c,mxResources.get("layers"),!0),D=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,D),I=K.getEditInput();I.style.marginBottom="16px";mxEvent.addListener(D,"change",function(){D.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled");I.checked&&D.checked?K.getEditSelect().removeAttribute("disabled"):
+K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,q.checked,u.value,z.getTarget(),z.getColor(),G.checked,J.checked,H.checked,D.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,p,m){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText=
+"width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://www.diagrams.net/doc/faq/publish-diagram-as-link";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var l=document.createElement("div");
+l.style.whiteSpace="normal";mxUtils.write(l,mxResources.get("linkAccountRequired"));k.appendChild(l);l=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));l.style.marginTop="12px";l.className="geBtn";k.appendChild(l);c.appendChild(k);l=document.createElement("a");l.style.paddingLeft="12px";l.style.color="gray";l.style.fontSize="11px";l.style.cursor="pointer";mxUtils.write(l,mxResources.get("check"));k.appendChild(l);mxEvent.addListener(l,"click",
+mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var t=null,q=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"),t.setAttribute("type","text"),
+t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=e+"px",c.appendChild(q),mxUtils.br(c);var u=this.addLinkSection(c,m);d=null!=this.pages&&1<this.pages.length;var J=null;if(null==g||g.constructor!=window.DriveFile||
+b)J=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var H=this.addCheckbox(c,mxResources.get("lightbox"),!0,null,null,!m),D=this.addEditButton(c,H),K=D.getEditInput();m&&(K.style.marginLeft=H.style.marginLeft,H.style.display="none",a-=30);var I=this.addCheckbox(c,mxResources.get("layers"),!0);I.style.marginLeft=K.style.marginLeft;I.style.marginBottom="16px";I.style.marginTop="8px";mxEvent.addListener(H,"change",function(){H.checked?(I.removeAttribute("disabled"),K.removeAttribute("disabled")):
+(I.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&H.checked?D.getEditSelect().removeAttribute("disabled"):D.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){p(u.getTarget(),u.getColor(),null==J?!0:J.checked,H.checked,D.getLink(),I.checked,null!=t?t.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||
+5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e,p){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(p?"10":"4")+"px";c.appendChild(f);if(p){mxUtils.write(c,mxResources.get("zoom")+":");var g=document.createElement("input");g.setAttribute("type",
+"text");g.style.marginRight="16px";g.style.width="60px";g.style.marginLeft="4px";g.style.marginRight="12px";g.value=this.lastExportZoom||"100%";c.appendChild(g);mxUtils.write(c,mxResources.get("borderWidth")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.marginRight="16px";k.style.width="60px";k.style.marginLeft="4px";k.value=this.lastExportBorder||"0";c.appendChild(k);mxUtils.br(c)}var m=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),
+l=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),!0),f=this.editor.graph,q=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=q&&(q.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){var a=parseInt(g.value)/100||1,c=parseInt(k.value)||0;d(!m.checked,null!=l?l.checked:!1,null!=q?q.checked:!1,a,c)}),null,a,b);this.showDialog(a.container,300,(p?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=
+function(a,b,d,e,p,m,l,q,u){l=null!=l?l:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph,g="jpeg"==q?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight=
+"12px";t.value=this.lastExportZoom||"100%";c.appendChild(t);mxUtils.write(c,mxResources.get("borderWidth")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";c.appendChild(v);mxUtils.br(c);var A=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),D=document.createElement("input");D.style.marginTop="16px";D.style.marginRight="8px";D.style.marginLeft=
+"24px";D.setAttribute("disabled","disabled");D.setAttribute("type","checkbox");var F=document.createElement("select");F.style.marginTop="16px";F.style.marginLeft="8px";a=["selectionOnly","diagram","page"];for(k=0;k<a.length;k++)if(!f.isSelectionEmpty()||"selectionOnly"!=a[k]){var I=document.createElement("option");mxUtils.write(I,mxResources.get(a[k]));I.setAttribute("value",a[k]);F.appendChild(I)}u?(mxUtils.write(c,mxResources.get("size")+":"),c.appendChild(F),mxUtils.br(c),g+=26,mxEvent.addListener(F,
+"change",function(){"selectionOnly"==F.value&&(A.checked=!0)})):m&&(c.appendChild(D),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(A,"change",function(){A.checked?D.removeAttribute("disabled"):D.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?u&&(A.style.display="none",A.nextSibling.style.display="none",A.nextSibling.nextSibling.style.display="none",g-=26):(F.value="diagram",D.setAttribute("checked","checked"),D.defaultChecked=!0,mxEvent.addListener(A,
+"change",function(){F.value=A.checked?"selectionOnly":"diagram"}));var R=this.addCheckbox(c,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=q),N=null;Editor.isDarkMode()&&(N=this.addCheckbox(c,mxResources.get("dark"),!0),g+=26);var n=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),B=document.createElement("input");B.style.marginTop="16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");
+b&&(c.appendChild(B),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=null;if("png"==q||"jpeg"==q)C=this.addCheckbox(c,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),g+=26;var ka=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=q);ka.style.marginBottom="16px";var E=document.createElement("select");E.style.maxWidth="260px";E.style.marginLeft="8px";E.style.marginRight="10px";E.className="geBtn";b=document.createElement("option");
+b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");mxUtils.write(b,mxResources.get("openInNewWindow"));E.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));E.appendChild(b);"svg"==q&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(E),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,
+mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=t.value;p(t.value,R.checked,!A.checked,n.checked,ka.checked,B.checked,v.value,D.checked,!1,E.value,null!=C?C.checked:null,null!=N?N.checked:null,F.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0,null,null,null,null,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,p){var c=document.createElement("div");
+c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),m=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),q=this.addCheckbox(c,mxResources.get("lightbox"),!0),u=this.addEditButton(c,q),G=u.getEditInput(),J=1<f.model.getChildCount(f.model.getRoot()),
+H=this.addCheckbox(c,mxResources.get("layers"),J,!J);H.style.marginLeft=G.style.marginLeft;H.style.marginBottom="12px";H.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(J&&H.removeAttribute("disabled"),G.removeAttribute("disabled")):(H.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"));G.checked&&q.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,
+function(){a(k.checked,m.checked,l.checked,q.checked,u.getLink(),H.checked)}),null,mxResources.get("embed"),p);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=function(a,b,d,e,p,m,l,q){function c(c){var b=" ",k="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=g?"&page="+g:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}})(this);\"",k+="cursor:pointer;");a&&(k+="max-width:100%;");var t="";d&&(t=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');l('<img src="'+c+'"'+t+(""!=k?' style="'+k+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds(),g=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=
+this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){q({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b,null,null,Editor.defaultBorder);else if(b=this.getFileData(!0),f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";d&&(k="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var t=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+k+"&xml="+encodeURIComponent(b));t.send(mxUtils.bind(this,function(){200<=t.getStatus()&&
+299>=t.getStatus()?c("data:image/png;base64,"+t.getText()):q({message:mxResources.get("unknownError")})}))}else q({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,b,d,e,p,m,l){var c=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&
+c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var t=" ",v="";e&&(t="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(p?"&edit=_blank":"")+(m?"&layers=1":
+"")+"');}})(this);\"",v+="cursor:pointer;");a&&(v+="max-width:100%;");this.editor.convertImages(c,mxUtils.bind(this,function(a){l('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=v?' style="'+v+'"':"")+t+"/>")}))}else v="",e&&(b=this.getSelectedPageIndex(),c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
+EditorUi.lightboxHost+"/?client=1"+(null!=b?"&page="+b:"")+(p?"&edit=_blank":"")+(m?"&layers=1":"")+"');}}})(this);"),v+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),p=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","-0.5 -0.5 "+a+" "+p),v+="max-width:100%;max-height:"+p+"px;",c.removeAttribute("height")),""!=v&&c.setAttribute("style",v),this.editor.addFontCss(c),this.editor.graph.mathEnabled&&this.editor.addMathCss(c),l(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=
Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+" "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=
-a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(p){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
-a){if(a.hasAttribute("scale")){var d=parseFloat(a.getAttribute("scale"));!isNaN(d)&&0<d&&(c=d)}a.hasAttribute("border")&&(d=parseInt(a.getAttribute("border")),!isNaN(d)&&0<d&&(b=d))}return{scale:c,border:b}};EditorUi.prototype.getEmbeddedPng=function(a,b,d,e,k){try{var c=this.editor.graph,f=null!=c.themes&&"darkTheme"==c.defaultThemeName,g=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,
-!0),c),g=d;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),m=c.getGlobalVariable,l=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?1:m.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(l.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(d){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=d.toDataURL("image/png"),e=Editor.writeGraphModelToPng(e,
-"tEXt","mxfile",encodeURIComponent(g));a(e.substring(e.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(L){null!=b&&b(L)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,e,null,c.shadowVisible,null,c,k)}catch(y){null!=b&&b(y)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,k,l,n,q,t,z,y,M,L){q=null!=q?q:!0;n=null!=t?t:b.background;n==mxConstants.NONE&&(n=null);l=b.getSvg(n,z,y,null,null,l,null,null,null,b.shadowVisible||
-M,null,L);(b.shadowVisible||M)&&b.addSvgShadow(l);null!=a&&l.setAttribute("content",a);null!=d&&l.setAttribute("resource",d);if(null!=k)this.embedFonts(l,mxUtils.bind(this,function(a){q?this.editor.convertImages(a,mxUtils.bind(this,function(a){k((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))})):k((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
-mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(l)};EditorUi.prototype.embedFonts=function(a,b){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(m){b(a)}}))}catch(g){b(a)}}))};
-EditorUi.prototype.exportImage=function(a,b,d,e,k,l,n,q,t,z,y,M,L){t=null!=t?t:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,k?this.getFileData(!0,null,null,null,d,q):null,t,null==this.pages||0==this.pages.length,y)}catch(K){this.handleError(K)}}),null,this.thumbImageCache,
-null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,l,n,z,M,L)}catch(G){this.spinner.stop(),this.handleError(G)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,e,k,l){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){f.model.beginUpdate();try{var g=mxUtils.parseXml(a);a={};var m=this.editor.extractGraphModel(g.documentElement,
-null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var p=m.getElementsByTagName("diagram");if(1==p.length&&!l){if(m=Editor.parseDiagramNode(p[0]),null!=this.currentPage&&(a[p[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var n=p[0].getAttribute("name");null!=n&&""!=n&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,n))}}else if(0<
-p.length){l=[];var q=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[p[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(p[0]),e=!1,q=1);for(;q<p.length;q++){var t=p[q].getAttribute("id");p[q].removeAttribute("id");var G=this.updatePageRoot(new DiagramPage(p[q]));a[t]=p[q].getAttribute("id");var K=this.pages.length;null==G.getName()&&G.setName(mxResources.get("pageWithNumber",[K+1]));f.model.execute(new ChangePage(this,G,G,K,!0));l.push(G)}this.updatePageLinks(a,
-l)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(c=f.importGraphModel(m,b,d,e),null!=c))for(q=0;q<c.length;q++)this.updatePageLinksForCell(a,c[q])}finally{f.model.endUpdate()}}}catch(E){if(k)throw E;this.handleError(E)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,
-this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.sanitizeHtml(d.getLabel(b));for(var f=c.getElementsByTagName("a"),l=!1,n=0;n<f.length;n++)e=f[n].getAttribute("href"),null!=e&&(f[n].setAttribute("href",this.updatePageLink(a,e)),l=!0);l&&d.labelChanged(b,c.innerHTML)}for(n=0;n<d.model.getChildCount(b);n++)this.updatePageLinksForCell(a,d.model.getChildAt(b,n))};EditorUi.prototype.updatePageLink=function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=
-null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var f=d.actions[e];if(null!=f.open&&"data:page/id,"==f.open.substring(0,13)){var l=f.open.substring(f.open.indexOf(",")+1),c=a[l];null!=c?f.open="data:page/id,"+c:null==this.getPageById(l)&&delete f.open}}b="data:action/json,"+JSON.stringify(d)}}catch(A){}return b};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||
-/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var c=this.isRemoteVisioFormat(e);try{var f="UNKNOWN-VISIO",g=e.lastIndexOf(".");if(0<=g&&g<e.length)f=e.substring(g+1).toUpperCase();else{var k=e.lastIndexOf("/");0<=k&&k<e.length&&(e=e.substring(k+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+
-e,label:c?"remote":"local"})}catch(y){}if(c)if(null==VSD_CONVERT_URL||this.isOffline())d({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{c=new FormData;c.append("file1",a,e);var m=new XMLHttpRequest;m.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));m.responseType="blob";this.addRemoteServiceSecurityCheck(m);m.onreadystatechange=mxUtils.bind(this,function(){if(4==m.readyState)if(200<=m.status&&299>=
-m.status)try{var a=m.response;if("text/xml"==a.type){var c=new FileReader;c.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(I){d({message:mxResources.get("errorLoadingFile")})}});c.readAsText(a)}else this.doImportVisio(a,b,d,e)}catch(L){d(L)}else try{""==m.responseType||"text"==m.responseType?d({message:m.responseText}):(c=new FileReader,c.onload=function(){d({message:JSON.parse(c.result).Message})},c.readAsText(m.response))}catch(L){d({})}});m.send(c)}else try{this.doImportVisio(a,
-b,d,e)}catch(y){d(y)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.importGraphML=function(a,b,d){d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,d)}catch(k){d(k)}else this.spinner.stop(),
-this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(a){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(a)||this.handleError({message:mxResources.get("unknownError")})}catch(g){this.handleError(g)}else this.spinner.stop(),
-this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+a.length}),EditorUi.debug("convertLucidChart",a)}catch(k){}try{b(LucidImporter.importState(JSON.parse(a)))}catch(k){null!=
-window.console&&console.error(k),d(k)}}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",
+a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(a=Editor.parseDiagramNode(c))}d=this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(t){}finally{this.editor.graph=d}return a};EditorUi.prototype.getPngFileProperties=function(a){var c=1,b=0;if(null!=
+a){if(a.hasAttribute("scale")){var d=parseFloat(a.getAttribute("scale"));!isNaN(d)&&0<d&&(c=d)}a.hasAttribute("border")&&(d=parseInt(a.getAttribute("border")),!isNaN(d)&&0<d&&(b=d))}return{scale:c,border:b}};EditorUi.prototype.getEmbeddedPng=function(a,b,d,e,p){try{var c=this.editor.graph,f=null!=c.themes&&"darkTheme"==c.defaultThemeName,g=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,
+!0),c),g=d;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),k=c.getGlobalVariable,m=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?1:k.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(m.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(d){try{null==g&&(g=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var e=d.toDataURL("image/png"),e=Editor.writeGraphModelToPng(e,
+"tEXt","mxfile",encodeURIComponent(g));a(e.substring(e.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(M){null!=b&&b(M)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,e,null,c.shadowVisible,null,c,p)}catch(z){null!=b&&b(z)}};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,p,m,l,q,u,y,z,L,M){q=null!=q?q:!0;l=null!=u?u:b.background;l==mxConstants.NONE&&(l=null);m=b.getSvg(l,y,z,null,null,m,null,null,null,b.shadowVisible||
+L,null,M);(b.shadowVisible||L)&&b.addSvgShadow(m);null!=a&&m.setAttribute("content",a);null!=d&&m.setAttribute("resource",d);if(null!=p)this.embedFonts(m,mxUtils.bind(this,function(a){q?this.editor.convertImages(a,mxUtils.bind(this,function(a){p((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(a))})):p((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+
+mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(m)};EditorUi.prototype.embedFonts=function(a,b){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(a,this.editor.resolvedFontCss),this.editor.embedExtFonts(mxUtils.bind(this,function(c){try{null!=c&&this.editor.addFontCss(a,c),b(a)}catch(k){b(a)}}))}catch(g){b(a)}}))};
+EditorUi.prototype.exportImage=function(a,b,d,e,p,m,l,q,u,y,z,L,M){u=null!=u?u:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,p?this.getFileData(!0,null,null,null,d,q):null,u,null==this.pages||0==this.pages.length,z)}catch(H){this.handleError(H)}}),null,this.thumbImageCache,
+null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,m,l,y,L,M)}catch(J){this.spinner.stop(),this.handleError(J)}}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return this.editor.isCorsEnabledForUrl(a)};EditorUi.prototype.importXml=function(a,b,d,e,p,m,l){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){f.model.beginUpdate();try{var g=mxUtils.parseXml(a);a={};var k=this.editor.extractGraphModel(g.documentElement,
+null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var t=k.getElementsByTagName("diagram");if(1==t.length&&!m){if(k=Editor.parseDiagramNode(t[0]),null!=this.currentPage&&(a[t[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",[1]))){var v=t[0].getAttribute("name");null!=v&&""!=v&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,v))}}else if(0<
+t.length){m=[];var q=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(a[t[0].getAttribute("id")]=this.pages[0].getId(),k=Editor.parseDiagramNode(t[0]),e=!1,q=1);for(;q<t.length;q++){var u=t[q].getAttribute("id");t[q].removeAttribute("id");var H=this.updatePageRoot(new DiagramPage(t[q]));a[u]=t[q].getAttribute("id");var D=this.pages.length;null==H.getName()&&H.setName(mxResources.get("pageWithNumber",[D+1]));f.model.execute(new ChangePage(this,H,H,D,!0));m.push(H)}this.updatePageLinks(a,
+m)}}if(null!=k&&"mxGraphModel"===k.nodeName&&(c=f.importGraphModel(k,b,d,e),null!=c))for(q=0;q<c.length;q++)this.updatePageLinksForCell(a,c[q]);l&&this.insertHandler(c,null,null,Graph.prototype.defaultVertexStyle,Graph.prototype.defaultEdgeStyle,!0,!0)}finally{f.model.endUpdate()}}}catch(K){if(p)throw K;this.handleError(K)}return c};EditorUi.prototype.updatePageLinks=function(a,b){for(var c=0;c<b.length;c++)this.updatePageLinksForCell(a,b[c].root)};EditorUi.prototype.updatePageLinksForCell=function(a,
+b){var c=document.createElement("div"),d=this.editor.graph,e=d.getLinkForCell(b);null!=e&&d.setLinkForCell(b,this.updatePageLink(a,e));if(d.isHtmlLabel(b)){c.innerHTML=d.sanitizeHtml(d.getLabel(b));for(var f=c.getElementsByTagName("a"),m=!1,l=0;l<f.length;l++)e=f[l].getAttribute("href"),null!=e&&(f[l].setAttribute("href",this.updatePageLink(a,e)),m=!0);m&&d.labelChanged(b,c.innerHTML)}for(l=0;l<d.model.getChildCount(b);l++)this.updatePageLinksForCell(a,d.model.getChildAt(b,l))};EditorUi.prototype.updatePageLink=
+function(a,b){if("data:page/id,"==b.substring(0,13)){var c=a[b.substring(b.indexOf(",")+1)];b=null!=c?"data:page/id,"+c:null}else if("data:action/json,"==b.substring(0,17))try{var d=JSON.parse(b.substring(17));if(null!=d.actions){for(var e=0;e<d.actions.length;e++){var f=d.actions[e];if(null!=f.open&&"data:page/id,"==f.open.substring(0,13)){var m=f.open.substring(f.open.indexOf(",")+1),c=a[m];null!=c?f.open="data:page/id,"+c:null==this.getPageById(m)&&delete f.open}}b="data:action/json,"+JSON.stringify(d)}}catch(A){}return b};
+EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var c=this.isRemoteVisioFormat(e);try{var f="UNKNOWN-VISIO",g=e.lastIndexOf(".");if(0<=g&&g<e.length)f=e.substring(g+1).toUpperCase();else{var k=e.lastIndexOf("/");0<=
+k&&k<e.length&&(e=e.substring(k+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+e,label:c?"remote":"local"})}catch(z){}if(c)if(null==VSD_CONVERT_URL||this.isOffline())d({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{c=new FormData;c.append("file1",a,e);var p=new XMLHttpRequest;p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);
+p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var a=p.response;if("text/xml"==a.type){var c=new FileReader;c.onload=mxUtils.bind(this,function(a){try{b(a.target.result)}catch(G){d({message:mxResources.get("errorLoadingFile")})}});c.readAsText(a)}else this.doImportVisio(a,b,d,e)}catch(M){d(M)}else try{""==p.responseType||"text"==p.responseType?d({message:p.responseText}):(c=new FileReader,c.onload=function(){d({message:JSON.parse(c.result).Message})},
+c.readAsText(p.response))}catch(M){d({})}});p.send(c)}else try{this.doImportVisio(a,b,d,e)}catch(z){d(z)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.importGraphML=function(a,b,d){d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=
+!1;if(this.doImportGraphML)try{this.doImportGraphML(a,b,d)}catch(p){d(p)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(a){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(a)||this.handleError({message:mxResources.get("unknownError")})}catch(g){this.handleError(g)}else this.spinner.stop(),
+this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+a.length}),EditorUi.debug("convertLucidChart",a)}catch(p){}try{b(LucidImporter.importState(JSON.parse(a)))}catch(p){null!=
+window.console&&console.error(p),d(p)}}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",
c)})})})}):mxscript("js/extensions.min.js",c))};EditorUi.prototype.generateMermaidImage=function(a,b,d,e){var c=this,f=function(){try{this.loadingMermaid=!1,b=null!=b?b:EditorUi.defaultMermaidConfig,b.securityLevel="strict",b.startOnLoad=!1,mermaid.mermaidAPI.initialize(b),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),a,function(a){try{if(mxClient.IS_IE||mxClient.IS_IE11)a=a.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,
-' xml:space="preserve"');var b=mxUtils.parseXml(a).getElementsByTagName("svg");if(0<b.length){var f=parseFloat(b[0].getAttribute("width")),g=parseFloat(b[0].getAttribute("height"));if(isNaN(f)||isNaN(g))try{var k=b[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),g=parseFloat(k[3])}catch(M){f=f||100,g=g||100}d(c.convertDataUri(Editor.createSvgDataUri(a)),f,g)}else e({message:mxResources.get("invalidInput")})}catch(M){e(M)}})}catch(u){e(u)}};"undefined"!==typeof mermaid||this.loadingMermaid||
+' xml:space="preserve"');var b=mxUtils.parseXml(a).getElementsByTagName("svg");if(0<b.length){var f=parseFloat(b[0].getAttribute("width")),g=parseFloat(b[0].getAttribute("height"));if(isNaN(f)||isNaN(g))try{var k=b[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),g=parseFloat(k[3])}catch(L){f=f||100,g=g||100}d(c.convertDataUri(Editor.createSvgDataUri(a)),f,g)}else e({message:mxResources.get("invalidInput")})}catch(L){e(L)}})}catch(v){e(v)}};"undefined"!==typeof mermaid||this.loadingMermaid||
this.isOffline(!0)?f():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generatePlantUmlImage=function(a,b,d,e){function c(a,c,b){c1=a>>2;c2=(a&3)<<4|c>>4;c3=(c&15)<<2|b>>6;c4=b&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":
1==a?"_":"?"}var g=new XMLHttpRequest;g.open("GET",("txt"==b?PLANT_URL+"/txt/":"png"==b?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(a){r="";for(i=0;i<a.length;i+=3)r=i+2==a.length?r+c(a.charCodeAt(i),a.charCodeAt(i+1),0):i+1==a.length?r+c(a.charCodeAt(i),0,0):r+c(a.charCodeAt(i),a.charCodeAt(i+1),a.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(a))),!0);"txt"!=b&&(g.responseType="blob");g.onload=function(a){if(200<=this.status&&300>this.status)if("txt"==b)d(this.response);
-else{var c=new FileReader;c.readAsDataURL(this.response);c.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,f=b.height;if(0==a&&0==f){var g=c.result,k=g.indexOf(","),m=decodeURIComponent(escape(atob(g.substring(k+1)))),l=mxUtils.parseXml(m).getElementsByTagName("svg");0<l.length&&(a=parseFloat(l[0].getAttribute("width")),f=parseFloat(l[0].getAttribute("height")))}d(c.result,a,f)}catch(J){e(J)}};b.src=c.result};c.onerror=function(a){e(a)}}else e(a)};g.onerror=function(a){e(a)};
-g.send()};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,k,l,n,q){l=null!=l?l:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
-" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var f=Editor.extractGraphModelFromPdf(a);if(null!=f&&0<f.length)return this.importXml(f,b,d,l,!0,q)}if("data:image/png;base64,"==
-a.substring(0,22)&&(f=this.extractGraphModelFromPng(a),null!=f&&0<f.length))return this.importXml(f,b,d,l,!0,q);if("data:image/svg+xml;"==a.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1));var g=this.importXml(f,b,d,l,!0,q);if(0<g.length)return g}catch(L){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
-5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),
+else{var c=new FileReader;c.readAsDataURL(this.response);c.onloadend=function(a){var b=new Image;b.onload=function(){try{var a=b.width,f=b.height;if(0==a&&0==f){var g=c.result,k=g.indexOf(","),p=decodeURIComponent(escape(atob(g.substring(k+1)))),m=mxUtils.parseXml(p).getElementsByTagName("svg");0<m.length&&(a=parseFloat(m[0].getAttribute("width")),f=parseFloat(m[0].getAttribute("height")))}d(c.result,a,f)}catch(K){e(K)}};b.src=c.result};c.onerror=function(a){e(a)}}else e(a)};g.onerror=function(a){e(a)};
+g.send()};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=left;verticalAlign=top;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,p,m,l,q){m=null!=m?m:!0;l=null!=l?l:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
+" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(p||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:application/pdf;base64,"==a.substring(0,28)){var f=Editor.extractGraphModelFromPdf(a);if(null!=f&&0<f.length)return this.importXml(f,b,d,m,!0,q)}if("data:image/png;base64,"==
+a.substring(0,22)&&(f=this.extractGraphModelFromPng(a),null!=f&&0<f.length))return this.importXml(f,b,d,m,!0,q);if("data:image/svg+xml;"==a.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1));var g=this.importXml(f,b,d,m,!0,q);if(0<g.length)return g}catch(M){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,
+5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),l,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),
g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=Graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,
-b,d,l,null,q);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,l,null,q))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;k=null;c.getModel().beginUpdate();try{k=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;whiteSpace=wrap;"+(e?"html=1;":""));c.fireEvent(new mxEventObject("textInserted","cells",[k]));"<"==a.charAt(0)&&a.indexOf(">")==
-a.length-1&&(a=mxUtils.htmlEntities(a));a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"...");k.value=a;c.updateCellSize(k);if(0<this.maxTextWidth&&k.geometry.width>this.maxTextWidth){var m=c.getPreferredSizeForCell(k,this.maxTextWidth);k.geometry.width=m.width;k.geometry.height=m.height}Graph.isLink(k.value)&&c.setLinkForCell(k,k.value);k.geometry.width+=c.gridSize;k.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[k]}}return[]};EditorUi.prototype.formatFileSize=
+b,d,m,null,q);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,m,null,q))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;p=null;c.getModel().beginUpdate();try{p=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;whiteSpace=wrap;"+(e?"html=1;":""));c.fireEvent(new mxEventObject("textInserted","cells",[p]));"<"==a.charAt(0)&&a.indexOf(">")==
+a.length-1&&(a=mxUtils.htmlEntities(a));a.length>this.maxTextBytes&&(a=a.substring(0,this.maxTextBytes)+"...");p.value=a;c.updateCellSize(p);if(0<this.maxTextWidth&&p.geometry.width>this.maxTextWidth){var k=c.getPreferredSizeForCell(p,this.maxTextWidth);p.geometry.width=k.width;p.geometry.height=k.height}Graph.isLink(p.value)&&c.setLinkForCell(p,p.value);p.geometry.width+=c.gridSize;p.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[p]}}return[]};EditorUi.prototype.formatFileSize=
function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat=function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&('{"state":"{\\"Properties\\":'==
a.substring(0,26)||'{"Properties":'==a.substring(0,14))};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport){if(null==this.importFileInputElt){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&(this.importFiles(c.files,null,null,this.maxImageSize),c.type="",c.type="file",c.value="")}));c.style.display="none";document.body.appendChild(c);this.importFileInputElt=c}this.importFileInputElt.click()}else{window.openNew=
!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(a,c){StorageFile.listFiles(this,"F",a,c)});window.openBrowserFile=mxUtils.bind(this,function(a,c,b){StorageFile.getFileContent(this,a,c,b)});window.deleteBrowserFile=mxUtils.bind(this,function(a,c,b){StorageFile.deleteFile(this,a,c,b)});if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,
function(a,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var b=new Blob([a],{type:"application/octet-stream"});this.importVisio(b,mxUtils.bind(this,function(a){this.importXml(a,0,0,!0)}),null,c)}else this.editor.graph.setSelectionCells(this.importXml(a,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,
function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(a,b,d){var c=this,e=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(a).then(function(e){if(0==Object.keys(e.files).length)d();else{var f=0,g,k=!1;e.forEach(function(a,c){var e=c.name.toLowerCase();"diagram/diagram.xml"==e?(k=!0,c.async("string").then(function(a){0==a.indexOf("<mxfile ")?
b(a):d()})):0==e.indexOf("versions/")&&(e=parseInt(e.substr(9)),e>f&&(f=e,g=c))});0<f?g.async("string").then(function(e){!c.isOffline()&&(new XMLHttpRequest).upload&&c.isRemoteFileFormat(e,a.name)?c.parseFile(new Blob([e],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?b(a.responseText):d())}),a.name):d()}):k||d()}},function(a){d(a)}):d()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?e():(this.loadingExtensions=
-!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,e,k,l,n,q,t,z,y,M){z=null!=z?z:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,z,null,null!=M?mxEvent.isControlDown(M):null);null!=q&&q(c)});"image"==b.substring(0,5)?(t=!1,"image/png"==b.substring(0,9)&&(b=y?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,z,
-null,null!=M?mxEvent.isControlDown(M):null),t=!0)),t||(b=this.editor.graph,y=a.indexOf(";"),0<y&&(a=a.substring(0,y)+a.substring(a.indexOf(",",y+1))),z&&b.isGridEnabled()&&(d=b.snap(d),e=b.snap(e)),f=[b.insertVertex(null,null,"",d,e,k,l,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=t&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?
-(c=!0,this.importVisio(t,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,n)?(c=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=q&&q(null))}),n)):0==a.indexOf("PK")&&null!=t?(c=!0,this.importZipFile(t,g,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,z);q(f)}))):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||
-(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,z,null,null!=M?mxEvent.isControlDown(M):null));c||null==q||q(f);return f};EditorUi.prototype.importFiles=function(a,b,d,e,k,l,n,q,t,z,y,M,L){e=null!=e?e:this.maxImageSize;z=null!=z?z:this.maxImageBytes;var c=null!=b&&null!=d,f=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var m=y||this.resampleThreshold,p=0;p<a.length;p++)if("image/"==a[p].type.substring(0,6)&&a[p].size>m){g=!0;break}var u=mxUtils.bind(this,
-function(){var g=this.editor.graph,m=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,d,e,f,g,k,m,l){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,m,l,c,M,L)}catch(ca){return this.handleError(ca),null}});l=null!=l?l:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,u=p,t=[],E=mxUtils.bind(this,function(a,
-c){t[a]=c;if(0==--u){this.spinner.stop();if(null!=q)q(t);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<t.length;d++){var e=t[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}l(b)}}),A=0;A<p;A++)mxUtils.bind(this,function(c){var l=a[c];if(null!=l){var p=new FileReader;p.onload=mxUtils.bind(this,function(a){if(null==n||n(l))if("image/"==l.type.substring(0,6))if("image/svg"==l.type.substring(0,9)){var p=Graph.clipSvgDataUri(a.target.result),q=p.indexOf(","),u=decodeURIComponent(escape(atob(p.substring(q+
-1)))),t=mxUtils.parseXml(u),u=t.getElementsByTagName("svg");if(0<u.length){var u=u[0],x=M?null:u.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?E(c,mxUtils.bind(this,function(){try{if(p.substring(0,q+1),null!=t){var a=t.getElementsByTagName("svg");if(0<a.length){var f=a[0],n=f.getAttribute("width"),
-u=f.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,u=null!=u&&"%"!=u.charAt(u.length-1)?parseFloat(u):NaN,y=f.getAttribute("viewBox");if(null==y||0==y.length)f.setAttribute("viewBox","0 0 "+n+" "+u);else if(isNaN(n)||isNaN(u)){var z=y.split(" ");3<z.length&&(n=parseFloat(z[2]),u=parseFloat(z[3]))}p=Editor.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,u)),E=k(p,l.type,b+c*m,d+c*m,Math.max(1,Math.round(n*x)),Math.max(1,Math.round(u*
-x)),l.name);if(isNaN(n)||isNaN(u)){var A=new Image;A.onload=mxUtils.bind(this,function(){n=Math.max(1,A.width);u=Math.max(1,A.height);E[0].geometry.width=n;E[0].geometry.height=u;f.setAttribute("viewBox","0 0 "+n+" "+u);p=Editor.createSvgDataUri(mxUtils.getXml(f));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));g.setCellStyles("image",p,[E[0]])});A.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return E}}}catch(fa){}return null})):E(c,mxUtils.bind(this,function(){return k(x,
-"text/xml",b+c*m,d+c*m,0,0,l.name)}))}else E(c,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==l.type){var A=M?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var H=new Image;H.src=a.target.result;E(c,mxUtils.bind(this,function(){return k(A,"text/xml",b+c*m,d+c*m,H.width,H.height,l.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
-mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,n){E(c,mxUtils.bind(this,function(){if(null!=a&&a.length<z){var p=f&&this.isResampleImageSize(l.size,y)?Math.min(1,Math.min(e/g,e/n)):1;return k(a,l.type,b+c*m,d+c*m,Math.round(g*p),Math.round(n*p),l.name)}this.handleError({message:mxResources.get("imageTooBig")});
-return null}))}),f,e,y,l.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else p=a.target.result,k(p,l.type,b+c*m,d+c*m,240,160,l.name,function(a){E(c,function(){return a})},l)});/(\.v(dx|sdx?))($|\?)/i.test(l.name)||/(\.vs(x|sx?))($|\?)/i.test(l.name)?k(null,l.type,b+c*m,d+c*m,240,160,l.name,function(a){E(c,function(){return a})},l):"image"==l.type.substring(0,5)||"application/pdf"==l.type?p.readAsDataURL(l):p.readAsText(l)}})(A)});if(g){g=
-[];for(p=0;p<a.length;p++)g.push(a[p]);a=g;this.confirmImageResize(function(a){f=a;u()},t)}else u()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
+!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.importFile=function(a,b,d,e,p,m,l,q,u,y,z,L){y=null!=y?y:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,l)):c=this.importXml(a,d,e,y,null,null!=L?mxEvent.isControlDown(L):null);null!=q&&q(c)});"image"==b.substring(0,5)?(u=!1,"image/png"==b.substring(0,9)&&(b=z?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,y,
+null,null!=L?mxEvent.isControlDown(L):null),u=!0)),u||(b=this.editor.graph,z=a.indexOf(";"),0<z&&(a=a.substring(0,z)+a.substring(a.indexOf(",",z+1))),y&&b.isGridEnabled()&&(d=b.snap(d),e=b.snap(e)),f=[b.insertVertex(null,null,"",d,e,p,m,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";")])):/(\.*<graphml )/.test(a)?(c=!0,this.importGraphML(a,g)):null!=u&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?
+(c=!0,this.importVisio(u,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,l)?(c=!0,this.parseFile(null!=u?u:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?g(a.responseText):null!=q&&q(null))}),l)):0==a.indexOf("PK")&&null!=u?(c=!0,this.importZipFile(u,g,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y);q(f)}))):/(\.v(sd|dx))($|\?)/i.test(l)||/(\.vs(s|x))($|\?)/i.test(l)||
+(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,y,null,null!=L?mxEvent.isControlDown(L):null));c||null==q||q(f);return f};EditorUi.prototype.importFiles=function(a,b,d,e,p,m,l,q,u,y,z,L,M){e=null!=e?e:this.maxImageSize;y=null!=y?y:this.maxImageBytes;var c=null!=b&&null!=d,f=!0;b=null!=b?b:0;d=null!=d?d:0;var g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var k=z||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0,6)&&a[t].size>k){g=!0;break}var v=mxUtils.bind(this,
+function(){var g=this.editor.graph,k=g.gridSize;p=null!=p?p:mxUtils.bind(this,function(a,b,d,e,f,g,k,n,p){try{return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,n,p,c,L,M)}catch(ba){return this.handleError(ba),null}});m=null!=m?m:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var n=a.length,t=n,v=[],u=mxUtils.bind(this,function(a,
+c){v[a]=c;if(0==--t){this.spinner.stop();if(null!=q)q(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}m(b)}}),D=0;D<n;D++)mxUtils.bind(this,function(c){var n=a[c];if(null!=n){var m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==l||l(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.type.substring(0,9)){var m=Graph.clipSvgDataUri(a.target.result),t=m.indexOf(","),q=decodeURIComponent(escape(atob(m.substring(t+
+1)))),v=mxUtils.parseXml(q),q=v.getElementsByTagName("svg");if(0<q.length){var q=q[0],D=L?null:q.getAttribute("content");null!=D&&"<"!=D.charAt(0)&&"%"!=D.charAt(0)&&(D=unescape(window.atob?atob(D):Base64.decode(D,!0)));null!=D&&"%"==D.charAt(0)&&(D=decodeURIComponent(D));null==D||"<mxfile "!==D.substring(0,8)&&"<mxGraphModel "!==D.substring(0,14)?u(c,mxUtils.bind(this,function(){try{if(m.substring(0,t+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],l=f.getAttribute("width"),
+q=f.getAttribute("height"),l=null!=l&&"%"!=l.charAt(l.length-1)?parseFloat(l):NaN,q=null!=q&&"%"!=q.charAt(q.length-1)?parseFloat(q):NaN,u=f.getAttribute("viewBox");if(null==u||0==u.length)f.setAttribute("viewBox","0 0 "+l+" "+q);else if(isNaN(l)||isNaN(q)){var y=u.split(" ");3<y.length&&(l=parseFloat(y[2]),q=parseFloat(y[3]))}m=Editor.createSvgDataUri(mxUtils.getXml(f));var z=Math.min(1,Math.min(e/Math.max(1,l)),e/Math.max(1,q)),D=p(m,n.type,b+c*k,d+c*k,Math.max(1,Math.round(l*z)),Math.max(1,Math.round(q*
+z)),n.name);if(isNaN(l)||isNaN(q)){var A=new Image;A.onload=mxUtils.bind(this,function(){l=Math.max(1,A.width);q=Math.max(1,A.height);D[0].geometry.width=l;D[0].geometry.height=q;f.setAttribute("viewBox","0 0 "+l+" "+q);m=Editor.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[D[0]])});A.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return D}}}catch(ea){}return null})):u(c,mxUtils.bind(this,function(){return p(D,
+"text/xml",b+c*k,d+c*k,0,0,n.name)}))}else u(c,mxUtils.bind(this,function(){return null}))}else{q=!1;if("image/png"==n.type){var A=L?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var I=new Image;I.src=a.target.result;u(c,mxUtils.bind(this,function(){return p(A,"text/xml",b+c*k,d+c*k,I.width,I.height,n.name)}));q=!0}}q||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),
+mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(a,g,m){u(c,mxUtils.bind(this,function(){if(null!=a&&a.length<y){var l=f&&this.isResampleImageSize(n.size,z)?Math.min(1,Math.min(e/g,e/m)):1;return p(a,n.type,b+c*k,d+c*k,Math.round(g*l),Math.round(m*l),n.name)}this.handleError({message:mxResources.get("imageTooBig")});
+return null}))}),f,e,z,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else m=a.target.result,p(m,n.type,b+c*k,d+c*k,240,160,n.name,function(a){u(c,function(){return a})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?p(null,n.type,b+c*k,d+c*k,240,160,n.name,function(a){u(c,function(){return a})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?m.readAsDataURL(n):m.readAsText(n)}})(D)});if(g){g=
+[];for(t=0;t<a.length;t++)g.push(a[t]);a=g;this.confirmImageResize(function(a){f=a;v()},u)}else v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),
function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",
-OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(p){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,e,k,l,n){k=null!=k?k:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImageSize(null!=n?n:b.length,l))try{var g=Math.max(c/k,f/k);if(1<g){var m=Math.round(c/g),p=Math.round(f/
-g),q=document.createElement("canvas");q.width=m;q.height=p;q.getContext("2d").drawImage(a,0,0,m,p);var u=q.toDataURL();if(u.length<b.length){var t=document.createElement("canvas");t.width=m;t.height=p;var K=t.toDataURL();u!==K&&(b=u,c=m,f=p)}}}catch(E){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
-120;b(c)};null!=d&&(c.onerror=d);c.src=a}catch(k){if(null!=d)d(k);else throw k;}};var n=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;Editor.isDarkMode()&&(b.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);b.cellEditor.editPlantUmlData=function(c,d,e){var f=JSON.parse(e);d=
-new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var m=b.model.getGeometry(c);null!=m&&(m=m.clone(),m.width=g,m.height=k,b.cellsResized([c],[m],!1))}b.setAttributeForCell(c,"plantUmlData",
-JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
-e,[c]);var m=b.model.getGeometry(c);null!=m&&(m=m.clone(),m.width=Math.max(m.width,g),m.height=Math.max(m.height,k),b.cellsResized([c],[m],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(b){a.handleError(b)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
-f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(J){a.handleError(J)}};b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(K){a.handleError(K)}return c};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.apply(this,
-arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var k=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return k.apply(this,arguments)};
-var l=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};l.call(this,a,c,d)};n.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var q=Menus.prototype.addPopupMenuEditItems;
-this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?q.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var t=b.getExportVariables;b.getExportVariables=function(){var c=t.apply(this,arguments),b=a.getCurrentFile();null!=
+OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+a.size})}catch(t){}};EditorUi.prototype.isResampleImageSize=function(a,b){b=null!=b?b:this.resampleThreshold;return a>b};EditorUi.prototype.resizeImage=function(a,b,d,e,m,l,q){m=null!=m?m:this.maxImageSize;var c=Math.max(1,a.width),f=Math.max(1,a.height);if(e&&this.isResampleImageSize(null!=q?q:b.length,l))try{var g=Math.max(c/m,f/m);if(1<g){var k=Math.round(c/g),p=Math.round(f/
+g),t=document.createElement("canvas");t.width=k;t.height=p;t.getContext("2d").drawImage(a,0,0,k,p);var u=t.toDataURL();if(u.length<b.length){var v=document.createElement("canvas");v.width=k;v.height=p;var H=v.toDataURL();u!==H&&(b=u,c=k,f=p)}}}catch(D){}d(b,c,f)};EditorUi.prototype.extractGraphModelFromPng=function(a){return Editor.extractGraphModelFromPng(a)};EditorUi.prototype.loadImage=function(a,b,d){try{var c=new Image;c.onload=function(){c.width=0<c.width?c.width:120;c.height=0<c.height?c.height:
+120;b(c)};null!=d&&(c.onerror=d);c.src=a}catch(p){if(null!=d)d(p);else throw p;}};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;Editor.isDarkMode()&&(b.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);b.cellEditor.editPlantUmlData=function(c,d,e){var f=JSON.parse(e);d=
+new TextareaDialog(a,mxResources.get("plantUml")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generatePlantUmlImage(d,f.format,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{if("txt"==f.format)b.labelChanged(c,"<pre>"+e+"</pre>"),b.updateCellSize(c,!0);else{b.setCellStyles("image",a.convertDataUri(e),[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=g,n.height=k,b.cellsResized([c],[n],!1))}b.setAttributeForCell(c,"plantUmlData",
+JSON.stringify({data:d,format:f.format}))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};b.cellEditor.editMermaidData=function(c,d,e){var f=JSON.parse(e);d=new TextareaDialog(a,mxResources.get("mermaid")+":",f.data,function(d){null!=d&&a.spinner.spin(document.body,mxResources.get("inserting"))&&a.generateMermaidImage(d,f.config,function(e,g,k){a.spinner.stop();b.getModel().beginUpdate();try{b.setCellStyles("image",
+e,[c]);var n=b.model.getGeometry(c);null!=n&&(n=n.clone(),n.width=Math.max(n.width,g),n.height=Math.max(n.height,k),b.cellsResized([c],[n],!1));b.setAttributeForCell(c,"mermaidData",JSON.stringify({data:d,config:f.config},null,2))}finally{b.getModel().endUpdate()}},function(c){a.handleError(c)})},null,null,400,220);a.showDialog(d.container,420,300,!0,!0);d.init()};var d=b.cellEditor.startEditing;b.cellEditor.startEditing=function(c,e){try{var f=this.graph.getAttributeForCell(c,"plantUmlData");if(null!=
+f)this.editPlantUmlData(c,e,f);else if(f=this.graph.getAttributeForCell(c,"mermaidData"),null!=f)this.editMermaidData(c,e,f);else{var g=b.getCellStyle(c);"1"==mxUtils.getValue(g,"metaEdit","0")?a.showDataDialog(c):d.apply(this,arguments)}}catch(K){a.handleError(K)}};b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(H){a.handleError(H)}return b};var e=this.clearDefaultStyle;this.clearDefaultStyle=function(){e.apply(this,
+arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var m=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(a){a=null!=a?a:"";"1"==urlParams.dev&&(a+=(0<a.length?"&":"?")+"dev=1");return m.apply(this,arguments)};
+var t=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};t.call(this,a,c,d)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var q=Menus.prototype.addPopupMenuEditItems;
+this.menus.addPopupMenuEditItems=function(c,b,d){a.editor.graph.isSelectionEmpty()?q.apply(this,arguments):a.menus.addMenuItems(c,"delete - cut copy copyAsImage - duplicate".split(" "),null,d)}}a.actions.get("print").funct=function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var u=b.getExportVariables;b.getExportVariables=function(){var c=u.apply(this,arguments),b=a.getCurrentFile();null!=
b&&(c.filename=b.getTitle());c.pagecount=null!=a.pages?a.pages.length:1;c.page=null!=a.currentPage?a.currentPage.getName():"";c.pagenumber=null!=a.pages&&null!=a.currentPage?mxUtils.indexOf(a.pages,a.currentPage)+1:1;return c};var F=b.getGlobalVariable;b.getGlobalVariable=function(c){var b=a.getCurrentFile();return"filename"==c&&null!=b?b.getTitle():"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:
-"pagecount"==c?null!=a.pages?a.pages.length:1:F.apply(this,arguments)};var z=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))z.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?
-b.getTitle():c);return c};var y=this.actions.get("print");y.setEnabled(!mxClient.IS_IOS||!navigator.standalone);y.visible=y.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,
+"pagecount"==c?null!=a.pages?a.pages.length:1:F.apply(this,arguments)};var y=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))y.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?
+b.getTitle():c);return c};var z=this.actions.get("print");z.setEnabled(!mxClient.IS_IOS||!navigator.standalone);z.visible=z.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,
!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&b.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==
d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=0;c<a.length;c++)a[c]()},mxEvent.isControlDown(a));else if(0<=
mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,
-"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(y=this.editor.graph.view,y.setUnit(mxSettings.getUnit()),y.addListener("unitChanged",function(a,c){mxSettings.setUnit(c.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==
-document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,y.unit),this.refresh());if("1"==urlParams.styledev){y=document.getElementById("geFooter");null!=y&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility=
-"hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),y.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||
-"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var M=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:M.apply(this,arguments)}}y=document.getElementById("geInfo");null!=y&&y.parentNode.removeChild(y);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var L=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=L&&(L.parentNode.removeChild(L),
-L=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==L&&(!mxClient.IS_IE||10<document.documentMode)&&(L=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=L&&(L.parentNode.removeChild(L),L=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
+"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));"undefined"!==typeof window.mxSettings&&(z=this.editor.graph.view,z.setUnit(mxSettings.getUnit()),z.addListener("unitChanged",function(a,c){mxSettings.setUnit(c.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==
+document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,z.unit),this.refresh());if("1"==urlParams.styledev){z=document.getElementById("geFooter");null!=z&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility=
+"hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),z.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||
+"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var L=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:L.apply(this,arguments)}}z=document.getElementById("geInfo");null!=z&&z.parentNode.removeChild(z);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var M=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=M&&(M.parentNode.removeChild(M),
+M=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==M&&(!mxClient.IS_IE||10<document.documentMode)&&(M=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=M&&(M.parentNode.removeChild(M),M=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),
d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;if(0<a.dataTransfer.files.length)mxEvent.isShiftDown(a)?this.openFiles(a.dataTransfer.files,!0):(mxEvent.isAltDown(a)&&(g=f=null),this.importFiles(a.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a),a));else{mxEvent.isAltDown(a)&&(g=f=0);var k=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,
-null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var m=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=b.sanitizeHtml(m);var l=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(m=d[0].getAttribute("src"),null==m&&(m=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(l=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?m=d[0].getAttribute("href"):
-(c=c.getElementsByTagName("pre"),null!=c&&1==c.length&&(m=mxUtils.getTextContent(c[0]))));var n=!0,p=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(m,f,g,!0,l,null,n,mxEvent.isControlDown(a)))});l&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;p()},mxEvent.isControlDown(a)):p()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);
+null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var m=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=b.sanitizeHtml(m);var n=null,d=c.getElementsByTagName("img");null!=d&&1==d.length?(m=d[0].getAttribute("src"),null==m&&(m=d[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=!0)):(d=c.getElementsByTagName("a"),null!=d&&1==d.length?m=d[0].getAttribute("href"):
+(c=c.getElementsByTagName("pre"),null!=c&&1==c.length&&(m=mxUtils.getTextContent(c[0]))));var p=!0,l=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(m,f,g,!0,n,null,p,mxEvent.isControlDown(a)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(a){p=a;l()},mxEvent.isControlDown(a)):l()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);
var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),f,g,!0))}}a.stopPropagation();
-a.preventDefault()}),!1)}b.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c))try{for(var b=c.clipboardData||c.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var l=
-f[index];if("file"===l.kind){if(a.isEditing())this.importFiles([l.getAsFile()],0,0,this.maxImageSize,function(c,b,d,e,f,g){a.insertImage(c,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var n=this.editor.graph.getInsertPoint();this.importFiles([l.getAsFile()],n.x,n.y,this.maxImageSize);mxEvent.consume(c)}break}}}}catch(F){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML=
+a.preventDefault()}),!1)}b.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var a=this.editor.graph;a.container.addEventListener("paste",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c))try{for(var b=c.clipboardData||c.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var m=
+f[index];if("file"===m.kind){if(a.isEditing())this.importFiles([m.getAsFile()],0,0,this.maxImageSize,function(c,b,d,e,f,g){a.insertImage(c,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var l=this.editor.graph.getInsertPoint();this.importFiles([m.getAsFile()],l.x,l.y,this.maxImageSize);mxEvent.consume(c)}break}}}}catch(F){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function a(){window.setTimeout(function(){d.innerHTML=
"&nbsp;";d.focus();document.execCommand("selectAll",!1,null)},0)}var b=this.editor.graph,d=document.createElement("div");d.setAttribute("autocomplete","off");d.setAttribute("autocorrect","off");d.setAttribute("autocapitalize","off");d.setAttribute("spellcheck","false");d.style.textRendering="optimizeSpeed";d.style.fontFamily="monospace";d.style.wordBreak="break-all";d.style.background="transparent";d.style.color="transparent";d.style.position="absolute";d.style.whiteSpace="nowrap";d.style.overflow=
"hidden";d.style.display="block";d.style.fontSize="1";d.style.zIndex="-1";d.style.resize="none";d.style.outline="none";d.style.width="1px";d.style.height="1px";mxUtils.setOpacity(d,0);d.contentEditable=!0;d.innerHTML="&nbsp;";var e=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||
b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||224!=a.keyCode&&(mxClient.IS_MAC||17!=a.keyCode)&&(!mxClient.IS_MAC||91!=a.keyCode&&93!=a.keyCode)||e||(d.style.left=b.container.scrollLeft+10+"px",d.style.top=b.container.scrollTop+10+"px",b.container.appendChild(d),e=!0,d.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!e||224!=c&&17!=
-c&&91!=c&&93!=c||(e=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),d.parentNode.removeChild(d),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(d,"copy",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d),a()}catch(u){this.handleError(u)}}));mxEvent.addListener(d,"cut",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d,!0),a()}catch(u){this.handleError(u)}}));mxEvent.addListener(d,
-"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(d.innerHTML="&nbsp;",d.focus(),null!=a.clipboardData&&this.pasteCells(a,d,!0,!0),mxEvent.isConsumed(a)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,d,!1,!0)}),0))}),!0);var k=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==d?!0:k.apply(this,arguments)}};EditorUi.prototype.getLinkTitle=function(a){var c=Graph.prototype.getLinkTitle.apply(this,arguments);
+c&&91!=c&&93!=c||(e=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),d.parentNode.removeChild(d),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(d,"copy",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d),a()}catch(v){this.handleError(v)}}));mxEvent.addListener(d,"cut",mxUtils.bind(this,function(c){if(b.isEnabled())try{mxClipboard.copy(b),this.copyCells(d,!0),a()}catch(v){this.handleError(v)}}));mxEvent.addListener(d,
+"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(d.innerHTML="&nbsp;",d.focus(),null!=a.clipboardData&&this.pasteCells(a,d,!0,!0),mxEvent.isConsumed(a)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,d,!1,!0)}),0))}),!0);var m=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==d?!0:m.apply(this,arguments)}};EditorUi.prototype.getLinkTitle=function(a){var c=Graph.prototype.getLinkTitle.apply(this,arguments);
if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");0<b&&(c=this.getPageById(a.substring(b+1)),c=null!=c?c.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(c=mxResources.get("action"));return c};EditorUi.prototype.handleCustomLink=function(a){if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");if(a=this.getPageById(a.substring(c+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};
EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(a){a.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(c){}this.fireEvent(new mxEventObject("styleChanged",
"keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",mxUtils.bind(this,function(a,b){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);else{var c=b.getProperty("customFonts");this.menus.customFonts=c;mxSettings.setCustomFonts(c)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",
mxUtils.bind(this,function(a,b){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor,
Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",
mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(a,b,d){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(a,
-c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(F){this.handleError(F)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(m){this.handleError(m)}};
+c){try{this.spinner.stop();var d=this.createImageDataUri(a,b,"png"),e=parseInt(c.getAttribute("width")),f=parseInt(c.getAttribute("height"));this.writeImageToClipboard(d,e,f,mxUtils.bind(this,function(a){this.handleError(a)}))}catch(F){this.handleError(F)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!0,null,0<a.length?a:null)}catch(k){this.handleError(k)}};
EditorUi.prototype.writeImageToClipboard=function(a,b,d,e){var c=this.base64ToBlob(a.substring(a.indexOf(",")+1),"image/png");a=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="'+a+'" width="'+b+'" height="'+d+'">'],{type:"text/html"})});navigator.clipboard.write([a])["catch"](e)};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(c.encodeCells(d));
mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var a=null;if(Editor.enableNativeCipboard){var b=this.editor.graph;b.isSelectionEmpty()||(a=mxUtils.sortCells(b.getExportableCells(b.model.getTopmostCells(b.getSelectionCells()))),b=mxUtils.getXml(b.encodeCells(a)),navigator.clipboard.writeText(b))}return a};EditorUi.prototype.pasteXml=
function(a,b,d,e){var c=this.editor.graph,f=null;c.lastPasteXml==a?c.pasteCounter++:(c.lastPasteXml=a,c.pasteCounter=0);var g=c.pasteCounter*c.gridSize;if(d||this.isCompatibleString(a))f=this.importXml(a,g,g),c.setSelectionCells(f);else if(b&&1==c.getSelectionCount()){g=c.getStartEditingCell(c.getSelectionCell(),e);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a)&&"image"==c.getCurrentCellStyle(g)[mxConstants.STYLE_SHAPE])c.setCellStyles(mxConstants.STYLE_IMAGE,a,[g]);else{c.model.beginUpdate();try{c.labelChanged(g,
a),Graph.isLink(a)&&c.setLinkForCell(g,a)}finally{c.model.endUpdate()}}c.setSelectionCell(g)}else f=c.getInsertPoint(),c.isMouseInsertPoint()&&(g=0,c.lastPasteXml==a&&0<c.pasteCounter&&c.pasteCounter--),f=this.insertTextAt(a,f.x+g,f.y+g,!0),c.setSelectionCells(f);c.isSelectionEmpty()||(c.scrollCellToVisible(c.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell())));return f};EditorUi.prototype.pasteCells=function(a,b,d,e){if(!mxEvent.isConsumed(a)){var c=
-b,f=!1;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var g=a.clipboardData.getData("text/plain"),m=!1;if(null!=g&&0<g.length&&"%3CmxGraphModel%3E"==g.substring(0,18)){var l=decodeURIComponent(g);this.isCompatibleString(l)&&(m=!0,g=l)}m=m?null:a.clipboardData.getData("text/html");null!=m&&0<m.length?(c=this.parseHtmlData(m),f="text/plain"!=c.getAttribute("data-type")):null!=g&&0<g.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,m))}g=c.getElementsByTagName("span");if(null!=
+b,f=!1;if(d&&null!=a.clipboardData&&a.clipboardData.getData){var g=a.clipboardData.getData("text/plain"),k=!1;if(null!=g&&0<g.length&&"%3CmxGraphModel%3E"==g.substring(0,18)){var m=decodeURIComponent(g);this.isCompatibleString(m)&&(k=!0,g=m)}k=k?null:a.clipboardData.getData("text/html");null!=k&&0<k.length?(c=this.parseHtmlData(k),f="text/plain"!=c.getAttribute("data-type")):null!=g&&0<g.length&&(c=document.createElement("div"),mxUtils.setTextContent(c,k))}g=c.getElementsByTagName("span");if(null!=
g&&0<g.length&&"application/vnd.lucid.chart.objects"===g[0].getAttribute("data-lucid-type"))d=g[0].getAttribute("data-lucid-content"),null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){var c=this.editor.graph;c.lastPasteXml==a?c.pasteCounter++:(c.lastPasteXml=a,c.pasteCounter=0);var b=c.pasteCounter*c.gridSize;c.setSelectionCells(this.importXml(a,b,b));c.scrollCellToVisible(c.getSelectionCell())}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a));else{f=
-f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText);m=!1;try{var n=f.lastIndexOf("%3E");0<=n&&n<f.length-3&&(f=f.substring(0,n+3))}catch(M){}try{g=c.getElementsByTagName("span"),l=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[0].textContent)):decodeURIComponent(f),this.isCompatibleString(l)&&(m=!0,f=l)}catch(M){}try{if(null!=f&&0<f.length){this.pasteXml(f,e,m,a);try{mxEvent.consume(a)}catch(M){}}else if(!d){var q=this.editor.graph;q.lastPasteXml=null;q.pasteCounter=
-0}}catch(M){this.handleError(M)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var c=null,b=0;b<a.length;b++)mxEvent.addListener(a[b],"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[b],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=
+f?c.innerHTML:mxUtils.trim(null==c.innerText?mxUtils.getTextContent(c):c.innerText);k=!1;try{var l=f.lastIndexOf("%3E");0<=l&&l<f.length-3&&(f=f.substring(0,l+3))}catch(L){}try{g=c.getElementsByTagName("span"),m=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[0].textContent)):decodeURIComponent(f),this.isCompatibleString(m)&&(k=!0,f=m)}catch(L){}try{if(null!=f&&0<f.length){this.pasteXml(f,e,k,a);try{mxEvent.consume(a)}catch(L){}}else if(!d){var q=this.editor.graph;q.lastPasteXml=null;q.pasteCounter=
+0}}catch(L){this.handleError(L)}}}b.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var c=null,b=0;b<a.length;b++)mxEvent.addListener(a[b],"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[b],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=
this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[b],"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var b=this.extractGraphModelFromEvent(a);
if(null==b){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?b=d.getData("Text"):(b=null,b=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=b&&0<b.length?(d=document.createElement("div"),d.innerHTML=this.editor.graph.sanitizeHtml(b),d=d.getElementsByTagName("img"),0<d.length&&(b=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,
"text/plain")&&(b=d.getData("text/plain"))),null!=b&&("data:image/png;base64,"==b.substring(0,22)?(b=this.extractGraphModelFromPng(b),null!=b&&0<b.length&&this.openLocalFile(b,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(b)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(b))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(b)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):
-window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var l=document.documentElement;d=(e.clientWidth||l.clientWidth)-3;e=Math.max(e.clientHeight||0,l.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;l=document.createElement("div");
-l.style.zIndex=mxPopupMenu.prototype.zIndex+2;l.style.border="3px dotted rgb(254, 137, 12)";l.style.pointerEvents="none";l.style.position="absolute";l.style.top=b+"px";l.style.left=c+"px";l.style.width=Math.max(0,d-3)+"px";l.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(l):document.body.appendChild(l);return l};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);
-a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,k){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
+window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var c=0,b=0,d,e;if(null==a){e=document.body;var m=document.documentElement;d=(e.clientWidth||m.clientWidth)-3;e=Math.max(e.clientHeight||0,m.clientHeight)-3}else c=a.offsetTop,b=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;m=document.createElement("div");
+m.style.zIndex=mxPopupMenu.prototype.zIndex+2;m.style.border="3px dotted rgb(254, 137, 12)";m.style.pointerEvents="none";m.style.position="absolute";m.style.top=c+"px";m.style.left=b+"px";m.style.width=Math.max(0,d-3)+"px";m.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(m):document.body.appendChild(m);return m};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var c=this.editor.extractGraphModel(a.documentElement);
+a=[];if(null!=c){var b=new mxCodec(c.ownerDocument),d=new mxGraphModel;b.decode(c,d);c=d.getChildAt(d.getRoot(),0);for(b=0;b<d.getChildCount(c);b++)a.push(d.getChildAt(c,b))}return a};EditorUi.prototype.openFileHandle=function(a,b,d,e,m){if(null!=b&&0<b.length){!this.useCanvasForExport&&/(\.png)$/i.test(b)?b=b.substring(0,b.length-4)+".drawio":/(\.pdf)$/i.test(b)&&(b=b.substring(0,b.length-4)+".drawio");var c=mxUtils.bind(this,function(a){b=0<=b.lastIndexOf(".")?b.substring(0,b.lastIndexOf("."))+
".drawio":b+".drawio";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,b))}catch(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,b,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(b)||/(\.vs(x|sx?))($|\?)/i.test(b))this.importVisio(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(/(\.*<graphml )/.test(a))this.importGraphML(a,
mxUtils.bind(this,function(a){this.spinner.stop();c(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,b))this.parseFile(d,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?c(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(a))/(\.json)$/i.test(b)&&(b=b.substring(0,
b.length-5)+".drawio"),this.convertLucidChart(a,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,b,e)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==a.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,a,d.name))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else if(0==
-a.indexOf("PK"))this.importZipFile(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(a,b,e)}));else{if("image/png"==d.type.substring(0,9))a=this.extractGraphModelFromPng(a);else if("application/pdf"==d.type){var f=Editor.extractGraphModelFromPdf(a);null!=f&&(k=null,e=!0,a=f)}this.spinner.stop();this.openLocalFile(a,b,e,k,null!=k?d:null)}}};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=
-0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){try{this.openFileHandle(c.target.result,a.name,a,b)}catch(u){this.handleError(u)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"!==a.type.substring(0,5)&&"application/pdf"!==a.type||"image/svg"===a.type.substring(0,9)?c.readAsText(a):c.readAsDataURL(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,d,e,k){var c=this.getCurrentFile(),
-f=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d,e,k))});if(null!=a&&0<a.length)null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)?f():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)&&null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),
+a.indexOf("PK"))this.importZipFile(d,mxUtils.bind(this,function(a){this.spinner.stop();c(a)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(a,b,e)}));else{if("image/png"==d.type.substring(0,9))a=this.extractGraphModelFromPng(a);else if("application/pdf"==d.type){var f=Editor.extractGraphModelFromPdf(a);null!=f&&(m=null,e=!0,a=f)}this.spinner.stop();this.openLocalFile(a,b,e,m,null!=m?d:null)}}};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=
+0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){try{this.openFileHandle(c.target.result,a.name,a,b)}catch(v){this.handleError(v)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"!==a.type.substring(0,5)&&"application/pdf"!==a.type||"image/svg"===a.type.substring(0,9)?c.readAsText(a):c.readAsDataURL(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,d,e,m){var c=this.getCurrentFile(),
+f=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d,e,m))});if(null!=a&&0<a.length)null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)?f():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)&&null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),
null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=
0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],d;for(d in a)b.push(d);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&
(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),c(mxMarker.getPackageForType(e[mxConstants.STYLE_ENDARROW])));for(var e=d.model.getChildCount(a),f=0;f<e;f++)this.addBasenamesForCell(d.model.getChildAt(a,f),b)};EditorUi.prototype.setGraphEnabled=function(a){this.diagramContainer.style.visibility=a?"":"hidden";this.formatContainer.style.visibility=a?"":"hidden";this.sidebarFooterContainer.style.display=a?"":"none";this.sidebarContainer.style.display=a?"":"none";this.hsplit.style.display=
@@ -3569,219 +3571,219 @@ a?"":"none";this.editor.graph.setEnabled(a);null!=this.ruler&&(this.ruler.hRuler
this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);(window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessageHandler(mxUtils.bind(this,function(a,b,d){this.spinner.stop();this.addEmbedButtons();this.setGraphEnabled(!0);if(null==a||0==a.length)a=
this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,a,{}));this.mode=App.MODE_EMBED;this.setFileData(a);this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&
(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,b){null!=a?a.getPublicUrl(b):b(null)};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=
-function(a){var b=null,c=!1,d=!1,e=null,l=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,l);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&
-"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(na){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(ca){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):
-g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?n.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):n.postMessage(JSON.stringify({event:"prompt-cancel",
-message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==g.action){var l=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),l,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",
-message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(ca){n.postMessage(JSON.stringify({event:"draft",error:ca.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
-var p=1==g.enableRecent,q=1==g.enableSearch,t=1==g.enableCustomTemp,m=new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(b,c,d,e){b=b||this.emptyDiagramXml;null!=g.callback?n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d,libs:e,builtIn:!0,message:g}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,p?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",
-null,null,a,function(){a(null,"Network Error!")})}):null,q?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",[a],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){n.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,t?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null);this.showDialog(m.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
-m.init();return}if("textContent"==g.action){var u=this.getDiagramTextContent();n.postMessage(JSON.stringify({event:"textContent",data:u,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var A=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==
-g.show||g.show?this.spinner.spin(document.body,A):this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var H=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var F=this.editor.graph,Q=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;
-b.message=g;b.data=a;b.xml=H;n.postMessage(JSON.stringify(b),"*")}),x=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(H)));F!=this.editor.graph&&F.container.parentNode.removeChild(F.container);Q(a)}),B=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(H),c=!1);if(null!=this.pages&&
-this.currentPage.getId()!=B){for(var C=F.getGlobalVariable,F=this.createTemporaryGraph(F.getStylesheet()),ga,D=0;D<this.pages.length;D++)if(this.pages[D].getId()==B){ga=this.updatePageRoot(this.pages[D]);break}null==ga&&(ga=this.currentPage);F.getGlobalVariable=function(a){return"page"==a?ga.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(F.container);F.model.setRoot(ga.root)}if(null!=g.layerIds){for(var U=F.model,Z=U.getChildCells(U.getRoot()),m={},D=0;D<g.layerIds.length;D++)m[g.layerIds[D]]=
-!0;for(D=0;D<Z.length;D++)U.setVisible(Z[D],m[Z[D].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){x(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){x(null)}),null,null,g.scale,g.transparent,g.shadow,null,F,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):
-"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(H))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?Q("data:image/png;base64,"+a.getText()):x(null)}),mxUtils.bind(this,function(){x(null)}))}}else{null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(g.xml),c=!1);A=this.createLoadMessage("export");A.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var Y=this.getXmlFileData();A.xml=
-mxUtils.getXml(Y);A.data=this.getFileData(null,null,!0,null,null,null,Y);A.format=g.format}else if("html"==g.format)H=this.editor.getGraphXml(),A.data=this.getHtml(H,this.editor.graph),A.xml=mxUtils.getXml(H),A.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ma=null!=g.background?g.background:this.editor.graph.background;ma==mxConstants.NONE&&(ma=null);A.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);A.format="svg";var pa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();A.data=Editor.createSvgDataUri(a);n.postMessage(JSON.stringify(A),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(A.xml,this.editor.graph,null,!0,pa,null,null,g.embedImages,ma,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);
-var aa=this.editor.graph.getSvg(ma,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(aa);this.embedFonts(aa,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){pa(mxUtils.getXml(a))})):pa(mxUtils.getXml(a))}))}return}n.postMessage(JSON.stringify(A),"*")}return}if("load"==g.action){d=1==g.autosave;
-this.hideDialog();null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified);null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit);null!=g.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(l=document.createElement("span"),mxUtils.write(l,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight=
-"12px",this.buttonContainer.style.paddingTop="6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(l),this.embedFilenameSpan=l);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(ca){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):
-null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==g.action){var ja=this.getCurrentFile();null!=ja&&(l=k(g.xml),null!=l&&""!=l&&ja.mergeFile(new LocalFile(this,l),function(){n.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){n.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(n):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):
-n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}catch(ca){this.handleError(ca)}}var ka=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),ha=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(P){this.handleError(P)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");e=ka();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=ka();if(d!=e&&
-!c){var f=this.createLoadMessage("autosave");f.xml=d;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",
-b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=f;n.postMessage(JSON.stringify(k),"*")}});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){ha(a,
-f)},mxUtils.bind(this,function(a){this.handleError(a)}),k)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&ha(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,
-function(a){ha(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):null==g||"object"!==typeof g||null==g.format||null==g.data&&null==g.url?(g=k(g),ha(g,f)):this.loadDescriptor(g,mxUtils.bind(this,function(a){ha(ka(),f)}),mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}}));var n=window.opener||window.parent,l="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(l,"*");if("json"==urlParams.proto){var q=this.editor.graph.openLink;
-this.editor.graph.openLink=function(a,b,c){q.apply(this,arguments);n.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";var d=b;if("1"==
-urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(b,e);b.setAttribute("title",e);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));a.appendChild(b)}}else mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),
-a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b),d=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),
-mxUtils.write(b,d),b.setAttribute("title",d),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,
-mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);
-if(null!=a[e].config)for(var l in a[e].config)f[l]=a[e].config[l];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var l={},n=null,q=null,t=null,y=null,M=null,L=null,I=null,G=null,K=null,E="",J="auto",H="auto",X=null,Q=null,x=40,B=40,C=100,ga=0,D=this.editor.graph;D.getGraphBounds();for(var U=function(){null!=b?b(sa):(D.setSelectionCells(sa),D.scrollCellToVisible(D.getSelectionCell()))},
-Z=D.getFreeInsertPoint(),Y=Z.x,ma=Z.y,Z=ma,pa=null,aa="auto",K=null,ja=[],ka=null,ha=null,ca=0;ca<c.length&&"#"==c[ca].charAt(0);){a=c[ca];for(ca++;ca<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ca].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ca].substring(1)),ca++;if("#"!=a.charAt(1)){var na=a.indexOf(":");if(0<na){var V=mxUtils.trim(a.substring(1,na)),P=mxUtils.trim(a.substring(na+1));"label"==V?pa=D.sanitizeHtml(P):"labelname"==V&&0<P.length&&"-"!=P?M=P:"labels"==V&&0<P.length&&"-"!=
-P?L=JSON.parse(P):"style"==V?q=P:"parentstyle"==V?I=P:"stylename"==V&&0<P.length&&"-"!=P?y=P:"styles"==V&&0<P.length&&"-"!=P?t=JSON.parse(P):"vars"==V&&0<P.length&&"-"!=P?n=JSON.parse(P):"identity"==V&&0<P.length&&"-"!=P?G=P:"parent"==V&&0<P.length&&"-"!=P?K=P:"namespace"==V&&0<P.length&&"-"!=P?E=P:"width"==V?J=P:"height"==V?H=P:"left"==V&&0<P.length?X=P:"top"==V&&0<P.length?Q=P:"ignore"==V?ha=P.split(","):"connect"==V?ja.push(JSON.parse(P)):"link"==V?ka=P:"padding"==V?ga=parseFloat(P):"edgespacing"==
-V?x=parseFloat(P):"nodespacing"==V?B=parseFloat(P):"levelspacing"==V?C=parseFloat(P):"layout"==V&&(aa=P)}}}if(null==c[ca])throw Error(mxResources.get("invalidOrMissingFile"));for(var oa=this.editor.csvToArray(c[ca]),V=na=null,P=[],T=0;T<oa.length;T++)G==oa[T]&&(na=T),K==oa[T]&&(V=T),P.push(mxUtils.trim(oa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+P[0]+"%");if(null!=ja)for(var da=0;da<ja.length;da++)null==l[ja[da].to]&&(l[ja[da].to]={});G=[];for(T=ca+1;T<
-c.length;T++){var la=this.editor.csvToArray(c[T]);if(null==la){var ra=40<c[T].length?c[T].substring(0,40)+"...":c[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<la.length&&G.push(la)}D.model.beginUpdate();try{for(T=0;T<G.length;T++){var la=G[T],O=null,ia=null!=na?E+la[na]:null;null!=ia&&(O=D.model.getCell(ia));var c=null!=O,fa=new mxCell(pa,new mxGeometry(Y,Z,0,0),q||"whiteSpace=wrap;html=1;");fa.vertex=!0;fa.id=ia;for(var R=0;R<la.length;R++)D.setAttributeForCell(fa,
-P[R],la[R]);if(null!=M&&null!=L){var ya=L[fa.getAttribute(M)];null!=ya&&D.labelChanged(fa,ya)}if(null!=y&&null!=t){var N=t[fa.getAttribute(y)];null!=N&&(fa.style=N)}D.setAttributeForCell(fa,"placeholders","1");fa.style=D.replacePlaceholders(fa,fa.style,n);c&&(D.model.setGeometry(O,fa.geometry),D.model.setStyle(O,fa.style),0>mxUtils.indexOf(e,O)&&e.push(O));O=fa;if(!c)for(da=0;da<ja.length;da++)l[ja[da].to][O.getAttribute(ja[da].to)]=O;null!=ka&&"link"!=ka&&(D.setLinkForCell(O,O.getAttribute(ka)),
-D.setAttributeForCell(O,ka,null));D.fireEvent(new mxEventObject("cellsInserted","cells",[O]));var ba=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=X&&null!=O.getAttribute(X)&&(O.geometry.x=Y+parseFloat(O.getAttribute(X))),null!=Q&&null!=O.getAttribute(Q)&&(O.geometry.y=ma+parseFloat(O.getAttribute(Q))),"@"==J.charAt(0)&&null!=O.getAttribute(J.substring(1))?O.geometry.width=parseFloat(O.getAttribute(J.substring(1))):O.geometry.width="auto"==J?ba.width+ga:parseFloat(J),"@"==H.charAt(0)&&
-null!=O.getAttribute(H.substring(1))?O.geometry.height=parseFloat(O.getAttribute(H.substring(1))):O.geometry.height="auto"==H?ba.height+ga:parseFloat(H),Z+=O.geometry.height+B);c?(null==f[ia]&&(f[ia]=[]),f[ia].push(O)):(K=null!=V?D.model.getCell(E+la[V]):null,d.push(O),null!=K?(K.style=D.replacePlaceholders(K,I,n),D.addCell(O,K)):e.push(D.addCell(O)))}for(var qa=e.slice(),sa=e.slice(),da=0;da<ja.length;da++)for(var ta=ja[da],T=0;T<d.length;T++){var O=d[T],Fa=mxUtils.bind(this,function(a,b,c){var d=
-b.getAttribute(c.from);if(null!=d&&(D.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),e=0;e<d.length;e++){var f=l[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.sourcelabel&&(g=D.replacePlaceholders(b,c.sourcelabel,n)+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(g=(g||"")+D.replacePlaceholders(f,c.targetlabel,n));var k="target"==c.placeholders==!c.invert?f:a,k=null!=c.style?
-D.replacePlaceholders(k,c.style,n):D.createCurrentEdgeStyle(),g=D.insertEdge(null,null,g||"",c.invert?f:a,c.invert?a:f,k);if(null!=c.labels)for(k=0;k<c.labels.length;k++){var m=c.labels[k],p=new mxCell(m.label||k,new mxGeometry(null!=m.x?m.x:0,null!=m.y?m.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=m.placeholders&&(p.value=D.replacePlaceholders("target"==m.placeholders==!c.invert?f:a,p.value,n));if(null!=m.dx||null!=m.dy)p.geometry.offset=new mxPoint(null!=
-m.dx?m.dx:0,null!=m.dy?m.dy:0);g.insert(p)}sa.push(g);mxUtils.remove(c.invert?a:f,qa)}}});Fa(O,O,ta);if(null!=f[O.id])for(R=0;R<f[O.id].length;R++)Fa(O,f[O.id][R],ta)}if(null!=ha)for(T=0;T<d.length;T++)for(O=d[T],R=0;R<ha.length;R++)D.setAttributeForCell(O,mxUtils.trim(ha[R]),null);if(0<e.length){var Da=new mxParallelEdgeLayout(D);Da.spacing=x;Da.checkOverlap=!0;var Ga=function(){0<Da.spacing&&Da.execute(D.getDefaultParent());for(var a=0;a<e.length;a++){var b=D.getCellGeometry(e[a]);b.x=Math.round(D.snap(b.x));
-b.y=Math.round(D.snap(b.y));"auto"==J&&(b.width=Math.round(D.snap(b.width)));"auto"==H&&(b.height=Math.round(D.snap(b.height)))}};if("["==aa.charAt(0)){var Ja=U;D.view.validate();this.executeLayoutList(JSON.parse(aa),function(){Ga();Ja()});U=null}else if("circle"==aa){var xa=new mxCircleLayout(D);xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Ia=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Ia.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){xa.execute(D.getDefaultParent());
-Ga()},!0,U);U=null}else if("horizontaltree"==aa||"verticaltree"==aa||"auto"==aa&&sa.length==2*e.length-1&&1==qa.length){D.view.validate();var za=new mxCompactTreeLayout(D,"horizontaltree"==aa);za.levelDistance=B;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(D.getDefaultParent(),0<qa.length?qa[0]:null)},!0,U);U=null}else if("horizontalflow"==aa||"verticalflow"==aa||"auto"==aa&&1==qa.length){D.view.validate();var ua=new mxHierarchicalLayout(D,"horizontalflow"==aa?mxConstants.DIRECTION_WEST:
-mxConstants.DIRECTION_NORTH);ua.intraCellSpacing=B;ua.parallelEdgeSpacing=x;ua.interRankCellSpacing=C;ua.disableEdgeStyle=!1;this.executeLayout(function(){ua.execute(D.getDefaultParent(),sa);D.moveCells(sa,Y,ma)},!0,U);U=null}else if("organic"==aa||"auto"==aa&&sa.length>e.length){D.view.validate();var va=new mxFastOrganicLayout(D);va.forceConstant=3*B;va.disableEdgeStyle=!1;va.resetEdges=!1;var W=va.isVertexIgnored;va.isVertexIgnored=function(a){return W.apply(this,arguments)||0>mxUtils.indexOf(e,
-a)};this.executeLayout(function(){va.execute(D.getDefaultParent());Ga()},!0,U);U=null}}this.hideDialog()}finally{D.model.endUpdate()}null!=U&&U()}}catch(Aa){this.handleError(Aa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=
-null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d,e,k){a=new LinkDialog(this,a,b,d,!0,e,k);this.showDialog(a.container,560,130,!0,!0);a.init()};var l=EditorUi.prototype.createOutline;
-EditorUi.prototype.createOutline=function(a){var b=l.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;
-b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,
-(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/a,8/a)};var n=b.init;b.init=function(){n.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*
-b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;f.background=e.background;var g=mxUtils.getCurrentStyle(e.container);f.container.style.backgroundColor=g.backgroundColor;null!=e.view.backgroundPageShape&&null!=f.view.backgroundPageShape&&(f.view.backgroundPageShape.fill=
-e.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,!0);b.outline.view.validate()});return b};EditorUi.prototype.getServiceCount=function(a){var b=1;null==this.drive&&"function"!==typeof window.DriveClient||b++;null==this.dropbox&&"function"!==typeof window.DropboxClient||b++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||b++;null!=this.gitHub&&b++;null!=this.gitLab&&b++;a&&isLocalStorage&&"1"==urlParams.browser&&b++;return b};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();
-this.updateActionStates();var a=this.getCurrentFile(),b=null!=a||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(b);this.menus.get("viewZoom").setEnabled(b);var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();
-this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));a="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.actions.get("undo").setEnabled(this.canUndo()&&a);this.actions.get("redo").setEnabled(this.canRedo()&&
-a);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=
-function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var t=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){t.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),d=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=d&&
-d.isEditable()&&d.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b);this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);
-this.actions.get("createRevision").setEnabled(b);this.actions.get("moveToFolder").setEnabled(null!=d);this.actions.get("makeCopy").setEnabled(null!=d&&!d.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==d||!d.isRestricted()));this.actions.get("publishLink").setEnabled(null!=d&&!d.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=
-this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=d&&d.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=d);this.menus.get("publish").setEnabled(null!=d&&!d.isRestricted());d=this.actions.get("findReplace");d.setEnabled("hidden"!=this.diagramContainer.style.visibility);d.label=mxResources.get("find")+(a.isEnabled()?"/"+mxResources.get("replace"):"")+"...";a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&
-null!=a&&null!=a.shape&&null!=a.shape.stencil)};var q=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,k,l,n,q){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");
-else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,k,l)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),m=Math.floor(g.width*k/c.view.scale),p=Math.floor(g.height*k/c.view.scale);if(f.length<=MAX_REQUEST_SIZE&&m*p<MAX_AREA)if(a.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!a.isExportToCanvas()){var t={globalVars:c.getExportVariables()};q&&(t.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});a.saveRequest(b,d,function(a,
-b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<n?"&dpi="+n:"")+"&bg="+(null!=e?e:"none")+"&w="+m+"&h="+p+"&border="+l+"&xml="+encodeURIComponent(f))})}else"png"==d?a.exportImage(k,null==e||"none"==e,!0,!1,!1,l,!0,!1,null,q,n):a.exportImage(k,!1,!0,!1,!1,l,!0,!1,"jpeg",q);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);
-var a=this.editor.graph,b="";if(null!=this.pages)for(var d=0;d<this.pages.length;d++){var e=a;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(a.getStylesheet()),this.updatePageRoot(this.pages[d]),e.model.setRoot(this.pages[d].root));b+=this.pages[d].getName()+" "+e.getIndexableText()+" "}else b=a.getIndexableText();this.editor.graph.setEnabled(!0);return b};EditorUi.prototype.showRemotelyStoredLibrary=function(a){var b={},c=document.createElement("div");c.style.whiteSpace="nowrap";var d=
-document.createElement("h3");mxUtils.write(d,mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var l={};try{var n=mxSettings.getCustomLibraries();for(a=0;a<n.length;a++){var q=n[a];if("R"==q.substring(0,1)){var t=JSON.parse(decodeURIComponent(q.substring(1)));
-l[t[0]]={id:t[0],title:t[1],downloadUrl:t[2]}}}}catch(z){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML="";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];l[d.id]&&(b[d.id]=d);var f=this.addCheckbox(e,d.title,l[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,f)}},mxUtils.bind(this,
-function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));e.appendChild(b)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==l[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],
-null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(I){this.handleError(I,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in l)b[c]||this.closeLibrary(new RemoteLibrary(this,null,l[c]));0==a&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.container,
+function(a){var b=null,c=!1,d=!1,e=null,m=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,m);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,k=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&
+"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=Graph.decompress(a)))}catch(na){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(ba){g=null}try{if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):
+g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("layout"==g.action){this.executeLayoutList(g.layouts);return}if("prompt"==g.action){this.spinner.stop();var m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):g.ok,function(a){null!=a?l.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*"):l.postMessage(JSON.stringify({event:"prompt-cancel",
+message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==g.action){var p=k(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),p,mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"discard",
+message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();l.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));try{m.init()}catch(ba){l.postMessage(JSON.stringify({event:"draft",error:ba.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();
+var q=1==g.enableRecent,t=1==g.enableSearch,u=1==g.enableCustomTemp,m=new NewDialog(this,!1,g.templatesOnly?!1:null!=g.callback,mxUtils.bind(this,function(b,c,d,e){b=b||this.emptyDiagramXml;null!=g.callback?l.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d,libs:e,builtIn:!0,message:g}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,q?mxUtils.bind(this,function(a){this.remoteInvoke("getRecentDiagrams",
+null,null,a,function(){a(null,"Network Error!")})}):null,t?mxUtils.bind(this,function(a,b){this.remoteInvoke("searchDiagrams",[a],null,b,function(){b(null,"Network Error!")})}):null,mxUtils.bind(this,function(a,b,c){l.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")}),null,null,u?mxUtils.bind(this,function(a){this.remoteInvoke("getCustomTemplates",null,null,a,function(){a({},0)})}):null);this.showDialog(m.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
+m.init();return}if("textContent"==g.action){var v=this.getDiagramTextContent();l.postMessage(JSON.stringify({event:"textContent",data:v,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var A=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==
+g.show||g.show?this.spinner.spin(document.body,A):this.spinner.stop();return}if("export"==g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var I=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var R=this.editor.graph,N=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;
+b.message=g;b.data=a;b.xml=I;l.postMessage(JSON.stringify(b),"*")}),n=mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=Editor.writeGraphModelToPng(a,"tEXt","mxfile",encodeURIComponent(I)));R!=this.editor.graph&&R.container.parentNode.removeChild(R.container);N(a)}),B=g.pageId||(null!=this.pages?g.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(I),c=!1);if(null!=this.pages&&
+this.currentPage.getId()!=B){for(var C=R.getGlobalVariable,R=this.createTemporaryGraph(R.getStylesheet()),F,E=0;E<this.pages.length;E++)if(this.pages[E].getId()==B){F=this.updatePageRoot(this.pages[E]);break}null==F&&(F=this.currentPage);R.getGlobalVariable=function(a){return"page"==a?F.getName():"pagenumber"==a?1:C.apply(this,arguments)};document.body.appendChild(R.container);R.model.setRoot(F.root)}if(null!=g.layerIds){for(var U=R.model,Y=U.getChildCells(U.getRoot()),m={},E=0;E<g.layerIds.length;E++)m[g.layerIds[E]]=
+!0;for(E=0;E<Y.length;E++)U.setVisible(Y[E],m[Y[E].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(a){n(a.toDataURL("image/png"))}),g.width,null,g.background,mxUtils.bind(this,function(){n(null)}),null,null,g.scale,g.transparent,g.shadow,null,R,g.border,null,g.grid,g.keepTheme)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=g.layerIds&&0<g.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:g.layerIds})):
+"")+(null!=g.scale?"&scale="+g.scale:"")+"&base64=1&xml="+encodeURIComponent(I))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?N("data:image/png;base64,"+a.getText()):n(null)}),mxUtils.bind(this,function(){n(null)}))}}else{null!=g.xml&&0<g.xml.length&&(c=!0,this.setFileData(g.xml),c=!1);A=this.createLoadMessage("export");A.message=g;if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var X=this.getXmlFileData();A.xml=
+mxUtils.getXml(X);A.data=this.getFileData(null,null,!0,null,null,null,X);A.format=g.format}else if("html"==g.format)I=this.editor.getGraphXml(),A.data=this.getHtml(I,this.editor.graph),A.xml=mxUtils.getXml(I),A.format=g.format;else{mxSvgCanvas2D.prototype.foAltText=null;var ma=null!=g.background?g.background:this.editor.graph.background;ma==mxConstants.NONE&&(ma=null);A.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);A.format="svg";var pa=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();A.data=Editor.createSvgDataUri(a);l.postMessage(JSON.stringify(A),"*")});if("xmlsvg"==g.format)(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))&&this.getEmbeddedSvg(A.xml,this.editor.graph,null,!0,pa,null,null,g.embedImages,ma,g.scale,g.border,g.shadow,g.keepTheme);else if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){this.editor.graph.setEnabled(!1);
+var Z=this.editor.graph.getSvg(ma,g.scale,g.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||g.shadow,null,g.keepTheme);(this.editor.graph.shadowVisible||g.shadow)&&this.editor.graph.addSvgShadow(Z);this.embedFonts(Z,mxUtils.bind(this,function(a){g.embedImages||null==g.embedImages?this.editor.convertImages(a,mxUtils.bind(this,function(a){pa(mxUtils.getXml(a))})):pa(mxUtils.getXml(a))}))}return}l.postMessage(JSON.stringify(A),"*")}return}if("load"==g.action){d=1==g.autosave;this.hideDialog();
+null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified);null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit);null!=g.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=g.noSaveBtn);null!=g.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=g.noExitBtn);null!=g.title&&null!=this.buttonContainer&&(p=document.createElement("span"),mxUtils.write(p,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop=
+"6px",this.buttonContainer.style.right="1"==urlParams.noLangIcon?"0":"25px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(p),this.embedFilenameSpan=p);try{g.libs&&this.sidebar.showEntries(g.libs)}catch(ba){}g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):null!=g.descriptor?g.descriptor:g.xml}else{if("merge"==
+g.action){var ha=this.getCurrentFile();null!=ha&&(p=k(g.xml),null!=p&&""!=p&&ha.mergeFile(new LocalFile(this,p),function(){l.postMessage(JSON.stringify({event:"merge",message:g}),"*")},function(a){l.postMessage(JSON.stringify({event:"merge",message:g,error:a}),"*")}))}else"remoteInvokeReady"==g.action?this.handleRemoteInvokeReady(l):"remoteInvoke"==g.action?this.handleRemoteInvoke(g,f.origin):"remoteInvokeResponse"==g.action?this.handleRemoteInvokeResponse(g):l.postMessage(JSON.stringify({error:"unknownMessage",
+data:JSON.stringify(g)}),"*");return}}catch(ba){this.handleError(ba)}}var ia=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),fa=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(Q){this.handleError(Q)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");e=ia();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=ia();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;
+(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged",b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",
+b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var k=this.createLoadMessage("load");k.xml=f;l.postMessage(JSON.stringify(k),"*")}});null!=g&&"function"===typeof g.substring&&"data:application/vnd.visio;base64,"==g.substring(0,34)?(k="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){fa(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),
+k)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&fa(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){fa(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):
+null==g||"object"!==typeof g||null==g.format||null==g.data&&null==g.url?(g=k(g),fa(g,f)):this.loadDescriptor(g,mxUtils.bind(this,function(a){fa(ia(),f)}),mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoadingFile"))}))}}));var l=window.opener||window.parent,m="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";l.postMessage(m,"*");if("json"==urlParams.proto){var q=this.editor.graph.openLink;this.editor.graph.openLink=function(a,b,c){q.apply(this,
+arguments);l.postMessage(JSON.stringify({event:"openLink",href:a,target:b,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"0px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");b.className="geBigButton";var d=b;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var e=
+"1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(b,e);b.setAttribute("title",e);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));a.appendChild(b)}}else mxUtils.write(b,mxResources.get("save")),b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&
+(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b),d=b);"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(b,d),b.setAttribute("title",
+d),b.className="geBigButton geBigStandardButton",b.style.marginLeft="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b),d=b);d.style.marginRight="20px";this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,
+mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};EditorUi.prototype.executeLayoutList=function(a,b){for(var c=this.editor.graph,d=c.getSelectionCells(),e=0;e<a.length;e++){var f=new window[a[e].layout](c);if(null!=a[e].config)for(var m in a[e].config)f[m]=
+a[e].config[m];this.executeLayout(function(){f.execute(c.getDefaultParent(),0==d.length?null:d)},e==a.length-1,b)}};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[],e=[],f={};if(0<c.length){var m={},l=null,q=null,u=null,z=null,L=null,M=null,G=null,J=null,H=null,D="",K="auto",I="auto",R=null,N=null,n=40,B=40,C=100,ka=0,E=this.editor.graph;E.getGraphBounds();for(var U=function(){null!=b?b(sa):(E.setSelectionCells(sa),E.scrollCellToVisible(E.getSelectionCell()))},Y=E.getFreeInsertPoint(),
+X=Y.x,ma=Y.y,Y=ma,pa=null,Z="auto",H=null,ha=[],ia=null,fa=null,ba=0;ba<c.length&&"#"==c[ba].charAt(0);){a=c[ba];for(ba++;ba<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[ba].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[ba].substring(1)),ba++;if("#"!=a.charAt(1)){var na=a.indexOf(":");if(0<na){var V=mxUtils.trim(a.substring(1,na)),Q=mxUtils.trim(a.substring(na+1));"label"==V?pa=E.sanitizeHtml(Q):"labelname"==V&&0<Q.length&&"-"!=Q?L=Q:"labels"==V&&0<Q.length&&"-"!=Q?M=JSON.parse(Q):"style"==
+V?q=Q:"parentstyle"==V?G=Q:"stylename"==V&&0<Q.length&&"-"!=Q?z=Q:"styles"==V&&0<Q.length&&"-"!=Q?u=JSON.parse(Q):"vars"==V&&0<Q.length&&"-"!=Q?l=JSON.parse(Q):"identity"==V&&0<Q.length&&"-"!=Q?J=Q:"parent"==V&&0<Q.length&&"-"!=Q?H=Q:"namespace"==V&&0<Q.length&&"-"!=Q?D=Q:"width"==V?K=Q:"height"==V?I=Q:"left"==V&&0<Q.length?R=Q:"top"==V&&0<Q.length?N=Q:"ignore"==V?fa=Q.split(","):"connect"==V?ha.push(JSON.parse(Q)):"link"==V?ia=Q:"padding"==V?ka=parseFloat(Q):"edgespacing"==V?n=parseFloat(Q):"nodespacing"==
+V?B=parseFloat(Q):"levelspacing"==V?C=parseFloat(Q):"layout"==V&&(Z=Q)}}}if(null==c[ba])throw Error(mxResources.get("invalidOrMissingFile"));for(var oa=this.editor.csvToArray(c[ba]),V=na=null,Q=[],T=0;T<oa.length;T++)J==oa[T]&&(na=T),H==oa[T]&&(V=T),Q.push(mxUtils.trim(oa[T]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==pa&&(pa="%"+Q[0]+"%");if(null!=ha)for(var ca=0;ca<ha.length;ca++)null==m[ha[ca].to]&&(m[ha[ca].to]={});J=[];for(T=ba+1;T<c.length;T++){var ja=this.editor.csvToArray(c[T]);
+if(null==ja){var ra=40<c[T].length?c[T].substring(0,40)+"...":c[T];throw Error(ra+" ("+T+"):\n"+mxResources.get("containsValidationErrors"));}0<ja.length&&J.push(ja)}E.model.beginUpdate();try{for(T=0;T<J.length;T++){var ja=J[T],O=null,ga=null!=na?D+ja[na]:null;null!=ga&&(O=E.model.getCell(ga));var c=null!=O,ea=new mxCell(pa,new mxGeometry(X,Y,0,0),q||"whiteSpace=wrap;html=1;");ea.vertex=!0;ea.id=ga;for(var S=0;S<ja.length;S++)E.setAttributeForCell(ea,Q[S],ja[S]);if(null!=L&&null!=M){var ya=M[ea.getAttribute(L)];
+null!=ya&&E.labelChanged(ea,ya)}if(null!=z&&null!=u){var P=u[ea.getAttribute(z)];null!=P&&(ea.style=P)}E.setAttributeForCell(ea,"placeholders","1");ea.style=E.replacePlaceholders(ea,ea.style,l);c&&(E.model.setGeometry(O,ea.geometry),E.model.setStyle(O,ea.style),0>mxUtils.indexOf(e,O)&&e.push(O));O=ea;if(!c)for(ca=0;ca<ha.length;ca++)m[ha[ca].to][O.getAttribute(ha[ca].to)]=O;null!=ia&&"link"!=ia&&(E.setLinkForCell(O,O.getAttribute(ia)),E.setAttributeForCell(O,ia,null));E.fireEvent(new mxEventObject("cellsInserted",
+"cells",[O]));var aa=this.editor.graph.getPreferredSizeForCell(O);O.vertex&&(null!=R&&null!=O.getAttribute(R)&&(O.geometry.x=X+parseFloat(O.getAttribute(R))),null!=N&&null!=O.getAttribute(N)&&(O.geometry.y=ma+parseFloat(O.getAttribute(N))),"@"==K.charAt(0)&&null!=O.getAttribute(K.substring(1))?O.geometry.width=parseFloat(O.getAttribute(K.substring(1))):O.geometry.width="auto"==K?aa.width+ka:parseFloat(K),"@"==I.charAt(0)&&null!=O.getAttribute(I.substring(1))?O.geometry.height=parseFloat(O.getAttribute(I.substring(1))):
+O.geometry.height="auto"==I?aa.height+ka:parseFloat(I),Y+=O.geometry.height+B);c?(null==f[ga]&&(f[ga]=[]),f[ga].push(O)):(H=null!=V?E.model.getCell(D+ja[V]):null,d.push(O),null!=H?(H.style=E.replacePlaceholders(H,G,l),E.addCell(O,H)):e.push(E.addCell(O)))}for(var qa=e.slice(),sa=e.slice(),ca=0;ca<ha.length;ca++)for(var ta=ha[ca],T=0;T<d.length;T++){var O=d[T],Fa=mxUtils.bind(this,function(a,b,c){var d=b.getAttribute(c.from);if(null!=d&&(E.setAttributeForCell(b,c.from,null),""!=d))for(var d=d.split(","),
+e=0;e<d.length;e++){var f=m[c.to][d[e]];if(null!=f){var g=c.label;null!=c.fromlabel&&(g=(b.getAttribute(c.fromlabel)||"")+(g||""));null!=c.sourcelabel&&(g=E.replacePlaceholders(b,c.sourcelabel,l)+(g||""));null!=c.tolabel&&(g=(g||"")+(f.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(g=(g||"")+E.replacePlaceholders(f,c.targetlabel,l));var k="target"==c.placeholders==!c.invert?f:a,k=null!=c.style?E.replacePlaceholders(k,c.style,l):E.createCurrentEdgeStyle(),g=E.insertEdge(null,null,g||"",c.invert?
+f:a,c.invert?a:f,k);if(null!=c.labels)for(k=0;k<c.labels.length;k++){var n=c.labels[k],p=new mxCell(n.label||k,new mxGeometry(null!=n.x?n.x:0,null!=n.y?n.y:0,0,0),"resizable=0;html=1;");p.vertex=!0;p.connectable=!1;p.geometry.relative=!0;null!=n.placeholders&&(p.value=E.replacePlaceholders("target"==n.placeholders==!c.invert?f:a,p.value,l));if(null!=n.dx||null!=n.dy)p.geometry.offset=new mxPoint(null!=n.dx?n.dx:0,null!=n.dy?n.dy:0);g.insert(p)}sa.push(g);mxUtils.remove(c.invert?a:f,qa)}}});Fa(O,O,
+ta);if(null!=f[O.id])for(S=0;S<f[O.id].length;S++)Fa(O,f[O.id][S],ta)}if(null!=fa)for(T=0;T<d.length;T++)for(O=d[T],S=0;S<fa.length;S++)E.setAttributeForCell(O,mxUtils.trim(fa[S]),null);if(0<e.length){var Da=new mxParallelEdgeLayout(E);Da.spacing=n;Da.checkOverlap=!0;var Ga=function(){0<Da.spacing&&Da.execute(E.getDefaultParent());for(var a=0;a<e.length;a++){var b=E.getCellGeometry(e[a]);b.x=Math.round(E.snap(b.x));b.y=Math.round(E.snap(b.y));"auto"==K&&(b.width=Math.round(E.snap(b.width)));"auto"==
+I&&(b.height=Math.round(E.snap(b.height)))}};if("["==Z.charAt(0)){var Ja=U;E.view.validate();this.executeLayoutList(JSON.parse(Z),function(){Ga();Ja()});U=null}else if("circle"==Z){var xa=new mxCircleLayout(E);xa.disableEdgeStyle=!1;xa.resetEdges=!1;var Ia=xa.isVertexIgnored;xa.isVertexIgnored=function(a){return Ia.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){xa.execute(E.getDefaultParent());Ga()},!0,U);U=null}else if("horizontaltree"==Z||"verticaltree"==Z||"auto"==
+Z&&sa.length==2*e.length-1&&1==qa.length){E.view.validate();var za=new mxCompactTreeLayout(E,"horizontaltree"==Z);za.levelDistance=B;za.edgeRouting=!1;za.resetEdges=!1;this.executeLayout(function(){za.execute(E.getDefaultParent(),0<qa.length?qa[0]:null)},!0,U);U=null}else if("horizontalflow"==Z||"verticalflow"==Z||"auto"==Z&&1==qa.length){E.view.validate();var ua=new mxHierarchicalLayout(E,"horizontalflow"==Z?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ua.intraCellSpacing=B;ua.parallelEdgeSpacing=
+n;ua.interRankCellSpacing=C;ua.disableEdgeStyle=!1;this.executeLayout(function(){ua.execute(E.getDefaultParent(),sa);E.moveCells(sa,X,ma)},!0,U);U=null}else if("organic"==Z||"auto"==Z&&sa.length>e.length){E.view.validate();var wa=new mxFastOrganicLayout(E);wa.forceConstant=3*B;wa.disableEdgeStyle=!1;wa.resetEdges=!1;var W=wa.isVertexIgnored;wa.isVertexIgnored=function(a){return W.apply(this,arguments)||0>mxUtils.indexOf(e,a)};this.executeLayout(function(){wa.execute(E.getDefaultParent());Ga()},!0,
+U);U=null}}this.hideDialog()}finally{E.model.endUpdate()}null!=U&&U()}}catch(Aa){this.handleError(Aa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==
+urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d,e,m){a=new LinkDialog(this,a,b,d,!0,e,m);this.showDialog(a.container,560,130,!0,!0);a.init()};var m=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=
+m.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
+null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-
+2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/a,8/a)};var l=b.init;b.init=function(){l.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
+this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;f.background=e.background;var g=mxUtils.getCurrentStyle(e.container);f.container.style.backgroundColor=g.backgroundColor;null!=e.view.backgroundPageShape&&null!=f.view.backgroundPageShape&&(f.view.backgroundPageShape.fill=e.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,
+!0);b.outline.view.validate()});return b};EditorUi.prototype.getServiceCount=function(a){var b=1;null==this.drive&&"function"!==typeof window.DriveClient||b++;null==this.dropbox&&"function"!==typeof window.DropboxClient||b++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||b++;null!=this.gitHub&&b++;null!=this.gitLab&&b++;a&&isLocalStorage&&"1"==urlParams.browser&&b++;return b};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var a=this.getCurrentFile(),
+b=null!=a||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(b);this.menus.get("viewZoom").setEnabled(b);var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&
+(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));a="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.actions.get("undo").setEnabled(this.canUndo()&&a);this.actions.get("redo").setEnabled(this.canRedo()&&a);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);
+this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=
+function(){var a=this.getCurrentFile();return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var u=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){u.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),d=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=d&&d.isEditable()&&d.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);
+this.actions.get("shadowVisible").setEnabled(b);this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);this.actions.get("createRevision").setEnabled(b);this.actions.get("moveToFolder").setEnabled(null!=
+d);this.actions.get("makeCopy").setEnabled(null!=d&&!d.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==d||!d.isRestricted()));this.actions.get("publishLink").setEnabled(null!=d&&!d.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=
+d&&d.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=d);this.menus.get("publish").setEnabled(null!=d&&!d.isRestricted());d=this.actions.get("findReplace");d.setEnabled("hidden"!=this.diagramContainer.style.visibility);d.label=mxResources.get("find")+(a.isEnabled()?"/"+mxResources.get("replace"):"")+"...";a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var q=EditorUi.prototype.destroy;
+EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);q.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,m,l,q,u){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,
+m,l)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),k=Math.floor(g.width*m/c.view.scale),p=Math.floor(g.height*m/c.view.scale);if(f.length<=MAX_REQUEST_SIZE&&k*p<MAX_AREA)if(a.hideDialog(),"png"!=d&&"jpg"!=d&&"jpeg"!=d||!a.isExportToCanvas()){var t={globalVars:c.getExportVariables()};u&&(t.grid={size:c.gridSize,steps:c.view.gridSteps,color:c.view.gridColor});a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+
+(null!=a?"&filename="+encodeURIComponent(a):"")+"&extras="+encodeURIComponent(JSON.stringify(t))+(0<q?"&dpi="+q:"")+"&bg="+(null!=e?e:"none")+"&w="+k+"&h="+p+"&border="+l+"&xml="+encodeURIComponent(f))})}else"png"==d?a.exportImage(m,null==e||"none"==e,!0,!1,!1,l,!0,!1,null,u,q):a.exportImage(m,!1,!0,!1,!1,l,!0,!1,"jpeg",u);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var a=this.editor.graph,b="";if(null!=
+this.pages)for(var d=0;d<this.pages.length;d++){var e=a;this.currentPage!=this.pages[d]&&(e=this.createTemporaryGraph(a.getStylesheet()),this.updatePageRoot(this.pages[d]),e.model.setRoot(this.pages[d].root));b+=this.pages[d].getName()+" "+e.getIndexableText()+" "}else b=a.getIndexableText();this.editor.graph.setEnabled(!0);return b};EditorUi.prototype.showRemotelyStoredLibrary=function(a){var b={},c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,
+mxUtils.htmlEntities(a));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(d);var e=document.createElement("div");e.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";e.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var m={};try{var l=mxSettings.getCustomLibraries();for(a=0;a<l.length;a++){var q=l[a];if("R"==q.substring(0,1)){var u=JSON.parse(decodeURIComponent(q.substring(1)));m[u[0]]=
+{id:u[0],title:u[1],downloadUrl:u[2]}}}}catch(y){}this.remoteInvoke("getCustomLibraries",null,null,function(a){e.innerHTML="";if(0==a.length)e.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var c=0;c<a.length;c++){var d=a[c];m[d.id]&&(b[d.id]=d);var f=this.addCheckbox(e,d.title,m[d.id]);(function(a,c){mxEvent.addListener(c,"change",function(){this.checked?b[a.id]=a:delete b[a.id]})})(d,f)}},mxUtils.bind(this,
+function(a){e.innerHTML="";var b=document.createElement("div");b.style.padding="8px";b.style.textAlign="center";mxUtils.write(b,mxResources.get("error")+": ");mxUtils.write(b,null!=a&&null!=a.message?a.message:mxResources.get("unknownError"));e.appendChild(b)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var a=0,c;for(c in b)null==m[c]&&(a++,mxUtils.bind(this,function(b){this.remoteInvoke("getFileContent",[b.downloadUrl],
+null,mxUtils.bind(this,function(c){a--;0==a&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,c,b))}catch(G){this.handleError(G,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){a--;0==a&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(b[c]));for(c in m)b[c]||this.closeLibrary(new RemoteLibrary(this,null,m[c]));0==a&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(c.container,
340,375,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(a){this.remoteWin=a;for(var b=0;b<this.remoteInvokeQueue.length;b++)a.postMessage(this.remoteInvokeQueue[b],
-"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(a){var b=a.msgMarkers,c=this.remoteInvokeCallbacks[b.callbackId];if(null==c)throw Error("No callback for "+(null!=b?b.callbackId:"null"));a.error?c.error&&c.error(a.error.errResp):c.callback&&c.callback.apply(this,a.resp);this.remoteInvokeCallbacks[b.callbackId]=null};EditorUi.prototype.remoteInvoke=function(a,b,d,e,k){var c=!0,f=window.setTimeout(mxUtils.bind(this,function(){c=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
-this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(f);c&&e.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(f);c&&k.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:m});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
-b){var c=mxUtils.bind(this,function(b,c){var d={event:"remoteInvokeResponse",msgMarkers:a.msgMarkers};null!=c?d.error={errResp:c}:null!=b&&(d.resp=b);this.remoteWin.postMessage(JSON.stringify(d),"*")});try{var d=a.funtionName,e=this.remoteInvokableFns[d];if(null!=e&&"function"===typeof this[d]){if(e.allowedDomains){for(var f=!1,l=0;l<e.allowedDomains.length;l++)if(b=="https://"+e.allowedDomains[l]){f=!0;break}if(!f){c(null,"Invalid Call: "+d+" is not allowed.");return}}var n=a.functionArgs;Array.isArray(n)||
-(n=[]);if(e.isAsync)n.push(function(){c(Array.prototype.slice.apply(arguments))}),n.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,n);else{var q=this[d].apply(this,n);c([q])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(z){c(null,"Invalid Call: An error occured, "+z.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
-function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=b&&b(u)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
+"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(a){var b=a.msgMarkers,c=this.remoteInvokeCallbacks[b.callbackId];if(null==c)throw Error("No callback for "+(null!=b?b.callbackId:"null"));a.error?c.error&&c.error(a.error.errResp):c.callback&&c.callback.apply(this,a.resp);this.remoteInvokeCallbacks[b.callbackId]=null};EditorUi.prototype.remoteInvoke=function(a,b,d,e,m){var c=!0,f=window.setTimeout(mxUtils.bind(this,function(){c=!1;m({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
+this.timeout),g=mxUtils.bind(this,function(){window.clearTimeout(f);c&&e.apply(this,arguments)}),k=mxUtils.bind(this,function(){window.clearTimeout(f);c&&m.apply(this,arguments)});d=d||{};d.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:g,error:k});a=JSON.stringify({event:"remoteInvoke",funtionName:a,functionArgs:b,msgMarkers:d});null!=this.remoteWin?this.remoteWin.postMessage(a,"*"):this.remoteInvokeQueue.push(a)};EditorUi.prototype.handleRemoteInvoke=function(a,
+b){var c=mxUtils.bind(this,function(b,c){var d={event:"remoteInvokeResponse",msgMarkers:a.msgMarkers};null!=c?d.error={errResp:c}:null!=b&&(d.resp=b);this.remoteWin.postMessage(JSON.stringify(d),"*")});try{var d=a.funtionName,e=this.remoteInvokableFns[d];if(null!=e&&"function"===typeof this[d]){if(e.allowedDomains){for(var f=!1,m=0;m<e.allowedDomains.length;m++)if(b=="https://"+e.allowedDomains[m]){f=!0;break}if(!f){c(null,"Invalid Call: "+d+" is not allowed.");return}}var l=a.functionArgs;Array.isArray(l)||
+(l=[]);if(e.isAsync)l.push(function(){c(Array.prototype.slice.apply(arguments))}),l.push(function(a){c(null,a||"Unkown Error")}),this[d].apply(this,l);else{var q=this[d].apply(this,l);c([q])}}else c(null,"Invalid Call: "+d+" is not found.")}catch(y){c(null,"Invalid Call: An error occured, "+y.message)}};EditorUi.prototype.openDatabase=function(a,b){if(null==this.database){var c=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=c)try{var d=c.open("database",2);d.onupgradeneeded=
+function(a){try{var c=d.result;1>a.oldVersion&&c.createObjectStore("objects",{keyPath:"key"});2>a.oldVersion&&(c.createObjectStore("files",{keyPath:"title"}),c.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(v){null!=b&&b(v)}};d.onsuccess=mxUtils.bind(this,function(b){var c=d.result;this.database=c;EditorUi.migrateStorageFiles&&(StorageFile.migrate(c),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(a){if(!a||"1"==urlParams.forceMigration){var b=document.createElement("iframe");b.style.display="none";b.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(b);var c=!0,d=!1,e,f=0,g=mxUtils.bind(this,function(){d=!0;this.setDatabaseItem(".drawioMigrated3",!0);b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
-funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;m()}),m=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(J){console.log(J)}}),l=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
-size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(J){console.log(J)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(H){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
-(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,m()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?l(f.resp[0]):k())}}catch(H){console.log(H)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(k){null!=b&&b(k)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,d,e,k){this.openDatabase(mxUtils.bind(this,function(c){try{k=k||"objects";Array.isArray(k)||(k=
-[k],a=[a],b=[b]);var f=c.transaction(k,"readwrite");f.oncomplete=d;f.onerror=e;for(c=0;c<k.length;c++)f.objectStore(k[c]).put(null!=a&&null!=a[c]?{key:a[c],data:b[c]}:b[c])}catch(A){null!=e&&e(A)}}),e)};EditorUi.prototype.removeDatabaseItem=function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){e=e||"objects";Array.isArray(e)||(e=[e],a=[a]);c=c.transaction(e,"readwrite");c.oncomplete=b;c.onerror=d;for(var f=0;f<e.length;f++)c.objectStore(e[f])["delete"](a[f])}),d)};EditorUi.prototype.getDatabaseItem=
-function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){try{e=e||"objects";var f=c.transaction([e],"readonly").objectStore(e).get(a);f.onsuccess=function(){b(f.result)};f.onerror=d}catch(u){null!=d&&d(u)}}),d)};EditorUi.prototype.getDatabaseItems=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
-b.target.result["continue"]())};e.onerror=b}catch(u){null!=b&&b(u)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(p){null!=b&&b(p)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
+funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){f++;m()}),m=mxUtils.bind(this,function(){try{if(f>=e.length)g();else{var a=e[f];StorageFile.getFileContent(this,a,mxUtils.bind(this,function(c){null==c||".scratchpad"==a&&c==this.emptyLibraryXml?b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[a]}),"*"):k()}),k)}}catch(K){console.log(K)}}),l=mxUtils.bind(this,function(a){try{this.setDatabaseItem(null,[{title:a.title,
+size:a.data.length,lastModified:Date.now(),type:a.isLib?"L":"F"},{title:a.title,data:a.data}],k,k,["filesInfo","files"])}catch(K){console.log(K)}});a=mxUtils.bind(this,function(a){try{if(a.source==b.contentWindow){var f={};try{f=JSON.parse(a.data)}catch(I){}"init"==f.event?(b.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),b.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=f.event||d||
+(c?null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?(e=f.resp[0],c=!1,m()):g():null!=f.resp&&0<f.resp.length&&null!=f.resp[0]?l(f.resp[0]):k())}}catch(I){console.log(I)}});window.addEventListener("message",a)}})));a(c);c.onversionchange=function(){c.close()}});d.onerror=b;d.onblocked=function(){}}catch(p){null!=b&&b(p)}else null!=b&&b()}else a(this.database)};EditorUi.prototype.setDatabaseItem=function(a,b,d,e,m){this.openDatabase(mxUtils.bind(this,function(c){try{m=m||"objects";Array.isArray(m)||(m=
+[m],a=[a],b=[b]);var f=c.transaction(m,"readwrite");f.oncomplete=d;f.onerror=e;for(c=0;c<m.length;c++)f.objectStore(m[c]).put(null!=a&&null!=a[c]?{key:a[c],data:b[c]}:b[c])}catch(A){null!=e&&e(A)}}),e)};EditorUi.prototype.removeDatabaseItem=function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){e=e||"objects";Array.isArray(e)||(e=[e],a=[a]);c=c.transaction(e,"readwrite");c.oncomplete=b;c.onerror=d;for(var f=0;f<e.length;f++)c.objectStore(e[f])["delete"](a[f])}),d)};EditorUi.prototype.getDatabaseItem=
+function(a,b,d,e){this.openDatabase(mxUtils.bind(this,function(c){try{e=e||"objects";var f=c.transaction([e],"readonly").objectStore(e).get(a);f.onsuccess=function(){b(f.result)};f.onerror=d}catch(v){null!=d&&d(v)}}),d)};EditorUi.prototype.getDatabaseItems=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).openCursor(IDBKeyRange.lowerBound(0)),f=[];e.onsuccess=function(b){null==b.target.result?a(f):(f.push(b.target.result.value),
+b.target.result["continue"]())};e.onerror=b}catch(v){null!=b&&b(v)}}),b)};EditorUi.prototype.getDatabaseItemKeys=function(a,b,d){this.openDatabase(mxUtils.bind(this,function(c){try{d=d||"objects";var e=c.transaction([d],"readonly").objectStore(d).getAllKeys();e.onsuccess=function(){a(e.result)};e.onerror=b}catch(t){null!=b&&b(t)}}),b)};EditorUi.prototype.commentsSupported=function(){var a=this.getCurrentFile();return null!=a?a.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var a=
this.getCurrentFile();return null!=a?a.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var a=this.getCurrentFile();return null!=a?a.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(a,b){var c=this.getCurrentFile();null!=c?c.getComments(a,b):a([])};EditorUi.prototype.addComment=function(a,b,d){var c=this.getCurrentFile();null!=c?c.addComment(a,b,d):b(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var a=this.getCurrentFile();return null!=a?
a.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var a=this.getCurrentFile();return null!=a?a.canComment():!0};EditorUi.prototype.newComment=function(a,b){var c=this.getCurrentFile();return null!=c?c.newComment(a,b):new DrawioComment(this,null,a,Date.now(),Date.now(),!1,b)};EditorUi.prototype.isRevisionHistorySupported=function(){var a=this.getCurrentFile();return null!=a&&a.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(a,b){var c=this.getCurrentFile();null!=
-c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(a,b,d,e,k,l,n,q){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
-return this.editor.loadUrl(a,b,d,e,k,l,n,q)};EditorUi.prototype.loadFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(a)};EditorUi.prototype.createSvgDataUri=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(a)};EditorUi.prototype.embedCssFonts=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(a,b)};EditorUi.prototype.embedExtFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
-return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,d,e,k,l,n,q,t,z,y,M,L,I,G,K){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,d,e,k,l,n,q,t,z,y,M,L,I,G,K)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
+c&&c.getRevisions?c.getRevisions(a,b):b({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var a=this.getCurrentFile();return null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(a){a.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(a,b,d,e,m,l,q,u){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
+return this.editor.loadUrl(a,b,d,e,m,l,q,u)};EditorUi.prototype.loadFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(a)};EditorUi.prototype.createSvgDataUri=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(a)};EditorUi.prototype.embedCssFonts=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(a,b)};EditorUi.prototype.embedExtFonts=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
+return this.editor.embedExtFonts(a)};EditorUi.prototype.exportToCanvas=function(a,b,d,e,m,l,q,u,F,y,z,L,M,G,J,H){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(a,b,d,e,m,l,q,u,F,y,z,L,M,G,J,H)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
return this.editor.convertImages(a,b,d,e)};EditorUi.prototype.convertImageToDataUri=function(a,b){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(a,b)};EditorUi.prototype.base64Encode=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(a)};EditorUi.prototype.updateCRC=function(a,b,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(a,b,d,e)};EditorUi.prototype.crc32=function(a){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
-return Editor.crc32(a)};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(a,b,d,e,k)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var a=[],b=0;b<localStorage.length;b++){var d=localStorage.key(b),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var k=
-"<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(k||e)&&a.push(d)}}return a};EditorUi.prototype.getLocalStorageFile=function(a){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var b=localStorage.getItem(a);return{title:a,data:b,isLib:"<mxlibrary>"===b.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
-var CommentsWindow=function(a,b,e,d,n,l){function t(){for(var a=y.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==y&&b++;M.style.display=0==b?"block":"none"}function q(a,b,c,d){function e(){b.removeChild(k);b.removeChild(m);g.style.display="block";f.style.display="block"}A={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),k=document.createElement("textarea");k.className=
-"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var m=document.createElement("div");m.className="geCommentEditBtns";var l=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),t()):e();A=null});l.className="geCommentEditBtn";m.appendChild(l);var n=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);A=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
-function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(n.click(),mxEvent.consume(a)):27==a.keyCode&&(l.click(),mxEvent.consume(a)))}));n.focus();n.className="geCommentEditBtn gePrimaryBtn";m.appendChild(n);b.insertBefore(m,f);g.style.display="none";f.style.display="none";k.focus()}function c(b,c){c.innerHTML="";var d=new Date(b.modifiedDate),e=a.timeSince(d);null==e&&(e=mxResources.get("lessThanAMinute"));mxUtils.write(c,mxResources.get("timeAgo",
-[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function f(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function g(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function m(a){a.style.border="";a.removeChild(a.busyImg)}function k(b,d,e,l,n){function x(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
-"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});I.appendChild(e);d&&(e.style.display="none")}function E(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=B;a(b);return{pdiv:d,replies:c}}function z(c,d,e,n,p){function t(){f(z);b.addReply(u,function(a){u.id=a;b.replies.push(u);m(z);e&&e()},function(b){y();g(z);a.handleError(b,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,p)}function y(){q(u,z,function(a){t()},!0)}var x=E().pdiv,u=a.newComment(c,a.getCurrentUser());u.pCommentId=b.id;null==b.replies&&(b.replies=[]);var z=k(u,b.replies,x,l+1);d?y():t()}if(n||!b.isResolved){M.style.display="none";var B=document.createElement("div");B.className="geCommentContainer";B.setAttribute("data-commentId",b.id);B.style.marginLeft=20*l+5+"px";b.isResolved&&!Editor.isDarkMode()&&(B.style.backgroundColor="ghostWhite");
-var Q=document.createElement("div");Q.className="geCommentHeader";var H=document.createElement("img");H.className="geCommentUserImg";H.src=b.user.pictureUrl||Editor.userImage;Q.appendChild(H);H=document.createElement("div");H.className="geCommentHeaderTxt";Q.appendChild(H);var J=document.createElement("div");J.className="geCommentUsername";mxUtils.write(J,b.user.displayName||"");H.appendChild(J);J=document.createElement("div");J.className="geCommentDate";J.setAttribute("data-commentId",b.id);c(b,
-J);H.appendChild(J);B.appendChild(Q);Q=document.createElement("div");Q.className="geCommentTxt";mxUtils.write(Q,b.content||"");B.appendChild(Q);b.isLocked&&(B.style.opacity="0.5");Q=document.createElement("div");Q.className="geCommentActions";var I=document.createElement("ul");I.className="geCommentActionsList";Q.appendChild(I);p||b.isLocked||0!=l&&!u||x(mxResources.get("reply"),function(){z("",!0)},b.isResolved);H=a.getCurrentUser();null==H||H.id!=b.user.id||p||b.isLocked||(x(mxResources.get("edit"),
-function(){function c(){q(b,B,function(){f(B);b.editComment(b.content,function(){m(B)},function(b){g(B);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}c()},b.isResolved),x(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){f(B);b.deleteComment(function(a){if(!0===a){a=B.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=B.querySelectorAll(".geCommentAction");for(a=
-0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);m(B);B.style.opacity="0.5"}else{c=E(b).replies;for(a=0;a<c.length;a++)y.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}M.style.display=0==y.getElementsByTagName("div").length?"block":"none"}},function(b){g(B);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));p||b.isLocked||0!=l||x(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
-a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=E(b).replies,f=Editor.isDarkMode()?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var k=e[g].querySelectorAll(".geCommentAction"),m=0;m<k.length;m++)k[m]!=c.parentNode&&(k[m].style.display=d);G||(e[g].style.display="none")}t()}b.isResolved?z(mxResources.get("reOpened")+": ",!0,
-c,!1,!0):z(mxResources.get("markedAsResolved"),!1,c,!0)});B.appendChild(Q);null!=e?y.insertBefore(B,e.nextSibling):y.appendChild(B);for(e=0;null!=b.replies&&e<b.replies.length;e++)Q=b.replies[e],Q.isResolved=b.isResolved,k(Q,b.replies,null,l+1,n);null!=A&&(A.comment.id==b.id?(n=b.content,b.content=A.comment.content,q(b,B,A.saveCallback,A.deleteOnCancel),b.content=n):null==A.comment.id&&A.comment.pCommentId==b.id&&(y.appendChild(A.div),q(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return B}}
-var p=!a.canComment(),u=a.canReplyToReplies(),A=null,F=document.createElement("div");F.className="geCommentsWin";F.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;var z=EditorUi.compactUi?"26px":"30px",y=document.createElement("div");y.className="geCommentsList";y.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;y.style.bottom=parseInt(z)+7+"px";F.appendChild(y);var M=document.createElement("span");M.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(M,mxResources.get("noCommentsFound"));var L=document.createElement("div");L.className="geToolbarContainer geCommentsToolbar";L.style.height=z;L.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";L.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;z=document.createElement("a");z.className="geButton";if(!p){var I=z.cloneNode();I.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';I.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(I,"click",function(b){function c(){q(d,e,function(b){f(e);a.addComment(b,function(a){b.id=a;K.push(b);m(e)},function(b){g(e);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var d=a.newComment("",a.getCurrentUser()),e=k(d,K,null,0);c();b.preventDefault();mxEvent.consume(b)});L.appendChild(I)}I=z.cloneNode();I.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';I.setAttribute("title",mxResources.get("showResolved"));
-var G=!1;Editor.isDarkMode()&&(I.style.filter="invert(100%)");mxEvent.addListener(I,"click",function(a){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";E();a.preventDefault();mxEvent.consume(a)});L.appendChild(I);a.commentsRefreshNeeded()&&(I=z.cloneNode(),I.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',I.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(I.style.filter="invert(100%)"),mxEvent.addListener(I,"click",function(a){E();
-a.preventDefault();mxEvent.consume(a)}),L.appendChild(I));a.commentsSaveNeeded()&&(z=z.cloneNode(),z.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',z.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(z.style.filter="invert(100%)"),mxEvent.addListener(z,"click",function(a){l();a.preventDefault();mxEvent.consume(a)}),L.appendChild(z));F.appendChild(L);var K=[],E=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
-var b=A.div.querySelector(".geCommentEditTxtArea"),c=A.div.querySelector(".geCommentEditBtns");A.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(Q){a.handleError(Q)}y.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";u=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-
-new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});y.innerHTML="";y.appendChild(M);M.style.display="block";K=a;for(a=0;a<K.length;a++)b(K[a].replies),k(K[a],K,null,0,G);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(y.appendChild(A.div),q(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){y.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
-": "+a.message:""));this.hasError=!0})):y.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});E();this.refreshComments=E;L=mxUtils.bind(this,function(){function a(b){var e=d[b.id];if(null!=e)for(c(b,e),e=0;null!=b.replies&&e<b.replies.length;e++)a(b.replies[e])}if(this.window.isVisible()){for(var b=y.querySelectorAll(".geCommentDate"),d={},e=0;e<b.length;e++){var f=b[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<K.length;e++)a(K[e])}});setInterval(L,6E4);this.refreshCommentsTime=L;this.window=
-new mxWindow(mxResources.get("comments"),F,b,e,d,n,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||
-document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var J=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",J);this.destroy=function(){mxEvent.removeListener(window,"resize",J);this.window.destroy()}},ConfirmDialog=function(a,b,e,
-d,n,l,t,q,c,f,g){var m=document.createElement("div");m.style.textAlign="center";g=null!=g?g:44;var k=document.createElement("div");k.style.padding="6px";k.style.overflow="auto";k.style.maxHeight=g+"px";k.style.lineHeight="1.2em";mxUtils.write(k,b);m.appendChild(k);null!=f&&(k=document.createElement("div"),k.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",f),k.appendChild(b),m.appendChild(k));f=document.createElement("div");f.style.textAlign="center";f.style.whiteSpace=
-"nowrap";var p=document.createElement("input");p.setAttribute("type","checkbox");l=mxUtils.button(l||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(p.checked)});l.className="geBtn";null!=q&&(l.innerHTML=q+"<br>"+l.innerHTML,l.style.paddingBottom="8px",l.style.paddingTop="8px",l.style.height="auto",l.style.width="40%");a.editor.cancelFirst&&f.appendChild(l);var u=mxUtils.button(n||mxResources.get("ok"),function(){a.hideDialog();null!=e&&e(p.checked)});f.appendChild(u);null!=t?(u.innerHTML=
-t+"<br>"+u.innerHTML+"<br>",u.style.paddingBottom="8px",u.style.paddingTop="8px",u.style.height="auto",u.className="geBtn",u.style.width="40%"):u.className="geBtn gePrimaryBtn";a.editor.cancelFirst||f.appendChild(l);m.appendChild(f);c?(f.style.marginTop="10px",k=document.createElement("p"),k.style.marginTop="20px",k.style.marginBottom="0px",k.appendChild(p),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),k.appendChild(n),m.appendChild(k),mxEvent.addListener(n,
-"click",function(a){p.checked=!p.checked;mxEvent.consume(a)})):f.style.marginTop="12px";this.init=function(){u.focus()};this.container=m};function DiagramPage(a,b){this.node=a;null!=b?this.node.setAttribute("id",b):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
+return Editor.crc32(a)};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,m){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(a,b,d,e,m)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var a=[],b=0;b<localStorage.length;b++){var d=localStorage.key(b),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var m=
+"<mxfile "===e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(m||e)&&a.push(d)}}return a};EditorUi.prototype.getLocalStorageFile=function(a){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var b=localStorage.getItem(a);return{title:a,data:b,isLib:"<mxlibrary>"===b.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
+var CommentsWindow=function(a,b,e,d,l,m){function u(){for(var a=z.getElementsByTagName("div"),b=0,c=0;c<a.length;c++)"none"!=a[c].style.display&&a[c].parentNode==z&&b++;L.style.display=0==b?"block":"none"}function q(a,b,c,d){function e(){b.removeChild(k);b.removeChild(m);g.style.display="block";f.style.display="block"}A={div:b,comment:a,saveCallback:c,deleteOnCancel:d};var f=b.querySelector(".geCommentTxt"),g=b.querySelector(".geCommentActionsList"),k=document.createElement("textarea");k.className=
+"geCommentEditTxtArea";k.style.minHeight=f.offsetHeight+"px";k.value=a.content;b.insertBefore(k,f);var m=document.createElement("div");m.className="geCommentEditBtns";var n=mxUtils.button(mxResources.get("cancel"),function(){d?(b.parentNode.removeChild(b),u()):e();A=null});n.className="geCommentEditBtn";m.appendChild(n);var l=mxUtils.button(mxResources.get("save"),function(){f.innerHTML="";a.content=k.value;mxUtils.write(f,a.content);e();c(a);A=null});mxEvent.addListener(k,"keydown",mxUtils.bind(this,
+function(a){mxEvent.isConsumed(a)||((mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a))&&13==a.keyCode?(l.click(),mxEvent.consume(a)):27==a.keyCode&&(n.click(),mxEvent.consume(a)))}));l.focus();l.className="geCommentEditBtn gePrimaryBtn";m.appendChild(l);b.insertBefore(m,f);g.style.display="none";f.style.display="none";k.focus()}function c(b,c){c.innerHTML="";var d=new Date(b.modifiedDate),e=a.timeSince(d);null==e&&(e=mxResources.get("lessThanAMinute"));mxUtils.write(c,mxResources.get("timeAgo",
+[e],"{1} ago"));c.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString())}function f(a){var b=document.createElement("img");b.className="geCommentBusyImg";b.src=IMAGE_PATH+"/spin.gif";a.appendChild(b);a.busyImg=b}function g(a){a.style.border="1px solid red";a.removeChild(a.busyImg)}function k(a){a.style.border="";a.removeChild(a.busyImg)}function p(b,d,e,m,l){function n(a,c,d){var e=document.createElement("li");e.className="geCommentAction";var f=document.createElement("a");f.className=
+"geCommentActionLnk";mxUtils.write(f,a);e.appendChild(f);mxEvent.addListener(f,"click",function(a){c(a,b);a.preventDefault();mxEvent.consume(a)});K.appendChild(e);d&&(e.style.display="none")}function D(){function a(b){c.push(d);if(null!=b.replies)for(var e=0;e<b.replies.length;e++)d=d.nextSibling,a(b.replies[e])}var c=[],d=N;a(b);return{pdiv:d,replies:c}}function y(c,d,e,n,l){function u(){f(y);b.addReply(v,function(a){v.id=a;b.replies.push(v);k(y);e&&e()},function(b){t();g(y);a.handleError(b,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},n,l)}function t(){q(v,y,function(a){u()},!0)}var z=D().pdiv,v=a.newComment(c,a.getCurrentUser());v.pCommentId=b.id;null==b.replies&&(b.replies=[]);var y=p(v,b.replies,z,m+1);d?t():u()}if(l||!b.isResolved){L.style.display="none";var N=document.createElement("div");N.className="geCommentContainer";N.setAttribute("data-commentId",b.id);N.style.marginLeft=20*m+5+"px";b.isResolved&&!Editor.isDarkMode()&&(N.style.backgroundColor="ghostWhite");
+var B=document.createElement("div");B.className="geCommentHeader";var I=document.createElement("img");I.className="geCommentUserImg";I.src=b.user.pictureUrl||Editor.userImage;B.appendChild(I);I=document.createElement("div");I.className="geCommentHeaderTxt";B.appendChild(I);var G=document.createElement("div");G.className="geCommentUsername";mxUtils.write(G,b.user.displayName||"");I.appendChild(G);G=document.createElement("div");G.className="geCommentDate";G.setAttribute("data-commentId",b.id);c(b,
+G);I.appendChild(G);N.appendChild(B);B=document.createElement("div");B.className="geCommentTxt";mxUtils.write(B,b.content||"");N.appendChild(B);b.isLocked&&(N.style.opacity="0.5");B=document.createElement("div");B.className="geCommentActions";var K=document.createElement("ul");K.className="geCommentActionsList";B.appendChild(K);t||b.isLocked||0!=m&&!v||n(mxResources.get("reply"),function(){y("",!0)},b.isResolved);I=a.getCurrentUser();null==I||I.id!=b.user.id||t||b.isLocked||(n(mxResources.get("edit"),
+function(){function c(){q(b,N,function(){f(N);b.editComment(b.content,function(){k(N)},function(b){g(N);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}c()},b.isResolved),n(mxResources.get("delete"),function(){a.confirm(mxResources.get("areYouSure"),function(){f(N);b.deleteComment(function(a){if(!0===a){a=N.querySelector(".geCommentTxt");a.innerHTML="";mxUtils.write(a,mxResources.get("msgDeleted"));var c=N.querySelectorAll(".geCommentAction");for(a=
+0;a<c.length;a++)c[a].parentNode.removeChild(c[a]);k(N);N.style.opacity="0.5"}else{c=D(b).replies;for(a=0;a<c.length;a++)z.removeChild(c[a]);for(a=0;a<d.length;a++)if(d[a]==b){d.splice(a,1);break}L.style.display=0==z.getElementsByTagName("div").length?"block":"none"}},function(b){g(N);a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},b.isResolved));t||b.isLocked||0!=m||n(b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(a){function c(){var c=
+a.target;c.innerHTML="";b.isResolved=!b.isResolved;mxUtils.write(c,b.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var d=b.isResolved?"none":"",e=D(b).replies,f=Editor.isDarkMode()?"transparent":b.isResolved?"ghostWhite":"white",g=0;g<e.length;g++){e[g].style.backgroundColor=f;for(var k=e[g].querySelectorAll(".geCommentAction"),m=0;m<k.length;m++)k[m]!=c.parentNode&&(k[m].style.display=d);J||(e[g].style.display="none")}u()}b.isResolved?y(mxResources.get("reOpened")+": ",!0,
+c,!1,!0):y(mxResources.get("markedAsResolved"),!1,c,!0)});N.appendChild(B);null!=e?z.insertBefore(N,e.nextSibling):z.appendChild(N);for(e=0;null!=b.replies&&e<b.replies.length;e++)B=b.replies[e],B.isResolved=b.isResolved,p(B,b.replies,null,m+1,l);null!=A&&(A.comment.id==b.id?(l=b.content,b.content=A.comment.content,q(b,N,A.saveCallback,A.deleteOnCancel),b.content=l):null==A.comment.id&&A.comment.pCommentId==b.id&&(z.appendChild(A.div),q(A.comment,A.div,A.saveCallback,A.deleteOnCancel)));return N}}
+var t=!a.canComment(),v=a.canReplyToReplies(),A=null,F=document.createElement("div");F.className="geCommentsWin";F.style.background="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;var y=EditorUi.compactUi?"26px":"30px",z=document.createElement("div");z.className="geCommentsList";z.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;z.style.bottom=parseInt(y)+7+"px";F.appendChild(z);var L=document.createElement("span");L.style.cssText="display:none;padding-top:10px;text-align:center;";
+mxUtils.write(L,mxResources.get("noCommentsFound"));var M=document.createElement("div");M.className="geToolbarContainer geCommentsToolbar";M.style.height=y;M.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";M.style.backgroundColor="white"==Dialog.backdropColor?"whiteSmoke":Dialog.backdropColor;y=document.createElement("a");y.className="geButton";if(!t){var G=y.cloneNode();G.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';G.setAttribute("title",mxResources.get("create")+
+"...");mxEvent.addListener(G,"click",function(b){function c(){q(d,e,function(b){f(e);a.addComment(b,function(a){b.id=a;H.push(b);k(e)},function(b){g(e);c();a.handleError(b,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var d=a.newComment("",a.getCurrentUser()),e=p(d,H,null,0);c();b.preventDefault();mxEvent.consume(b)});M.appendChild(G)}G=y.cloneNode();G.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';G.setAttribute("title",mxResources.get("showResolved"));
+var J=!1;Editor.isDarkMode()&&(G.style.filter="invert(100%)");mxEvent.addListener(G,"click",function(a){this.className=(J=!J)?"geButton geCheckedBtn":"geButton";D();a.preventDefault();mxEvent.consume(a)});M.appendChild(G);a.commentsRefreshNeeded()&&(G=y.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',G.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(a){D();
+a.preventDefault();mxEvent.consume(a)}),M.appendChild(G));a.commentsSaveNeeded()&&(y=y.cloneNode(),y.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',y.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(y.style.filter="invert(100%)"),mxEvent.addListener(y,"click",function(a){m();a.preventDefault();mxEvent.consume(a)}),M.appendChild(y));F.appendChild(M);var H=[],D=mxUtils.bind(this,function(){this.hasError=!1;if(null!=A)try{A.div=A.div.cloneNode(!0);
+var b=A.div.querySelector(".geCommentEditTxtArea"),c=A.div.querySelector(".geCommentEditBtns");A.comment.content=b.value;b.parentNode.removeChild(b);c.parentNode.removeChild(c)}catch(N){a.handleError(N)}z.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=a.canReplyToReplies();a.commentsSupported()?a.getComments(function(a){function b(a){if(null!=a){a.sort(function(a,b){return new Date(a.modifiedDate)-
+new Date(b.modifiedDate)});for(var c=0;c<a.length;c++)b(a[c].replies)}}a.sort(function(a,b){return new Date(a.modifiedDate)-new Date(b.modifiedDate)});z.innerHTML="";z.appendChild(L);L.style.display="block";H=a;for(a=0;a<H.length;a++)b(H[a].replies),p(H[a],H,null,0,J);null!=A&&null==A.comment.id&&null==A.comment.pCommentId&&(z.appendChild(A.div),q(A.comment,A.div,A.saveCallback,A.deleteOnCancel))},mxUtils.bind(this,function(a){z.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(a&&a.message?
+": "+a.message:""));this.hasError=!0})):z.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});D();this.refreshComments=D;M=mxUtils.bind(this,function(){function a(b){var e=d[b.id];if(null!=e)for(c(b,e),e=0;null!=b.replies&&e<b.replies.length;e++)a(b.replies[e])}if(this.window.isVisible()){for(var b=z.querySelectorAll(".geCommentDate"),d={},e=0;e<b.length;e++){var f=b[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<H.length;e++)a(H[e])}});setInterval(M,6E4);this.refreshCommentsTime=M;this.window=
+new mxWindow(mxResources.get("comments"),F,b,e,d,l,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(a,b){var c=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||
+document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)};var K=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",K);this.destroy=function(){mxEvent.removeListener(window,"resize",K);this.window.destroy()}},ConfirmDialog=function(a,b,e,
+d,l,m,u,q,c,f,g){var k=document.createElement("div");k.style.textAlign="center";g=null!=g?g:44;var p=document.createElement("div");p.style.padding="6px";p.style.overflow="auto";p.style.maxHeight=g+"px";p.style.lineHeight="1.2em";mxUtils.write(p,b);k.appendChild(p);null!=f&&(p=document.createElement("div"),p.style.padding="6px 0 6px 0",b=document.createElement("img"),b.setAttribute("src",f),p.appendChild(b),k.appendChild(p));f=document.createElement("div");f.style.textAlign="center";f.style.whiteSpace=
+"nowrap";var t=document.createElement("input");t.setAttribute("type","checkbox");m=mxUtils.button(m||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(t.checked)});m.className="geBtn";null!=q&&(m.innerHTML=q+"<br>"+m.innerHTML,m.style.paddingBottom="8px",m.style.paddingTop="8px",m.style.height="auto",m.style.width="40%");a.editor.cancelFirst&&f.appendChild(m);var v=mxUtils.button(l||mxResources.get("ok"),function(){a.hideDialog();null!=e&&e(t.checked)});f.appendChild(v);null!=u?(v.innerHTML=
+u+"<br>"+v.innerHTML+"<br>",v.style.paddingBottom="8px",v.style.paddingTop="8px",v.style.height="auto",v.className="geBtn",v.style.width="40%"):v.className="geBtn gePrimaryBtn";a.editor.cancelFirst||f.appendChild(m);k.appendChild(f);c?(f.style.marginTop="10px",p=document.createElement("p"),p.style.marginTop="20px",p.style.marginBottom="0px",p.appendChild(t),l=document.createElement("span"),mxUtils.write(l," "+mxResources.get("rememberThisSetting")),p.appendChild(l),k.appendChild(p),mxEvent.addListener(l,
+"click",function(a){t.checked=!t.checked;mxEvent.consume(a)})):f.style.marginTop="12px";this.init=function(){v.focus()};this.container=k};function DiagramPage(a,b){this.node=a;null!=b?this.node.setAttribute("id",b):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
function SelectPage(a,b,e){this.ui=a;this.previousPage=this.page=b;this.neverShown=!0;null!=b&&(this.neverShown=null==b.viewState,this.ui.updatePageRoot(b),null!=e&&(b.viewState=e,this.neverShown=!1))}
SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,b=this.ui.editor,e=b.graph,d=Graph.compressNode(b.getGraphXml(!0));mxUtils.setTextContent(a.node,d);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.prefix=Editor.guid()+"-";e.model.rootChanged(a.root);
e.setViewState(a.viewState);e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);b.updateGraphComponents();e.view.validate();e.blockMathRender=!0;e.sizeDidChange();e.blockMathRender=!1;this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}};
-function ChangePage(a,b,e,d,n){SelectPage.call(this,a,e);this.relatedPage=b;this.index=d;this.previousIndex=null;this.noSelect=n}mxUtils.extend(ChangePage,SelectPage);
+function ChangePage(a,b,e,d,l){SelectPage.call(this,a,e);this.relatedPage=b;this.index=d;this.previousIndex=null;this.noSelect=l}mxUtils.extend(ChangePage,SelectPage);
ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;this.noSelect||SelectPage.prototype.execute.apply(this,arguments)};EditorUi.prototype.tabContainerHeight=38;
EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){a=b;break}return a};EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var b=0;b<this.pages.length;b++)if(this.pages[b].getId()==a)return this.pages[b];return null};
EditorUi.prototype.initPages=function(){if(!this.editor.graph.standalone){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.isPagesEnabled()&&(this.keyHandler.bindAction(33,!0,"previousPage",!0),this.keyHandler.bindAction(34,!0,"nextPage",!0));var a=this.editor.graph,b=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var d=
this.tabContainer.style.height;this.tabContainer.style.height=null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":this.tabContainerHeight+"px";d!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var e=null,d=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&
(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),e=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=
-this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var e=b.getProperty("edit").changes,l=0;l<e.length;l++)if(e[l]instanceof SelectPage||e[l]instanceof RenamePage||e[l]instanceof MovePage||e[l]instanceof mxRootChange){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}};
+this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var e=b.getProperty("edit").changes,m=0;m<e.length;m++)if(e[m]instanceof SelectPage||e[m]instanceof RenamePage||e[m]instanceof MovePage||e[m]instanceof mxRootChange){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}};
EditorUi.prototype.restoreViewState=function(a,b,e){a=null!=a?this.getPageById(a.getId()):null;var d=this.editor.graph;null!=a&&null!=this.currentPage&&null!=this.pages&&(a!=this.currentPage?this.selectPage(a,!0,b):(d.setViewState(b),this.editor.updateGraphComponents(),d.view.revalidate(),d.sizeDidChange()),d.container.scrollLeft=d.view.translate.x*d.view.scale+b.scrollLeft,d.container.scrollTop=d.view.translate.y*d.view.scale+b.scrollTop,d.restoreSelection(e))};
-Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),n=parseFloat(a.getAttribute("pageHeight")),l=a.getAttribute("background"),t=a.getAttribute("backgroundImage"),t=null!=t&&0<t.length?JSON.parse(t):null,q=a.getAttribute("extFonts");if(q)try{q=q.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}})}catch(c){console.log("ExtFonts format error: "+c.message)}return{gridEnabled:"0"!=
-a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=l&&0<l.length?l:null,backgroundImage:null!=t?new mxImage(t.src,t.width,t.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(d)||isNaN(n)?"undefined"===
-typeof mxSettings?mxGraph.prototype.pageFormat:mxSettings.getPageFormat():new mxRectangle(0,0,d,n),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1,extFonts:q||[]}};
+Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),l=parseFloat(a.getAttribute("pageHeight")),m=a.getAttribute("background"),u=a.getAttribute("backgroundImage"),u=null!=u&&0<u.length?JSON.parse(u):null,q=a.getAttribute("extFonts");if(q)try{q=q.split("|").map(function(a){a=a.split("^");return{name:a[0],url:a[1]}})}catch(c){console.log("ExtFonts format error: "+c.message)}return{gridEnabled:"0"!=
+a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"),shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=m&&0<m.length?m:null,backgroundImage:null!=u?new mxImage(u.src,u.width,u.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(d)||isNaN(l)?"undefined"===
+typeof mxSettings?mxGraph.prototype.pageFormat:mxSettings.getPageFormat():new mxRectangle(0,0,d,l),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1,extFonts:q||[]}};
Graph.prototype.saveViewState=function(a,b,e){e||(b.setAttribute("grid",null==a||a.gridEnabled?"1":"0"),b.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize),b.setAttribute("guides",null==a||a.guidesEnabled?"1":"0"),b.setAttribute("tooltips",null==a||a.tooltips?"1":"0"),b.setAttribute("connect",null==a||a.connect?"1":"0"),b.setAttribute("arrows",null==a||a.arrows?"1":"0"),b.setAttribute("page",null==a&&this.defaultPageVisible||null!=a&&a.pageVisible?"1":"0"),b.setAttribute("fold",
null==a||a.foldingEnabled?"1":"0"));b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);e=null!=a?a.pageFormat:"undefined"===typeof mxSettings?mxGraph.prototype.pageFormat:mxSettings.getPageFormat();null!=e&&(b.setAttribute("pageWidth",e.width),b.setAttribute("pageHeight",e.height));null!=a&&null!=a.background&&b.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",
null!=a&&a.mathEnabled?"1":"0");b.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0");null!=a&&null!=a.extFonts&&0<a.extFonts.length&&b.setAttribute("extFonts",a.extFonts.map(function(a){return a.name+"^"+a.url}).join("|"))};
Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(),
arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled,extFonts:this.extFonts}};
Graph.prototype.setViewState=function(a,b){if(null!=a){this.lastPasteXml=a.lastPasteXml;this.pasteCounter=a.pasteCounter||0;this.mathEnabled=a.mathEnabled;this.gridEnabled=a.gridEnabled;this.gridSize=a.gridSize;this.graphHandler.guidesEnabled=a.guidesEnabled;this.foldingEnabled=a.foldingEnabled;this.setShadowVisible(a.shadowVisible,!1);this.scrollbars=a.scrollbars;this.pageVisible=!this.isViewer()&&a.pageVisible;this.background=a.background;this.backgroundImage=a.backgroundImage;this.pageScale=a.pageScale;
-this.pageFormat=a.pageFormat;this.view.currentRoot=a.currentRoot;this.defaultParent=a.defaultParent;this.connectionArrowsEnabled=a.arrows;this.setTooltips(a.tooltips);this.setConnectable(a.connect);var e=this.extFonts;this.extFonts=a.extFonts||[];if(b&&null!=e)for(var d=0;d<e.length;d++){var n=document.getElementById("extFont_"+e[d].name);null!=n&&n.parentNode.removeChild(n)}for(d=0;d<this.extFonts.length;d++)this.addExtFont(this.extFonts[d].name,this.extFonts[d].url,!0);this.view.scale=null!=a.scale?
+this.pageFormat=a.pageFormat;this.view.currentRoot=a.currentRoot;this.defaultParent=a.defaultParent;this.connectionArrowsEnabled=a.arrows;this.setTooltips(a.tooltips);this.setConnectable(a.connect);var e=this.extFonts;this.extFonts=a.extFonts||[];if(b&&null!=e)for(var d=0;d<e.length;d++){var l=document.getElementById("extFont_"+e[d].name);null!=l&&l.parentNode.removeChild(l)}for(d=0;d<this.extFonts.length;d++)this.addExtFont(this.extFonts[d].name,this.extFonts[d].url,!0);this.view.scale=null!=a.scale?
a.scale:1;null==this.view.currentRoot||this.model.contains(this.view.currentRoot)||(this.view.currentRoot=null);null==this.defaultParent||this.model.contains(this.defaultParent)||(this.setDefaultParent(null),this.selectUnlockedLayer());null!=a.translate&&(this.view.translate=a.translate)}else this.view.currentRoot=null,this.view.scale=1,this.gridEnabled=this.defaultGridEnabled,this.gridSize=mxGraph.prototype.gridSize,this.pageScale=mxGraph.prototype.pageScale,this.pageFormat="undefined"===typeof mxSettings?
mxGraph.prototype.pageFormat:mxSettings.getPageFormat(),this.pageVisible=this.defaultPageVisible,this.backgroundImage=this.background=null,this.scrollbars=this.defaultScrollbars,this.foldingEnabled=this.graphHandler.guidesEnabled=!0,this.setShadowVisible(!1,!1),this.defaultParent=null,this.setTooltips(!0),this.setConnectable(!0),this.lastPasteXml=null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0,this.extFonts=[];this.preferPageSize=this.pageBreaksVisible=this.pageVisible;
this.fireEvent(new mxEventObject("viewStateChanged","state",a))};
-Graph.prototype.addExtFont=function(a,b,e){if(a&&b){"1"!=urlParams["ext-fonts"]&&(Graph.recentCustomFonts[a.toLowerCase()]={name:a,url:b});var d="extFont_"+a;if(null==document.getElementById(d))if(0==b.indexOf(Editor.GOOGLE_FONTS))mxClient.link("stylesheet",b,null,d);else{document.getElementsByTagName("head");var n=document.createElement("style");n.appendChild(document.createTextNode('@font-face {\n\tfont-family: "'+a+'";\n\tsrc: url("'+b+'");\n}'));n.setAttribute("id",d);document.getElementsByTagName("head")[0].appendChild(n)}if(!e){null==
-this.extFonts&&(this.extFonts=[]);e=this.extFonts;d=!0;for(n=0;n<e.length;n++)if(e[n].name==a){d=!1;break}d&&this.extFonts.push({name:a,url:b})}}};
+Graph.prototype.addExtFont=function(a,b,e){if(a&&b){"1"!=urlParams["ext-fonts"]&&(Graph.recentCustomFonts[a.toLowerCase()]={name:a,url:b});var d="extFont_"+a;if(null==document.getElementById(d))if(0==b.indexOf(Editor.GOOGLE_FONTS))mxClient.link("stylesheet",b,null,d);else{document.getElementsByTagName("head");var l=document.createElement("style");l.appendChild(document.createTextNode('@font-face {\n\tfont-family: "'+a+'";\n\tsrc: url("'+b+'");\n}'));l.setAttribute("id",d);document.getElementsByTagName("head")[0].appendChild(l)}if(!e){null==
+this.extFonts&&(this.extFonts=[]);e=this.extFonts;d=!0;for(l=0;l<e.length;l++)if(e[l].name==a){d=!1;break}d&&this.extFonts.push({name:a,url:b})}}};
EditorUi.prototype.updatePageRoot=function(a,b){if(null==a.root){var e=this.editor.extractGraphModel(a.node,null,b),d=Editor.extractParserError(e);if(d)throw Error(d);null!=e?(a.graphModelNode=e,a.viewState=this.editor.graph.createViewState(e),d=new mxCodec(e.ownerDocument),a.root=d.decode(e).root):a.root=this.editor.graph.model.createRoot()}else if(null==a.viewState){if(null==a.graphModelNode){e=this.editor.extractGraphModel(a.node);if(d=Editor.extractParserError(e))throw Error(d);null!=e&&(a.graphModelNode=
e)}null!=a.graphModelNode&&(a.viewState=this.editor.graph.createViewState(a.graphModelNode))}return a};
-EditorUi.prototype.selectPage=function(a,b,e){try{if(a!=this.currentPage){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var d=this.editor.graph.model.createUndoableEdit();d.ignoreEdit=!0;var n=new SelectPage(this,a,e);n.execute();d.add(n);d.notify();this.editor.graph.tooltipHandler.hide();b||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",d))}}catch(l){this.handleError(l)}};
+EditorUi.prototype.selectPage=function(a,b,e){try{if(a!=this.currentPage){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var d=this.editor.graph.model.createUndoableEdit();d.ignoreEdit=!0;var l=new SelectPage(this,a,e);l.execute();d.add(l);d.notify();this.editor.graph.tooltipHandler.hide();b||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",d))}}catch(m){this.handleError(m)}};
EditorUi.prototype.selectNextPage=function(a){var b=this.currentPage;null!=b&&null!=this.pages&&(b=mxUtils.indexOf(this.pages,b),a?this.selectPage(this.pages[mxUtils.mod(b+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(b-1,this.pages.length)]))};
EditorUi.prototype.insertPage=function(a,b){if(this.editor.graph.isEnabled()){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);a=null!=a?a:this.createPage(null,this.createPageId());b=null!=b?b:this.pages.length;var e=new ChangePage(this,a,a,b);this.editor.graph.model.execute(e)}return a};EditorUi.prototype.createPageId=function(){var a;do a=Editor.guid();while(null!=this.getPageById(a));return a};
EditorUi.prototype.createPage=function(a,b){var e=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"),b);e.setName(null!=a?a:this.createPageName());return e};EditorUi.prototype.createPageName=function(){for(var a={},b=0;b<this.pages.length;b++){var e=this.pages[b].getName();null!=e&&0<e.length&&(a[e]=e)}b=this.pages.length;do e=mxResources.get("pageWithNumber",[++b]);while(null!=a[e]);return e};
-EditorUi.prototype.removePage=function(a){try{var b=this.editor.graph,e=mxUtils.indexOf(this.pages,a);if(b.isEnabled()&&0<=e){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b.model.beginUpdate();try{var d=this.currentPage;d==a&&1<this.pages.length?(e==this.pages.length-1?e--:e++,d=this.pages[e]):1>=this.pages.length&&(d=this.insertPage(),b.model.execute(new RenamePage(this,d,mxResources.get("pageWithNumber",[1]))));b.model.execute(new ChangePage(this,a,d))}finally{b.model.endUpdate()}}}catch(n){this.handleError(n)}return a};
-EditorUi.prototype.duplicatePage=function(a,b){var e=null;try{var d=this.editor.graph;if(d.isEnabled()){d.isEditing()&&d.stopEditing();var n=a.node.cloneNode(!1);n.removeAttribute("id");e=new DiagramPage(n);e.root=d.cloneCell(d.model.root);e.viewState=d.getViewState();e.viewState.scale=1;e.viewState.scrollLeft=null;e.viewState.scrollTop=null;e.viewState.currentRoot=null;e.viewState.defaultParent=null;e.setName(b);e=this.insertPage(e,mxUtils.indexOf(this.pages,a)+1)}}catch(l){this.handleError(l)}return e};
+EditorUi.prototype.removePage=function(a){try{var b=this.editor.graph,e=mxUtils.indexOf(this.pages,a);if(b.isEnabled()&&0<=e){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b.model.beginUpdate();try{var d=this.currentPage;d==a&&1<this.pages.length?(e==this.pages.length-1?e--:e++,d=this.pages[e]):1>=this.pages.length&&(d=this.insertPage(),b.model.execute(new RenamePage(this,d,mxResources.get("pageWithNumber",[1]))));b.model.execute(new ChangePage(this,a,d))}finally{b.model.endUpdate()}}}catch(l){this.handleError(l)}return a};
+EditorUi.prototype.duplicatePage=function(a,b){var e=null;try{var d=this.editor.graph;if(d.isEnabled()){d.isEditing()&&d.stopEditing();var l=a.node.cloneNode(!1);l.removeAttribute("id");e=new DiagramPage(l);e.root=d.cloneCell(d.model.root);e.viewState=d.getViewState();e.viewState.scale=1;e.viewState.scrollLeft=null;e.viewState.scrollTop=null;e.viewState.currentRoot=null;e.viewState.defaultParent=null;e.setName(b);e=this.insertPage(e,mxUtils.indexOf(this.pages,a)+1)}}catch(m){this.handleError(m)}return e};
EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var b=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&this.editor.graph.model.execute(new RenamePage(this,a,b))}),mxResources.get("rename"));this.showDialog(b.container,300,80,!0,!0);b.init()}return a};EditorUi.prototype.movePage=function(a,b){this.editor.graph.model.execute(new MovePage(this,a,b))};
EditorUi.prototype.createTabContainer=function(){var a=document.createElement("div");a.className="geTabContainer";a.style.position="absolute";a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.height="0px";return a};
EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,b=document.createElement("div");b.style.position="relative";b.style.display="inline-block";b.style.verticalAlign="top";b.style.height=this.tabContainer.style.height;b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.fontSize="13px";b.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,d=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-e)/this.pages.length)+
-1),n=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#fff"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),n=c):mxEvent.consume(b)}));mxEvent.addListener(d,"dragend",mxUtils.bind(this,function(a){n=null;a.stopPropagation();
-a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=n&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=n&&c!=n&&this.movePage(n,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(l,this.createTabForPage(this.pages[l],d,this.pages[l]!=this.currentPage,l+1));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);d=this.createPageMenuTab();this.tabContainer.appendChild(d);
-d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var t=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");t.style.position="absolute";t.style.right=this.editor.chromeless?"29px":"55px";t.style.fontSize="13pt";this.tabContainer.appendChild(t);var q=this.createControlTab(4,"&nbsp;&#10095;");q.style.position="absolute";
-q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var c=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=c+"px";mxEvent.addListener(t,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,c-20);mxUtils.setOpacity(t,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(t,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,
-b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,c-20);mxUtils.setOpacity(t,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
+1),l=null,m=0;m<this.pages.length;m++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#fff"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),l=c):mxEvent.consume(b)}));mxEvent.addListener(d,"dragend",mxUtils.bind(this,function(a){l=null;a.stopPropagation();
+a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=l&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=l&&c!=l&&this.movePage(l,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(m,this.createTabForPage(this.pages[m],d,this.pages[m]!=this.currentPage,m+1));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);d=this.createPageMenuTab();this.tabContainer.appendChild(d);
+d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var u=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");u.style.position="absolute";u.style.right=this.editor.chromeless?"29px":"55px";u.style.fontSize="13pt";this.tabContainer.appendChild(u);var q=this.createControlTab(4,"&nbsp;&#10095;");q.style.position="absolute";
+q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var c=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=c+"px";mxEvent.addListener(u,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,c-20);mxUtils.setOpacity(u,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(u,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,
+b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,c-20);mxUtils.setOpacity(u,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
EditorUi.prototype.createTab=function(a){var b=document.createElement("div");b.style.display="inline-block";b.style.whiteSpace="nowrap";b.style.boxSizing="border-box";b.style.position="relative";b.style.overflow="hidden";b.style.textAlign="center";b.style.marginLeft="-1px";b.style.height=this.tabContainer.clientHeight+"px";b.style.padding="12px 4px 8px 4px";b.style.border=Editor.isDarkMode()?"1px solid #505759":"1px solid #e8eaed";b.style.borderTopStyle="none";b.style.borderBottomStyle="none";b.style.backgroundColor=
this.tabContainer.style.backgroundColor;b.style.cursor="move";b.style.color="gray";a&&(mxEvent.addListener(b,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(b.style.backgroundColor=Editor.isDarkMode()?"black":"#e8eaed",mxEvent.consume(a))})),mxEvent.addListener(b,"mouseleave",mxUtils.bind(this,function(a){b.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return b};
EditorUi.prototype.createControlTab=function(a,b,e){e=this.createTab(null!=e?e:!0);e.style.lineHeight=this.tabContainerHeight+"px";e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.innerHTML=b;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e};
EditorUi.prototype.createPageMenuTab=function(a){a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;margin-top:5px;width:21px;height:21px;"></div>',a);a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.marginLeft="0px";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var b=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<
this.pages.length;d++)mxUtils.bind(this,function(c){var d=a.addItem(this.pages[c].getName(),null,mxUtils.bind(this,function(){this.selectPage(this.pages[c])}),b);this.pages[c]==this.currentPage&&a.addCheckmark(d,Editor.checkmarkImage)})(d);if(this.editor.graph.isEnabled()){a.addSeparator(b);a.addItem(mxResources.get("insertPage"),null,mxUtils.bind(this,function(){this.insertPage()}),b);var c=this.currentPage;null!=c&&(a.addSeparator(b),d=c.getName(),a.addItem(mxResources.get("removeIt",[d]),null,
mxUtils.bind(this,function(){this.removePage(c)}),b),a.addItem(mxResources.get("renameIt",[d]),null,mxUtils.bind(this,function(){this.renamePage(c,c.getName())}),b),a.addSeparator(b),a.addItem(mxResources.get("duplicateIt",[d]),null,mxUtils.bind(this,function(){this.duplicatePage(c,mxResources.get("copyOf",[c.getName()]))}),b))}}));b.div.className+=" geMenubarMenu";b.smartSeparators=!0;b.showDisabled=!0;b.autoExpand=!0;b.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(b,
-arguments);b.destroy()});var d=mxEvent.getClientX(a),n=mxEvent.getClientY(a);b.popup(d,n,null,a);this.setCurrentMenu(b);mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a};
-EditorUi.prototype.createTabForPage=function(a,b,e,d){e=this.createTab(e);var n=a.getName()||mxResources.get("untitled"),l=a.getId();e.setAttribute("title",n+(null!=l?" ("+l+")":"")+" ["+d+"]");mxUtils.write(e,n);e.style.maxWidth=b+"px";e.style.width=b+"px";this.addTabListeners(a,e);42<b&&(e.style.textOverflow="ellipsis");return e};
-EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var d=!1,n=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=null!=this.currentMenu;n=a==this.currentPage;e.isMouseDown||n||this.selectPage(a)}),null,mxUtils.bind(this,function(l){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(l)&&n||mxEvent.isPopupTrigger(l))){e.popupMenuHandler.hideMenu();
-this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!d){var t=new mxPopupMenu(this.createPageMenu(a));t.div.className+=" geMenubarMenu";t.smartSeparators=!0;t.showDisabled=!0;t.autoExpand=!0;t.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(t,arguments);this.resetCurrentMenu();t.destroy()});var q=mxEvent.getClientX(l),c=mxEvent.getClientY(l);t.popup(q,c,null,l);this.setCurrentMenu(t,b)}mxEvent.consume(l)}}))};
-EditorUi.prototype.getLinkForPage=function(a,b,e){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var d=this.getCurrentFile();if(null!=d&&d.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var n=this.getSearch("create title mode url drive splash state clibs ui viewbox hide-pages".split(" ")),n=n+((0==n.length?"?":"&")+"page-id="+a.getId());null!=b&&(n+="&"+b.join("&"));return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
-EditorUi.drawHost:"https://"+window.location.host)+"/"+n+"#"+d.getHash()}}return null};
-EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){var n=this.editor.graph;e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);null!=this.getLinkForPage(a)&&(e.addSeparator(d),e.addItem(mxResources.get("link"),
-null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(b,d,e,c,f,g){b=this.createUrlParameters(b,d,e,c,f,g);e||b.push("hide-pages=1");n.isSelectionEmpty()||(e=n.getBoundingBox(n.getSelectionCells()),d=n.view.translate,f=n.view.scale,e.width/=f,e.height/=f,e.x=e.x/f-d.x,e.y=e.y/f-d.y,b.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(e.x),y:Math.round(e.y),width:Math.round(e.width),height:Math.round(e.height),border:100}))));
+arguments);b.destroy()});var d=mxEvent.getClientX(a),l=mxEvent.getClientY(a);b.popup(d,l,null,a);this.setCurrentMenu(b);mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a};
+EditorUi.prototype.createTabForPage=function(a,b,e,d){e=this.createTab(e);var l=a.getName()||mxResources.get("untitled"),m=a.getId();e.setAttribute("title",l+(null!=m?" ("+m+")":"")+" ["+d+"]");mxUtils.write(e,l);e.style.maxWidth=b+"px";e.style.width=b+"px";this.addTabListeners(a,e);42<b&&(e.style.textOverflow="ellipsis");return e};
+EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var d=!1,l=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=null!=this.currentMenu;l=a==this.currentPage;e.isMouseDown||l||this.selectPage(a)}),null,mxUtils.bind(this,function(m){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(m)&&l||mxEvent.isPopupTrigger(m))){e.popupMenuHandler.hideMenu();
+this.hideCurrentMenu();if(!mxEvent.isTouchEvent(m)||!d){var u=new mxPopupMenu(this.createPageMenu(a));u.div.className+=" geMenubarMenu";u.smartSeparators=!0;u.showDisabled=!0;u.autoExpand=!0;u.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(u,arguments);this.resetCurrentMenu();u.destroy()});var q=mxEvent.getClientX(m),c=mxEvent.getClientY(m);u.popup(q,c,null,m);this.setCurrentMenu(u,b)}mxEvent.consume(m)}}))};
+EditorUi.prototype.getLinkForPage=function(a,b,e){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var d=this.getCurrentFile();if(null!=d&&d.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var l=this.getSearch("create title mode url drive splash state clibs ui viewbox hide-pages".split(" ")),l=l+((0==l.length?"?":"&")+"page-id="+a.getId());null!=b&&(l+="&"+b.join("&"));return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
+EditorUi.drawHost:"https://"+window.location.host)+"/"+l+"#"+d.getHash()}}return null};
+EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){var l=this.editor.graph;e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);null!=this.getLinkForPage(a)&&(e.addSeparator(d),e.addItem(mxResources.get("link"),
+null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(b,d,e,c,f,g){b=this.createUrlParameters(b,d,e,c,f,g);e||b.push("hide-pages=1");l.isSelectionEmpty()||(e=l.getBoundingBox(l.getSelectionCells()),d=l.view.translate,f=l.view.scale,e.width/=f,e.height/=f,e.x=e.x/f-d.x,e.y=e.y/f-d.y,b.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(e.x),y:Math.round(e.y),width:Math.round(e.width),height:Math.round(e.height),border:100}))));
c=new EmbedDialog(this,this.getLinkForPage(a,b,c));this.showDialog(c.container,440,240,!0,!0);c.init()}))})));e.addSeparator(d);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,mxResources.get("copyOf",[a.getName()]))}),d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=this.getServiceName()||(e.addSeparator(d),e.addItem(mxResources.get("openInNewWindow"),null,mxUtils.bind(this,function(){this.editor.editAsNew(this.getFileData(!0,null,null,null,
!0,!0))}),d))})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})();
(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,n){n.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(n.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&n.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,d){return 0>mxUtils.indexOf(b,
-a)?d:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,n));return n};a.beforeDecode=function(a,b,n){n.ui=a.ui;n.relatedPage=n.ui.getPageById(b.getAttribute("relatedPage"));if(null==n.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));n.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(n.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState"));
-b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(n.relatedPage.root=a.decodeCell(d,!1),n=d.nextSibling,d.parentNode.removeChild(d),d=n;null!=d;){n=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var e=d.getAttribute("id");null==a.lookup(e)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=n}}return b};a.afterDecode=function(a,b,n){n.index=n.previousIndex;return n};mxCodecRegistry.register(a)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var a=Graph.prototype.foldCells;Graph.prototype.foldCells=function(b,e,l,t,q){e=null!=e?e:!1;null==l&&(l=this.getFoldableCells(this.getSelectionCells(),b));this.stopEditing();this.model.beginUpdate();try{for(var c=l.slice(),d=0;d<l.length;d++)"1"==mxUtils.getValue(this.getCurrentCellStyle(l[d]),"treeFolding","0")&&this.foldTreeCell(b,l[d]);l=c;l=a.apply(this,arguments)}finally{this.model.endUpdate()}return l};Graph.prototype.foldTreeCell=
-function(a,b){this.model.beginUpdate();try{var d=[];this.traverse(b,!0,mxUtils.bind(this,function(a,c){var e=null!=c&&this.isTreeEdge(c);e&&d.push(c);a==b||null!=c&&!e||d.push(a);return(null==c||e)&&(a==b||!this.model.isCollapsed(a))}));this.model.setCollapsed(b,a);for(var e=0;e<d.length;e++)this.model.setVisible(d[e],!a)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(a){return!this.isEdgeIgnored(a)};Graph.prototype.getTreeEdges=function(a,b,e,t,q,c){return this.model.filterCells(this.getEdges(a,
-b,e,t,q,c),mxUtils.bind(this,function(a){return this.isTreeEdge(a)}))};Graph.prototype.getIncomingTreeEdges=function(a,b){return this.getTreeEdges(a,b,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(a,b){return this.getTreeEdges(a,b,!1,!0,!1)};var b=EditorUi.prototype.init;EditorUi.prototype.init=function(){b.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function a(a){return A.isVertex(a)&&e(a)}function b(a){var b=
-!1;null!=a&&(b="1"==u.getCurrentCellStyle(a).treeMoving);return b}function e(a){var b=!1;null!=a&&(a=A.getParent(a),b=u.view.getState(a),b="tree"==(null!=b?b.style:u.getCellStyle(a)).containerType);return b}function t(a){var b=!1;null!=a&&(a=A.getParent(a),b=u.view.getState(a),u.view.getState(a),b=null!=(null!=b?b.style:u.getCellStyle(a)).childLayout);return b}function q(a){a=u.view.getState(a);if(null!=a){var b=u.getIncomingTreeEdges(a.cell);if(0<b.length&&(b=u.view.getState(b[0]),null!=b&&(b=b.absolutePoints,
-null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function c(a,b){b=null!=b?b:!0;u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingTreeEdges(a),e=u.cloneCells([d[0],a]);u.model.setTerminal(e[0],u.model.getTerminal(d[0],
-!0),!0);var f=q(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;u.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=u.view.getState(a),m=u.view.scale;if(null!=k){var l=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*m:l.y+=(b?
-a.geometry.height+10:-e[1].geometry.height-10)*m;var n=u.getOutgoingTreeEdges(u.model.getTerminal(d[0],!0));if(null!=n){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<n.length;t++){var y=u.model.getTerminal(n[t],!1);if(f==q(y)){var x=u.view.getState(y);y!=a&&null!=x&&(p&&b!=x.getCenterX()<k.getCenterX()||!p&&b!=x.getCenterY()<k.getCenterY())&&mxUtils.intersects(l,x)&&(d=10+Math.max(d,(Math.min(l.x+l.width,x.x+x.width)-Math.max(l.x,x.x))/m),g=10+Math.max(g,(Math.min(l.y+
-l.height,x.y+x.height)-Math.max(l.y,x.y))/m))}}p?g=0:d=0;for(t=0;t<n.length;t++)if(y=u.model.getTerminal(n[t],!1),f==q(y)&&(x=u.view.getState(y),y!=a&&null!=x&&(p&&b!=x.getCenterX()<k.getCenterX()||!p&&b!=x.getCenterY()<k.getCenterY()))){var E=[];u.traverse(x.cell,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&E.push(b);(null==b||c)&&E.push(a);return null==b||c});u.moveCells(E,(b?1:-1)*d,(b?1:-1)*g)}}}return u.addCells(e,c)}finally{u.model.endUpdate()}}function f(a){u.model.beginUpdate();try{var b=
-q(a),c=u.getIncomingTreeEdges(a),d=u.cloneCells([c[0],a]);u.model.setTerminal(c[0],d[1],!1);u.model.setTerminal(d[0],d[1],!0);u.model.setTerminal(d[0],a,!1);var e=u.model.getParent(a),f=e.geometry,g=[];u.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);u.traverse(a,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&g.push(b);(null==b||c)&&g.push(a);return null==b||c});var k=a.geometry.width+40,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?
-(k=0,m=-m):b==mxConstants.DIRECTION_WEST?(k=-k,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);u.moveCells(g,k,m);return u.addCells(d,e)}finally{u.model.endUpdate()}}function g(a,b){u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingTreeEdges(a),e=q(a);0==d.length&&(d=[u.createEdge(c,null,"",null,null,u.createCurrentEdgeStyle())],e=b);var f=u.cloneCells([d[0],a]);u.model.setTerminal(f[0],a,!0);if(null==u.model.getTerminal(f[0],!1)){u.model.setTerminal(f[0],f[1],!1);var g=u.getCellStyle(f[1]).newEdgeStyle;
-if(null!=g)try{var k=JSON.parse(g),m;for(m in k)u.setCellStyles(m,k[m],[f[0]]),"edgeStyle"==m&&"elbowEdgeStyle"==k[m]&&u.setCellStyles("elbow",e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[f[0]])}catch(ha){}}var d=u.getOutgoingTreeEdges(a),l=c.geometry,g=[];u.view.currentRoot==c&&(l=new mxRectangle);for(k=0;k<d.length;k++){var n=u.model.getTerminal(d[k],!1);null!=n&&g.push(n)}var p=u.view.getBounds(g),t=u.view.translate,y=u.view.scale;e==mxConstants.DIRECTION_SOUTH?
-(f[1].geometry.x=null==p?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(p.x+p.width)/y-t.x-l.x+10,f[1].geometry.y+=f[1].geometry.height-l.y+40):e==mxConstants.DIRECTION_NORTH?(f[1].geometry.x=null==p?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(p.x+p.width)/y-t.x+-l.x+10,f[1].geometry.y-=f[1].geometry.height+l.y+40):(f[1].geometry.x=e==mxConstants.DIRECTION_WEST?f[1].geometry.x-(f[1].geometry.width+l.x+40):f[1].geometry.x+(f[1].geometry.width-l.x+40),f[1].geometry.y=null==p?a.geometry.y+
-(a.geometry.height-f[1].geometry.height)/2:(p.y+p.height)/y-t.y+-l.y+10);return u.addCells(f,c)}finally{u.model.endUpdate()}}function m(a,b,c){a=u.getOutgoingTreeEdges(a);c=u.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=u.view.getState(u.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-
-c.y-c.height})}return d}function k(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?p.actions.get("selectParent").funct():c==b?(d=u.getOutgoingTreeEdges(a),null!=d&&0<d.length&&u.setSelectionCell(u.model.getTerminal(d[0],!1))):(c=u.getIncomingTreeEdges(a),null!=c&&0<c.length&&(d=m(u.model.getTerminal(c[0],!0),d,a),c=u.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||
-b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&u.setSelectionCell(d[c].cell)))))}var p=this,u=p.editor.graph,A=u.getModel(),F=p.menus.createPopupMenu;p.menus.createPopupMenu=function(b,c,d){F.apply(this,arguments);if(1==u.getSelectionCount()){c=u.getSelectionCell();var e=u.getOutgoingTreeEdges(c);b.addSeparator();0<e.length&&(a(u.getSelectionCell())&&this.addMenuItems(b,["selectChildren"],null,d),this.addMenuItems(b,["selectDescendants"],null,d));a(u.getSelectionCell())&&(b.addSeparator(),
-0<u.getIncomingTreeEdges(c).length&&this.addMenuItems(b,["selectSiblings","selectParent"],null,d))}};p.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getOutgoingTreeEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+X");p.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=
-u.getIncomingTreeEdges(a);if(null!=a&&0<a.length&&(a=u.getOutgoingTreeEdges(u.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+S");p.actions.addAction("selectParent",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getIncomingTreeEdges(a);null!=a&&0<a.length&&u.setSelectionCell(u.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");p.actions.addAction("selectDescendants",
-function(a,b){var c=u.getSelectionCell();if(u.isEnabled()&&u.model.isVertex(c)){if(null!=b&&mxEvent.isAltDown(b))u.setSelectionCells(u.model.getTreeEdges(c,null==b||!mxEvent.isShiftDown(b),null==b||!mxEvent.isControlDown(b)));else{var d=[];u.traverse(c,!0,function(a,c){var e=null!=c&&u.isTreeEdge(c);e&&d.push(c);null!=c&&!e||null!=b&&mxEvent.isShiftDown(b)||d.push(a);return null==c||e})}u.setSelectionCells(d)}},null,null,"Alt+Shift+D");var z=u.removeCells;u.removeCells=function(b,c){c=null!=c?c:!0;
-null==b&&(b=this.getDeletableCells(this.getSelectionCells()));c&&(b=this.getDeletableCells(this.addAllEdges(b)));for(var d=[],f=0;f<b.length;f++){var g=b[f];A.isEdge(g)&&e(g)&&(d.push(g),g=A.getTerminal(g,!1));if(a(g)){var k=[];u.traverse(g,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&k.push(b);(null==b||c)&&k.push(a);return null==b||c});0<k.length&&(d=d.concat(k),g=u.getIncomingTreeEdges(b[f]),b=b.concat(g))}else null!=g&&d.push(b[f])}b=d;return z.apply(this,arguments)};p.hoverIcons.getStateAt=
-function(b,c,d){return a(b.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var y=u.duplicateCells;u.duplicateCells=function(b,c){b=null!=b?b:this.getSelectionCells();for(var d=b.slice(0),e=0;e<d.length;e++){var f=u.view.getState(d[e]);if(null!=f&&a(f.cell))for(var g=u.getIncomingTreeEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],b)}this.model.beginUpdate();try{var k=y.call(this,b,c);if(k.length==b.length)for(e=0;e<b.length;e++)if(a(b[e])){var m=u.getIncomingTreeEdges(k[e]),g=
-u.getIncomingTreeEdges(b[e]);if(0==m.length&&0<g.length){var l=this.cloneCell(g[0]);this.addEdge(l,u.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var M=u.moveCells;u.moveCells=function(b,c,d,e,f,g,k){var m=null;this.model.beginUpdate();try{var l=f,n=this.getCurrentCellStyle(f);if(null!=b&&a(f)&&"1"==mxUtils.getValue(n,"treeFolding","0")){for(var p=0;p<b.length;p++)if(a(b[p])||u.model.isEdge(b[p])&&null==u.model.getTerminal(b[p],!0)){f=u.model.getParent(b[p]);
-break}if(null!=l&&f!=l&&null!=this.view.getState(b[0])){var q=u.getIncomingTreeEdges(b[0]);if(0<q.length){var t=u.view.getState(u.model.getTerminal(q[0],!0));if(null!=t){var y=u.view.getState(l);null!=y&&(c=(y.getCenterX()-t.getCenterX())/u.view.scale,d=(y.getCenterY()-t.getCenterY())/u.view.scale)}}}}m=M.apply(this,arguments);if(null!=m&&null!=b&&m.length==b.length)for(p=0;p<m.length;p++)if(this.model.isEdge(m[p]))a(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[p],!0))&&this.model.setTerminal(m[p],
-l,!0);else if(a(b[p])&&(q=u.getIncomingTreeEdges(b[p]),0<q.length))if(!e)a(l)&&0>mxUtils.indexOf(b,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==u.getIncomingTreeEdges(m[p]).length){n=l;if(null==n||n==u.model.getParent(b[p]))n=u.model.getTerminal(q[0],!0);e=this.cloneCell(q[0]);this.addEdge(e,u.getDefaultParent(),n,m[p])}}finally{this.model.endUpdate()}return m};if(null!=p.sidebar){var L=p.sidebar.dropAndConnect;p.sidebar.dropAndConnect=function(b,c,d,e){var f=u.model,
-g=null;f.beginUpdate();try{if(g=L.apply(this,arguments),a(b))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],b,!0);var m=u.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var I={88:p.actions.get("selectChildren"),84:p.actions.get("selectSubtree"),80:p.actions.get("selectParent"),83:p.actions.get("selectSiblings")},G=p.onKeyDown;p.onKeyDown=function(b){try{if(u.isEnabled()&&
-!u.isEditing()&&a(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingTreeEdges(u.getSelectionCell()).length&&(9==b.which?d=mxEvent.isShiftDown(b)?f(u.getSelectionCell()):g(u.getSelectionCell()):13==b.which&&(d=c(u.getSelectionCell(),!mxEvent.isShiftDown(b))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length-1]),null!=p.hoverIcons&&p.hoverIcons.update(u.view.getState(u.getSelectionCell())),
-u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var e=I[b.keyCode];null!=e&&(e.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(k(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(k(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(k(u.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(k(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(b))}}catch(C){p.handleError(C)}mxEvent.isConsumed(b)||G.apply(this,arguments)};var K=u.connectVertex;u.connectVertex=function(b,d,e,k,m,l,n){var p=u.getIncomingTreeEdges(b);if(a(b)){var t=q(b),y=t==mxConstants.DIRECTION_EAST||t==mxConstants.DIRECTION_WEST,x=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return t==d||0==p.length?g(b,d):y==x?f(b):c(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};u.getSubtree=function(c){var d=
-[c];!b(c)&&!a(c)||t(c)||u.traverse(c,!0,function(a,b){var c=null!=b&&u.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!t(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
+(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,l){l.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(l.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&l.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,d){return 0>mxUtils.indexOf(b,
+a)?d:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,l));return l};a.beforeDecode=function(a,b,l){l.ui=a.ui;l.relatedPage=l.ui.getPageById(b.getAttribute("relatedPage"));if(null==l.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));l.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(l.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState"));
+b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(l.relatedPage.root=a.decodeCell(d,!1),l=d.nextSibling,d.parentNode.removeChild(d),d=l;null!=d;){l=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var e=d.getAttribute("id");null==a.lookup(e)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=l}}return b};a.afterDecode=function(a,b,l){l.index=l.previousIndex;return l};mxCodecRegistry.register(a)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var a=Graph.prototype.foldCells;Graph.prototype.foldCells=function(b,e,m,u,q){e=null!=e?e:!1;null==m&&(m=this.getFoldableCells(this.getSelectionCells(),b));this.stopEditing();this.model.beginUpdate();try{for(var c=m.slice(),d=0;d<m.length;d++)"1"==mxUtils.getValue(this.getCurrentCellStyle(m[d]),"treeFolding","0")&&this.foldTreeCell(b,m[d]);m=c;m=a.apply(this,arguments)}finally{this.model.endUpdate()}return m};Graph.prototype.foldTreeCell=
+function(a,b){this.model.beginUpdate();try{var d=[];this.traverse(b,!0,mxUtils.bind(this,function(a,c){var e=null!=c&&this.isTreeEdge(c);e&&d.push(c);a==b||null!=c&&!e||d.push(a);return(null==c||e)&&(a==b||!this.model.isCollapsed(a))}));this.model.setCollapsed(b,a);for(var e=0;e<d.length;e++)this.model.setVisible(d[e],!a)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(a){return!this.isEdgeIgnored(a)};Graph.prototype.getTreeEdges=function(a,b,e,u,q,c){return this.model.filterCells(this.getEdges(a,
+b,e,u,q,c),mxUtils.bind(this,function(a){return this.isTreeEdge(a)}))};Graph.prototype.getIncomingTreeEdges=function(a,b){return this.getTreeEdges(a,b,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(a,b){return this.getTreeEdges(a,b,!1,!0,!1)};var b=EditorUi.prototype.init;EditorUi.prototype.init=function(){b.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function a(a){return A.isVertex(a)&&e(a)}function b(a){var b=
+!1;null!=a&&(b="1"==v.getCurrentCellStyle(a).treeMoving);return b}function e(a){var b=!1;null!=a&&(a=A.getParent(a),b=v.view.getState(a),b="tree"==(null!=b?b.style:v.getCellStyle(a)).containerType);return b}function u(a){var b=!1;null!=a&&(a=A.getParent(a),b=v.view.getState(a),v.view.getState(a),b=null!=(null!=b?b.style:v.getCellStyle(a)).childLayout);return b}function q(a){a=v.view.getState(a);if(null!=a){var b=v.getIncomingTreeEdges(a.cell);if(0<b.length&&(b=v.view.getState(b[0]),null!=b&&(b=b.absolutePoints,
+null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y==a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function c(a,b){b=null!=b?b:!0;v.model.beginUpdate();try{var c=v.model.getParent(a),d=v.getIncomingTreeEdges(a),e=v.cloneCells([d[0],a]);v.model.setTerminal(e[0],v.model.getTerminal(d[0],
+!0),!0);var f=q(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width-10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;v.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=v.view.getState(a),m=v.view.scale;if(null!=k){var n=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?n.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*m:n.y+=(b?
+a.geometry.height+10:-e[1].geometry.height-10)*m;var l=v.getOutgoingTreeEdges(v.model.getTerminal(d[0],!0));if(null!=l){for(var p=f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<l.length;t++){var u=v.model.getTerminal(l[t],!1);if(f==q(u)){var z=v.view.getState(u);u!=a&&null!=z&&(p&&b!=z.getCenterX()<k.getCenterX()||!p&&b!=z.getCenterY()<k.getCenterY())&&mxUtils.intersects(n,z)&&(d=10+Math.max(d,(Math.min(n.x+n.width,z.x+z.width)-Math.max(n.x,z.x))/m),g=10+Math.max(g,(Math.min(n.y+
+n.height,z.y+z.height)-Math.max(n.y,z.y))/m))}}p?g=0:d=0;for(t=0;t<l.length;t++)if(u=v.model.getTerminal(l[t],!1),f==q(u)&&(z=v.view.getState(u),u!=a&&null!=z&&(p&&b!=z.getCenterX()<k.getCenterX()||!p&&b!=z.getCenterY()<k.getCenterY()))){var D=[];v.traverse(z.cell,!0,function(a,b){var c=null!=b&&v.isTreeEdge(b);c&&D.push(b);(null==b||c)&&D.push(a);return null==b||c});v.moveCells(D,(b?1:-1)*d,(b?1:-1)*g)}}}return v.addCells(e,c)}finally{v.model.endUpdate()}}function f(a){v.model.beginUpdate();try{var b=
+q(a),c=v.getIncomingTreeEdges(a),d=v.cloneCells([c[0],a]);v.model.setTerminal(c[0],d[1],!1);v.model.setTerminal(d[0],d[1],!0);v.model.setTerminal(d[0],a,!1);var e=v.model.getParent(a),f=e.geometry,g=[];v.view.currentRoot!=e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);v.traverse(a,!0,function(a,b){var c=null!=b&&v.isTreeEdge(b);c&&g.push(b);(null==b||c)&&g.push(a);return null==b||c});var k=a.geometry.width+40,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?
+(k=0,m=-m):b==mxConstants.DIRECTION_WEST?(k=-k,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);v.moveCells(g,k,m);return v.addCells(d,e)}finally{v.model.endUpdate()}}function g(a,b){v.model.beginUpdate();try{var c=v.model.getParent(a),d=v.getIncomingTreeEdges(a),e=q(a);0==d.length&&(d=[v.createEdge(c,null,"",null,null,v.createCurrentEdgeStyle())],e=b);var f=v.cloneCells([d[0],a]);v.model.setTerminal(f[0],a,!0);if(null==v.model.getTerminal(f[0],!1)){v.model.setTerminal(f[0],f[1],!1);var g=v.getCellStyle(f[1]).newEdgeStyle;
+if(null!=g)try{var k=JSON.parse(g),m;for(m in k)v.setCellStyles(m,k[m],[f[0]]),"edgeStyle"==m&&"elbowEdgeStyle"==k[m]&&v.setCellStyles("elbow",e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[f[0]])}catch(fa){}}var d=v.getOutgoingTreeEdges(a),n=c.geometry,g=[];v.view.currentRoot==c&&(n=new mxRectangle);for(k=0;k<d.length;k++){var l=v.model.getTerminal(d[k],!1);null!=l&&g.push(l)}var p=v.view.getBounds(g),t=v.view.translate,u=v.view.scale;e==mxConstants.DIRECTION_SOUTH?
+(f[1].geometry.x=null==p?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(p.x+p.width)/u-t.x-n.x+10,f[1].geometry.y+=f[1].geometry.height-n.y+40):e==mxConstants.DIRECTION_NORTH?(f[1].geometry.x=null==p?a.geometry.x+(a.geometry.width-f[1].geometry.width)/2:(p.x+p.width)/u-t.x+-n.x+10,f[1].geometry.y-=f[1].geometry.height+n.y+40):(f[1].geometry.x=e==mxConstants.DIRECTION_WEST?f[1].geometry.x-(f[1].geometry.width+n.x+40):f[1].geometry.x+(f[1].geometry.width-n.x+40),f[1].geometry.y=null==p?a.geometry.y+
+(a.geometry.height-f[1].geometry.height)/2:(p.y+p.height)/u-t.y+-n.y+10);return v.addCells(f,c)}finally{v.model.endUpdate()}}function k(a,b,c){a=v.getOutgoingTreeEdges(a);c=v.view.getState(c);var d=[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=v.view.getState(v.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-
+c.y-c.height})}return d}function p(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?t.actions.get("selectParent").funct():c==b?(d=v.getOutgoingTreeEdges(a),null!=d&&0<d.length&&v.setSelectionCell(v.model.getTerminal(d[0],!1))):(c=v.getIncomingTreeEdges(a),null!=c&&0<c.length&&(d=k(v.model.getTerminal(c[0],!0),d,a),c=v.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||
+b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&v.setSelectionCell(d[c].cell)))))}var t=this,v=t.editor.graph,A=v.getModel(),F=t.menus.createPopupMenu;t.menus.createPopupMenu=function(b,c,d){F.apply(this,arguments);if(1==v.getSelectionCount()){c=v.getSelectionCell();var e=v.getOutgoingTreeEdges(c);b.addSeparator();0<e.length&&(a(v.getSelectionCell())&&this.addMenuItems(b,["selectChildren"],null,d),this.addMenuItems(b,["selectDescendants"],null,d));a(v.getSelectionCell())&&(b.addSeparator(),
+0<v.getIncomingTreeEdges(c).length&&this.addMenuItems(b,["selectSiblings","selectParent"],null,d))}};t.actions.addAction("selectChildren",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var a=v.getSelectionCell(),a=v.getOutgoingTreeEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(v.model.getTerminal(a[c],!1));v.setSelectionCells(b)}}},null,null,"Alt+Shift+X");t.actions.addAction("selectSiblings",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var a=v.getSelectionCell(),a=
+v.getIncomingTreeEdges(a);if(null!=a&&0<a.length&&(a=v.getOutgoingTreeEdges(v.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(v.model.getTerminal(a[c],!1));v.setSelectionCells(b)}}},null,null,"Alt+Shift+S");t.actions.addAction("selectParent",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var a=v.getSelectionCell(),a=v.getIncomingTreeEdges(a);null!=a&&0<a.length&&v.setSelectionCell(v.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");t.actions.addAction("selectDescendants",
+function(a,b){var c=v.getSelectionCell();if(v.isEnabled()&&v.model.isVertex(c)){if(null!=b&&mxEvent.isAltDown(b))v.setSelectionCells(v.model.getTreeEdges(c,null==b||!mxEvent.isShiftDown(b),null==b||!mxEvent.isControlDown(b)));else{var d=[];v.traverse(c,!0,function(a,c){var e=null!=c&&v.isTreeEdge(c);e&&d.push(c);null!=c&&!e||null!=b&&mxEvent.isShiftDown(b)||d.push(a);return null==c||e})}v.setSelectionCells(d)}},null,null,"Alt+Shift+D");var y=v.removeCells;v.removeCells=function(b,c){c=null!=c?c:!0;
+null==b&&(b=this.getDeletableCells(this.getSelectionCells()));c&&(b=this.getDeletableCells(this.addAllEdges(b)));for(var d=[],f=0;f<b.length;f++){var g=b[f];A.isEdge(g)&&e(g)&&(d.push(g),g=A.getTerminal(g,!1));if(a(g)){var k=[];v.traverse(g,!0,function(a,b){var c=null!=b&&v.isTreeEdge(b);c&&k.push(b);(null==b||c)&&k.push(a);return null==b||c});0<k.length&&(d=d.concat(k),g=v.getIncomingTreeEdges(b[f]),b=b.concat(g))}else null!=g&&d.push(b[f])}b=d;return y.apply(this,arguments)};t.hoverIcons.getStateAt=
+function(b,c,d){return a(b.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var z=v.duplicateCells;v.duplicateCells=function(b,c){b=null!=b?b:this.getSelectionCells();for(var d=b.slice(0),e=0;e<d.length;e++){var f=v.view.getState(d[e]);if(null!=f&&a(f.cell))for(var g=v.getIncomingTreeEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],b)}this.model.beginUpdate();try{var k=z.call(this,b,c);if(k.length==b.length)for(e=0;e<b.length;e++)if(a(b[e])){var m=v.getIncomingTreeEdges(k[e]),g=
+v.getIncomingTreeEdges(b[e]);if(0==m.length&&0<g.length){var l=this.cloneCell(g[0]);this.addEdge(l,v.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var L=v.moveCells;v.moveCells=function(b,c,d,e,f,g,k){var m=null;this.model.beginUpdate();try{var l=f,n=this.getCurrentCellStyle(f);if(null!=b&&a(f)&&"1"==mxUtils.getValue(n,"treeFolding","0")){for(var p=0;p<b.length;p++)if(a(b[p])||v.model.isEdge(b[p])&&null==v.model.getTerminal(b[p],!0)){f=v.model.getParent(b[p]);
+break}if(null!=l&&f!=l&&null!=this.view.getState(b[0])){var q=v.getIncomingTreeEdges(b[0]);if(0<q.length){var t=v.view.getState(v.model.getTerminal(q[0],!0));if(null!=t){var u=v.view.getState(l);null!=u&&(c=(u.getCenterX()-t.getCenterX())/v.view.scale,d=(u.getCenterY()-t.getCenterY())/v.view.scale)}}}}m=L.apply(this,arguments);if(null!=m&&null!=b&&m.length==b.length)for(p=0;p<m.length;p++)if(this.model.isEdge(m[p]))a(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[p],!0))&&this.model.setTerminal(m[p],
+l,!0);else if(a(b[p])&&(q=v.getIncomingTreeEdges(b[p]),0<q.length))if(!e)a(l)&&0>mxUtils.indexOf(b,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==v.getIncomingTreeEdges(m[p]).length){n=l;if(null==n||n==v.model.getParent(b[p]))n=v.model.getTerminal(q[0],!0);e=this.cloneCell(q[0]);this.addEdge(e,v.getDefaultParent(),n,m[p])}}finally{this.model.endUpdate()}return m};if(null!=t.sidebar){var M=t.sidebar.dropAndConnect;t.sidebar.dropAndConnect=function(b,c,d,e){var f=v.model,
+g=null;f.beginUpdate();try{if(g=M.apply(this,arguments),a(b))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],b,!0);var m=v.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var G={88:t.actions.get("selectChildren"),84:t.actions.get("selectSubtree"),80:t.actions.get("selectParent"),83:t.actions.get("selectSiblings")},J=t.onKeyDown;t.onKeyDown=function(b){try{if(v.isEnabled()&&
+!v.isEditing()&&a(v.getSelectionCell())&&1==v.getSelectionCount()){var d=null;0<v.getIncomingTreeEdges(v.getSelectionCell()).length&&(9==b.which?d=mxEvent.isShiftDown(b)?f(v.getSelectionCell()):g(v.getSelectionCell()):13==b.which&&(d=c(v.getSelectionCell(),!mxEvent.isShiftDown(b))));if(null!=d&&0<d.length)1==d.length&&v.model.isEdge(d[0])?v.setSelectionCell(v.model.getTerminal(d[0],!1)):v.setSelectionCell(d[d.length-1]),null!=t.hoverIcons&&t.hoverIcons.update(v.view.getState(v.getSelectionCell())),
+v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(b);else if(mxEvent.isAltDown(b)&&mxEvent.isShiftDown(b)){var e=G[b.keyCode];null!=e&&(e.funct(b),mxEvent.consume(b))}else 37==b.keyCode?(p(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(b)):38==b.keyCode?(p(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(b)):39==b.keyCode?(p(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(b)):40==b.keyCode&&(p(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
+mxEvent.consume(b))}}catch(C){t.handleError(C)}mxEvent.isConsumed(b)||J.apply(this,arguments)};var H=v.connectVertex;v.connectVertex=function(b,d,e,k,m,l,p){var n=v.getIncomingTreeEdges(b);if(a(b)){var t=q(b),u=t==mxConstants.DIRECTION_EAST||t==mxConstants.DIRECTION_WEST,z=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return t==d||0==n.length?g(b,d):u==z?f(b):c(b,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return H.apply(this,arguments)};v.getSubtree=function(c){var d=
+[c];!b(c)&&!a(c)||u(c)||v.traverse(c,!0,function(a,b){var c=null!=b&&v.isTreeEdge(b);c&&0>mxUtils.indexOf(d,b)&&d.push(b);(null==b||c)&&0>mxUtils.indexOf(d,a)&&d.push(a);return null==b||c});return d};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);(b(this.state.cell)||a(this.state.cell))&&!u(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);
-this.graph.isMouseDown=!0;p.hoverIcons.reset();mxEvent.consume(a)})))};var J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){J.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var H=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){H.apply(this,
-arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var X=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){X.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var e=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=e.apply(this,arguments),b=this.graph;return a.concat([this.addEntry("tree container",
+this.graph.isMouseDown=!0;t.hoverIcons.reset();mxEvent.consume(a)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var I=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){I.apply(this,
+arguments);null!=this.moveHandle&&(this.moveHandle.style.display=a?"":"none")};var R=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){R.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var e=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=e.apply(this,arguments),b=this.graph;return a.concat([this.addEntry("tree container",
function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.vertex=!0;var d=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
d.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!0);d.insertEdge(c,!1);a.insert(c);a.insert(b);a.insert(d);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");
a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');b.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
d.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!0);d.insertEdge(c,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var m=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-m.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");k.geometry.relative=!0;k.edge=!0;b.insertEdge(k,!0);m.insertEdge(k,!1);var n=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
-n.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");u.geometry.relative=!0;u.edge=!0;b.insertEdge(u,!0);n.insertEdge(u,!1);a.insert(c);a.insert(g);a.insert(k);a.insert(u);a.insert(b);a.insert(d);a.insert(e);a.insert(m);a.insert(n);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",
+e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+k.vertex=!0;var l=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");l.geometry.relative=!0;l.edge=!0;b.insertEdge(l,!0);k.insertEdge(l,!1);var t=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
+t.vertex=!0;var v=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");v.geometry.relative=!0;v.edge=!0;b.insertEdge(v,!0);t.insertEdge(v,!1);a.insert(c);a.insert(g);a.insert(l);a.insert(v);a.insert(b);a.insert(d);a.insert(e);a.insert(k);a.insert(t);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var a=new mxCell("Central Idea",
new mxGeometry(0,0,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};treeFolding=1;treeMoving=1;');a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap mindmaps sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),'swimlane;html=1;startSize=20;horizontal=1;containerType=tree;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
@@ -3804,30 +3806,30 @@ this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,argume
Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
"0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight="1"==urlParams.sketch?1:46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert="1"!=urlParams.sketch&&!mxClient.IS_IOS&&!mxClient.IS_ANDROID;
-EditorUi.prototype.setDarkMode=function(a){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(a);mxSettings.settings.darkMode=a;mxSettings.save();this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var n=document.createElement("link");n.setAttribute("rel","stylesheet");n.setAttribute("href",STYLE_PATH+"/dark.css");n.setAttribute("charset","UTF-8");n.setAttribute("type","text/css");EditorUi.prototype.doSetDarkMode=
+EditorUi.prototype.setDarkMode=function(a){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(a);mxSettings.settings.darkMode=a;mxSettings.save();this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var l=document.createElement("link");l.setAttribute("rel","stylesheet");l.setAttribute("href",STYLE_PATH+"/dark.css");l.setAttribute("charset","UTF-8");l.setAttribute("type","text/css");EditorUi.prototype.doSetDarkMode=
function(a){if(Editor.darkMode!=a){var b=this.editor.graph;Editor.darkMode=a;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";this.setGridColor(Editor.isDarkMode()?b.view.defaultDarkGridColor:b.view.defaultGridColor);b.defaultPageBackgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";b.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";b.defaultThemeName=Editor.isDarkMode()?"darkTheme":"default-style2";b.graphHandler.previewColor=Editor.isDarkMode()?"#cccccc":"black";b.loadStylesheet();
Dialog.backdropColor=Editor.isDarkMode()?"#2a2a2a":"white";StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?"#2a2a2a":"white";Format.inactiveTabBackgroundColor=Editor.isDarkMode()?"black":"#f0f0f0";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&
-mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;document.body.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";l.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==n.parentNode&&document.getElementsByTagName("head")[0].appendChild(n):null!=n.parentNode&&n.parentNode.removeChild(n)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }"+(Editor.isDarkMode()?"html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }":
+mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;document.body.style.backgroundColor=Editor.isDarkMode()?"#2a2a2a":"#ffffff";m.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==l.parentNode&&document.getElementsByTagName("head")[0].appendChild(l):null!=l.parentNode&&l.parentNode.removeChild(l)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }"+(Editor.isDarkMode()?"html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }":
"html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+"html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: "+
(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: "+(Editor.isDarkMode()?"#cccccc":"#353535")+" !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geTabContainer { border-bottom:1px solid lightgray; border-top:1px solid lightgray; }.geToolbarContainer, .geTabContainer { background: "+
(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; }div.geSidebarContainer { background-color: "+(Editor.isDarkMode()?"#2a2a2a":"#fff")+"; }div.geSidebarContainer .geTitle { background-color: "+(Editor.isDarkMode()?"#2a2a2a":"#fdfdfd")+"; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:"+
-(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: "+
+(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow *:not(svg *) { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: "+
(Editor.isDarkMode()?"#2a2a2a":"rgb(249, 249, 249)")+" !important; color: #A0A0A0 !important; } html div.geActivePage { background: "+(Editor.isDarkMode()?"#2a2a2a":"#fff")+" !important; "+(Editor.isDarkMode()?"":"color: #353535 !important; } ")+"html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: "+
(Editor.isDarkMode()?"#cccccc":"#353535")+"; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: "+(Editor.isDarkMode()?"#000000":"#29b6f2")+"; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: "+(Editor.isDarkMode()?"#cccccc":"#ffffff")+" !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }html body td.mxWindowTitle { padding-right: 14px; }html td.mxWindowTitle div img { padding: 8px 4px; }html td.mxWindowTitle div { top: 0px !important; }"+
-(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"html .geStatusAlertOrange, html .geStatusAlert { margin-top: -2px; }a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var l=document.createElement("style");l.type="text/css";l.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(l);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
-function(){return!1};var t=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");t.apply(this,arguments)};var q=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){q.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var c=
+(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"html .geStatusAlertOrange, html .geStatusAlert { margin-top: -2px; }a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var m=document.createElement("style");m.type="text/css";m.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(m);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
+function(){return!1};var u=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");u.apply(this,arguments)};var q=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){q.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var c=
Menus.prototype.addShortcut;Menus.prototype.addShortcut=function(a,b){null!=b.shortcut&&900>e&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):c.apply(this,arguments)};var f=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){f.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="position:relative;margin-right:4px;cursor:pointer;display:"+a.style.display;a.className="geToolbarButton";a.innerHTML="";a.style.backgroundImage=
"url("+Editor.userImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";a.style.cssFloat="right";a.setAttribute("title",mxResources.get("changeUser"));"none"!=a.style.display&&(a.style.display="inline-block")}};var g=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){g.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText=
"display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";a.className="geToolbarButton";a.innerHTML="";a.style.backgroundImage="url("+Editor.shareImage+")";a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";"1"==urlParams.sketch&&(this.shareButton.style.display="none")}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.buttonContainer){var a=document.createElement("div");
a.style.display="inline-block";a.style.position="relative";a.style.marginTop="8px";a.style.marginRight="4px";var b=document.createElement("a");b.className="geMenuItem gePrimaryBtn";b.style.marginLeft="8px";b.style.padding="6px";"1"==urlParams.noSaveBtn?(mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b)):(mxUtils.write(b,mxResources.get("save")),
b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),a.appendChild(b),"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
-a.appendChild(b)));"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("exit")),b.setAttribute("title",mxResources.get("exit")),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b));this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};var m=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=
-function(a,b){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,a)){var c=mxUtils.getOffset(this.editorUi.picker);c.x+=this.editorUi.picker.offsetWidth+4;c.y+=a.offsetTop-b.height/2+16;return c}var d=m.apply(this,arguments),c=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);d.x+=c.x-16;d.y+=c.y;return d};var k=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;k.apply(this,arguments);
+a.appendChild(b)));"1"!=urlParams.noExitBtn&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("exit")),b.setAttribute("title",mxResources.get("exit")),b.className="geMenuItem",b.style.marginLeft="6px",b.style.padding="6px",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),a.appendChild(b));this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};var k=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=
+function(a,b){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,a)){var c=mxUtils.getOffset(this.editorUi.picker);c.x+=this.editorUi.picker.offsetWidth+4;c.y+=a.offsetTop-b.height/2+16;return c}var d=k.apply(this,arguments),c=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);d.x+=c.x-16;d.y+=c.y;return d};var p=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;p.apply(this,arguments);
"1"==urlParams.sketch?d.isSelectionEmpty()&&d.isEnabled()&&(a.addSeparator(),this.addSubmenu("view",a,null,mxResources.get("options"))):1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-","editGeometry","edit"],null,c),d.isCellFoldable(d.getSelectionCell())&&this.addMenuItems(a,d.isCellCollapsed(b)?["expand"]:["collapse"],null,c),this.addMenuItems(a,["collapsible","-","lockUnlock","enterGroup"],null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?
-(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),a.addSeparator(),this.addSubmenu("insert",a),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};var p=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(a,b,c){p.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(a,
-["copyAsImage"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=b?b:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var u=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),
+(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("layout",a),this.addSubmenu("view",a,null,mxResources.get("options")),a.addSeparator(),this.addSubmenu("insert",a),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};var t=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(a,b,c){t.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(a,
+["copyAsImage"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=b?b:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var v=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),
this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=
-null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),this.menus.findReplaceWindow=null);u.apply(this,arguments)};var A=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){A.apply(this,arguments);if(a){var b=window.innerWidth||document.documentElement.clientWidth||
+null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),this.menus.findReplaceWindow=null);v.apply(this,arguments)};var A=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){A.apply(this,arguments);if(a){var b=window.innerWidth||document.documentElement.clientWidth||
document.body.clientWidth;1E3<=b&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=b||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1)};EditorUi.prototype.chromelessWindowResize=function(){};var F=Menus.prototype.init;Menus.prototype.init=function(){F.apply(this,arguments);var c=
this.editorUi,d=c.editor.graph;c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("createShape").label=mxResources.get("shape")+"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.get("forkme").visible="1"!=urlParams.sketch;c.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var e=c.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(){c.setDarkMode(!Editor.darkMode)}));
e.setToggleAction(!0);e.setSelectedCallback(function(){return Editor.isDarkMode()});c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text",
@@ -3838,60 +3840,60 @@ EditorUi.isElectronApp||null==d||d.constructor==LocalFile||c.menus.addMenuItems(
c.menus.addMenuItems(a,["tags"],b);"1"!=urlParams.sketch&&null!=d&&null!=c.fileNode&&(d=null!=d.getTitle()?d.getTitle():c.defaultFilename,/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||this.addMenuItems(a,["-","properties"]));mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);"1"==urlParams.sketch&&(c.menus.addSubmenu("extras",a,b,mxResources.get("preferences")),a.addSeparator(b));c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):
c.menus.addMenuItems(a,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["save","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
null==d||d.constructor==LocalFile||c.menus.addMenuItems(a,["-","synchronize"],b);c.menus.addMenuItems(a,["-","autosave"],b);null!=d&&d.isRevisionHistorySupported()&&c.menus.addMenuItems(a,["-","revisionHistory"],b)})));var f=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){f.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var g=this.get("language");this.put("table",
-new Menu(mxUtils.bind(this,function(a,b){c.menus.addInsertTableCellItem(a,b)})));this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=g&&c.menus.addSubmenu("language",a,b);c.menus.addSubmenu("units",a,b);"1"==urlParams.sketch?c.menus.addMenuItems(a,["-","configuration","-","showStartScreen"],b):(a.addSeparator(b),c.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],b),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&
-c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b),!c.isOfflineApp()&&isLocalStorage&&c.menus.addMenuItem(a,"plugins",b),a.addSeparator(b),c.menus.addMenuItem(a,"configuration",b));a.addSeparator(b)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxUtils.bind(this,function(){var a=this.get("insert"),b=a.funct;a.funct=function(a,d){"1"==
-urlParams.sketch?(c.menus.addMenuItems(a,["insertFreehand"],d),c.insertTemplateEnabled&&!c.isOffline()&&c.menus.addMenuItems(a,["insertTemplate"],d)):(b.apply(this,arguments),c.menus.addSubmenu("table",a,d),a.addSeparator(d));c.menus.addMenuItems(a,["-","toggleShapes"],d)}})();var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),m=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,
-620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):m(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d=c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://www.diagrams.net/doc/faq/math-typesetting")}c.menus.addMenuItems(a,
-["copyConnect","collapseExpand","-","pageScale"],b);"1"!=urlParams.sketch&&c.menus.addMenuItems(a,["-","fullscreen","toggleDarkMode"],b)})))};EditorUi.prototype.installFormatToolbar=function(a){var b=this.editor.graph,c=document.createElement("div");c.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";b.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,
-function(d,e){0<b.getSelectionCount()?(a.appendChild(c),c.innerHTML="Selected: "+b.getSelectionCount()):null!=c.parentNode&&c.parentNode.removeChild(c)}))};var z=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(a,b,c){var d=l.menus.get(a),e=t.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),q);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";e.style.top="6px";e.style.marginRight="6px";e.style.height=
-"30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));l.menus.menuCreated(d,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition="right 6px center",e.style.backgroundRepeat=
-"no-repeat",e.style.paddingRight="22px");return e}function d(a,b,c,d,e,f){var g=document.createElement("a");g.className="geMenuItem";g.style.display="inline-block";g.style.boxSizing="border-box";g.style.height="30px";g.style.padding="6px";g.style.position="relative";g.style.verticalAlign="top";g.style.top="0px";"1"==urlParams.sketch&&(g.style.borderStyle="none",g.style.boxShadow="none",g.style.padding="6px",g.style.margin="0px");null!=l.statusContainer?p.insertBefore(g,l.statusContainer):p.appendChild(g);
-null!=f?(g.style.backgroundImage="url("+f+")",g.style.backgroundPosition="center center",g.style.backgroundRepeat="no-repeat",g.style.backgroundSize="24px 24px",g.style.width="34px"):mxUtils.write(g,a);mxEvent.addListener(g,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(g,"click",function(a){"disabled"!=g.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(g.style.marginRight="4px");null!=d&&g.setAttribute("title",d);
-null!=e&&(a=function(){e.isEnabled()?(g.removeAttribute("disabled"),g.style.cursor="pointer"):(g.setAttribute("disabled","disabled"),g.style.cursor="default")},e.addListener("stateChanged",a),a());return g}function f(a,b,c){c=document.createElement("div");c.className="geMenuItem";c.style.display="inline-block";c.style.verticalAlign="top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position="relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow=
-"none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(c,l.statusContainer):p.appendChild(c);return c}function g(){for(var a=p.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&"geItem"!=a.className||a.parentNode.removeChild(a);a=b}q=p.firstChild;
-e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>e||"1"==urlParams.sketch)||c("diagram");if("1"!=urlParams.sketch&&(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,d(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
+new Menu(mxUtils.bind(this,function(a,b){c.menus.addInsertTableCellItem(a,b)})));var k=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(a,b){k.funct(a,b);this.addMenuItems(a,["editDiagram"],b)})));this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=g&&c.menus.addSubmenu("language",a,b);c.menus.addSubmenu("units",a,b);"1"==urlParams.sketch?c.menus.addMenuItems(a,["-","configuration","-","showStartScreen"],
+b):(a.addSeparator(b),c.menus.addMenuItems(a,["scrollbars","tooltips","ruler"],b),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b),!c.isOfflineApp()&&isLocalStorage&&c.menus.addMenuItem(a,"plugins",b),a.addSeparator(b),c.menus.addMenuItem(a,"configuration",b));a.addSeparator(b)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),
+b)})));mxUtils.bind(this,function(){var a=this.get("insert"),b=a.funct;a.funct=function(a,d){"1"==urlParams.sketch?(c.menus.addMenuItems(a,["insertFreehand"],d),c.insertTemplateEnabled&&!c.isOffline()&&c.menus.addMenuItems(a,["insertTemplate"],d)):(b.apply(this,arguments),c.menus.addSubmenu("table",a,d),a.addSeparator(d));c.menus.addMenuItems(a,["-","toggleShapes"],d)}})();var m="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),l=function(a,b,d,e){a.addItem(d,
+null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<m.length;c++)"-"==m[c]?a.addSeparator(b):l(a,b,mxResources.get(m[c])+"...",m[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides ruler - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d=c.menus.addMenuItem(a,
+"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://www.diagrams.net/doc/faq/math-typesetting")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b);"1"!=urlParams.sketch&&c.menus.addMenuItems(a,["-","fullscreen","toggleDarkMode"],b)})))};EditorUi.prototype.installFormatToolbar=function(a){var b=this.editor.graph,c=document.createElement("div");c.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";
+b.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(d,e){0<b.getSelectionCount()?(a.appendChild(c),c.innerHTML="Selected: "+b.getSelectionCount()):null!=c.parentNode&&c.parentNode.removeChild(c)}))};var y=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(a,b,c){var d=l.menus.get(a),e=u.addMenu(mxResources.get(a),mxUtils.bind(this,function(){d.funct.apply(this,arguments)}),t);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";
+e.style.top="6px";e.style.marginRight="6px";e.style.height="30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.style.cursor="pointer";e.setAttribute("title",mxResources.get(a));l.menus.menuCreated(d,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML=""):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition=
+"right 6px center",e.style.backgroundRepeat="no-repeat",e.style.paddingRight="22px");return e}function d(a,b,c,d,e,f){var g=document.createElement("a");g.className="geMenuItem";g.style.display="inline-block";g.style.boxSizing="border-box";g.style.height="30px";g.style.padding="6px";g.style.position="relative";g.style.verticalAlign="top";g.style.top="0px";"1"==urlParams.sketch&&(g.style.borderStyle="none",g.style.boxShadow="none",g.style.padding="6px",g.style.margin="0px");null!=l.statusContainer?
+q.insertBefore(g,l.statusContainer):q.appendChild(g);null!=f?(g.style.backgroundImage="url("+f+")",g.style.backgroundPosition="center center",g.style.backgroundRepeat="no-repeat",g.style.backgroundSize="24px 24px",g.style.width="34px"):mxUtils.write(g,a);mxEvent.addListener(g,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));mxEvent.addListener(g,"click",function(a){"disabled"!=g.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(g.style.marginRight=
+"4px");null!=d&&g.setAttribute("title",d);null!=e&&(a=function(){e.isEnabled()?(g.removeAttribute("disabled"),g.style.cursor="pointer"):(g.setAttribute("disabled","disabled"),g.style.cursor="default")},e.addListener("stateChanged",a),p.addListener("enabledChanged",a),a());return g}function f(a,b,c){c=document.createElement("div");c.className="geMenuItem";c.style.display="inline-block";c.style.verticalAlign="top";c.style.marginRight="6px";c.style.padding="0 4px 0 4px";c.style.height="30px";c.style.position=
+"relative";c.style.top="0px";"1"==urlParams.sketch&&(c.style.boxShadow="none");for(var d=0;d<a.length;d++)null!=a[d]&&("1"==urlParams.sketch&&(a[d].style.padding="10px 8px",a[d].style.width="30px"),a[d].style.margin="0px",a[d].style.boxShadow="none",c.appendChild(a[d]));null!=b&&mxUtils.setOpacity(c,b);null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(c,l.statusContainer):q.appendChild(c);return c}function g(){for(var a=q.firstChild;null!=a;){var b=a.nextSibling;"geMenuItem"!=a.className&&
+"geItem"!=a.className||a.parentNode.removeChild(a);a=b}t=q.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(a=1E3>e||"1"==urlParams.sketch)||c("diagram");if("1"!=urlParams.sketch&&(f([a?c("diagram",null,IMAGE_PATH+"/drawlogo.svg"):null,d(mxResources.get("shapes"),l.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":
null),d(mxResources.get("format"),l.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+l.actions.get("formatPanel").shortcut+")",l.actions.get("image"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
-null)],a?60:null),b=c("insert",!0,a?D:null),f([b,d(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":null)],a?60:null),411<=e&&(f([fa,R],60),520<=e&&(f([ya,640<=e?d("",ca.funct,
-!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ca,na):null,640<=e?d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,P):null],60),720<=e)))){var g=d("",da.funct,null,mxResources.get("dark"),da,Editor.isDarkMode()?ra:la);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ra:la)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(g,l.statusContainer):p.appendChild(g)}a=l.menus.get("language");
-null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==ta&&(b=t.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",
-b.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(b),ta=b),l.buttonContainer.style.paddingRight="34px"):(l.buttonContainer.style.paddingRight="4px",null!=ta&&(ta.parentNode.removeChild(ta),ta=null))}z.apply(this,arguments);this.doSetDarkMode(mxSettings.settings.darkMode);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=
+null)],a?60:null),b=c("insert",!0,a?E:null),f([b,d(mxResources.get("delete"),l.actions.get("delete").funct,null,mxResources.get("delete"),l.actions.get("delete"),a?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":null)],a?60:null),411<=e&&(f([ea,S],60),520<=e&&(f([ya,640<=e?d("",ba.funct,
+!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ba,na):null,640<=e?d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,Q):null],60),720<=e)))){var g=d("",ca.funct,null,mxResources.get("dark"),ca,Editor.isDarkMode()?ra:ja);g.style.opacity="0.4";l.addListener("darkModeChanged",mxUtils.bind(this,function(){g.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));null!=l.statusContainer&&"1"!=urlParams.sketch?q.insertBefore(g,l.statusContainer):q.appendChild(g)}a=l.menus.get("language");
+null!=a&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==ta&&(b=u.addMenu("",a.funct),b.setAttribute("title",mxResources.get("language")),b.className="geToolbarButton",b.style.backgroundImage="url("+Editor.globeImage+")",b.style.backgroundPosition="center center",b.style.backgroundRepeat="no-repeat",b.style.backgroundSize="24px 24px",b.style.position="absolute",b.style.height="24px",b.style.width="24px",b.style.zIndex="1",b.style.right="8px",b.style.cursor="pointer",
+b.style.top="1"==urlParams.embed?"12px":"11px",q.appendChild(b),ta=b),l.buttonContainer.style.paddingRight="34px"):(l.buttonContainer.style.paddingRight="4px",null!=ta&&(ta.parentNode.removeChild(ta),ta=null))}y.apply(this,arguments);this.doSetDarkMode(mxSettings.settings.darkMode);var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";k.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=
this.createSidebar(k);"1"==urlParams.sketch&&(this.toggleScratchpad(),this.editor.graph.isZoomWheelEvent=function(a){return!mxEvent.isAltDown(a)&&(!mxEvent.isControlDown(a)||mxClient.IS_MAC)});if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])b(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));this.keyHandler.bindAction(75,
!0,"toggleShapes",!0);if("1"==urlParams.sketch||1E3<=e)if(a(this,!0),"1"==urlParams.sketch){this.formatWindow.window.setClosable(!1);var m=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){m.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=parseInt(this.div.style.left)-
-150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,n=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(l,p);l.statusContainer=l.createStatusContainer();l.statusContainer.style.position=
-"relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var u=l.hideCurrentMenu;l.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var A=l.descriptorChanged;l.descriptorChanged=function(){A.apply(this,arguments);var a=l.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":
-"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);p.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else p.removeAttribute("title")};l.setStatusText(l.editor.getStatus());p.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(l.buttonContainer);l.menubarContainer=
-l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,C=document.createElement("div");C.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var F=l.menus.get("viewZoom"),
-D="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
-U="1"==urlParams.sketch?document.createElement("div"):null,Z="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){if(null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch)){this.scratchpad=null;this.toggleScratchpad();var a=l.actions.outlineWindow;
-null!=a&&(a.outline.outline.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),l.actions.outlineWindow.update())}n.refresh();n.view.validateBackground()}));if("1"==urlParams.sketch){if(null!=n.freehand){n.freehand.setAutoInsert(!0);n.freehand.setAutoScroll(!0);n.freehand.setOpenFill(!0);var ma=n.freehand.createStyle;n.freehand.createStyle=function(a){return ma.apply(this,arguments)+"sketch=0;"};Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&
-!mxEvent.isMouseEvent(b)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=l.hoverIcons){var pa=l.hoverIcons.update;l.hoverIcons.update=function(){n.freehand.isDrawing()||pa.apply(this,arguments)}}}Z.className="geToolbarContainer";U.className="geToolbarContainer";Y.className="geToolbarContainer";p.className="geToolbarContainer";l.picker=Z;var aa=!1;mxEvent.addListener(p,"mouseenter",function(){l.statusContainer.style.display=
-"inline-block"});mxEvent.addListener(p,"mouseleave",function(){aa||(l.statusContainer.style.display="none")});var ja=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):l.notificationBtn.removeAttribute("title"))});l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=
-l.statusContainer.firstChild?ja(l.statusContainer.firstChild.getAttribute("title")):ja(l.editor.getStatus());var a=l.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=l.notificationBtn&&l.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',l.statusContainer.style.display="inline-block",aa=!0):(l.statusContainer.style.display="none",
-aa=!1)}else l.statusContainer.style.display="inline-block",ja(null),aa=!0}));N=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");N.style.boxShadow="none";N.style.opacity="0.4";N.style.padding="6px";N.style.margin="0px";Y.appendChild(N);l.statusContainer.style.position="";l.statusContainer.style.display="none";l.statusContainer.style.margin="0px";l.statusContainer.style.padding="6px 0px";l.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";l.statusContainer.style.display="inline-block";l.statusContainer.style.textOverflow=
-"ellipsis";l.buttonContainer.style.position="";l.buttonContainer.style.paddingRight="0px";l.buttonContainer.style.display="inline-block";var ka=mxUtils.bind(this,function(){function a(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=null!=c?c:"default";a.style.margin="2px 0px";Z.appendChild(a);mxUtils.br(Z);return a}function b(b,c,e){b=d("",b.funct,null,c,b,e);b.style.width="40px";return a(b,null,"pointer")}Z.innerHTML="";a(l.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",
+150+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(){this.formatWindow.window.toggleMinimized()}));this.formatWindow.window.toggleMinimized()}var l=this,p=l.editor.graph;l.toolbar=this.createToolbar(l.createDiv("geToolbar"));l.defaultLibraryName=mxResources.get("untitledLibrary");var q=document.createElement("div");q.className="geMenubarContainer";var t=null,u=new Menubar(l,q);l.statusContainer=l.createStatusContainer();l.statusContainer.style.position=
+"relative";l.statusContainer.style.maxWidth="";l.statusContainer.style.marginTop="7px";l.statusContainer.style.marginLeft="6px";l.statusContainer.style.color="gray";l.statusContainer.style.cursor="default";var n=l.hideCurrentMenu;l.hideCurrentMenu=function(){n.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=l.descriptorChanged;l.descriptorChanged=function(){v.apply(this,arguments);var a=l.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=a.getMode();"google"==b?b="googleDrive":
+"github"==b?b="gitHub":"gitlab"==b?b="gitLab":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);q.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else q.removeAttribute("title")};l.setStatusText(l.editor.getStatus());q.appendChild(l.statusContainer);l.buttonContainer=document.createElement("div");l.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";q.appendChild(l.buttonContainer);l.menubarContainer=
+l.buttonContainer;l.tabContainer=document.createElement("div");l.tabContainer.className="geTabContainer";l.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var k=l.diagramContainer.parentNode,A=document.createElement("div");A.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";l.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var F=l.menus.get("viewZoom"),
+E="1"!=urlParams.sketch?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==",
+U="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null,X="1"==urlParams.sketch?document.createElement("div"):null;l.addListener("darkModeChanged",mxUtils.bind(this,function(){if(null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch)){this.scratchpad=null;this.toggleScratchpad();var a=l.actions.outlineWindow;
+null!=a&&(a.outline.outline.stylesheet.styles=mxUtils.clone(p.stylesheet.styles),l.actions.outlineWindow.update())}p.refresh();p.view.validateBackground()}));if("1"==urlParams.sketch){if(null!=p.freehand){p.freehand.setAutoInsert(!0);p.freehand.setAutoScroll(!0);p.freehand.setOpenFill(!0);var ma=p.freehand.createStyle;p.freehand.createStyle=function(a){return ma.apply(this,arguments)+"sketch=0;"};Graph.touchStyle&&(p.panningHandler.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&
+!mxEvent.isMouseEvent(b)&&!p.freehand.isDrawing()||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))});if(null!=l.hoverIcons){var pa=l.hoverIcons.update;l.hoverIcons.update=function(){p.freehand.isDrawing()||pa.apply(this,arguments)}}}Y.className="geToolbarContainer";U.className="geToolbarContainer";X.className="geToolbarContainer";q.className="geToolbarContainer";l.picker=Y;var Z=!1;mxEvent.addListener(q,"mouseenter",function(){l.statusContainer.style.display=
+"inline-block"});mxEvent.addListener(q,"mouseleave",function(){Z||(l.statusContainer.style.display="none")});var ha=mxUtils.bind(this,function(a){null!=l.notificationBtn&&(null!=a?l.notificationBtn.setAttribute("title",a):l.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed&&l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus());if(0==l.statusContainer.children.length||1==l.statusContainer.children.length&&null==l.statusContainer.firstChild.getAttribute("class")){null!=
+l.statusContainer.firstChild?ha(l.statusContainer.firstChild.getAttribute("title")):ha(l.editor.getStatus());var a=l.getCurrentFile(),a=null!=a?a.savingStatusKey:DrawioFile.prototype.savingStatusKey;null!=l.notificationBtn&&l.notificationBtn.getAttribute("title")==mxResources.get(a)+"..."?(l.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(a))+'..."src="'+IMAGE_PATH+'/spin.gif">',l.statusContainer.style.display="inline-block",Z=!0):(l.statusContainer.style.display="none",
+Z=!1)}else l.statusContainer.style.display="inline-block",ha(null),Z=!0}));P=c("diagram",null,IMAGE_PATH+"/drawlogo.svg");P.style.boxShadow="none";P.style.opacity="0.4";P.style.padding="6px";P.style.margin="0px";X.appendChild(P);l.statusContainer.style.position="";l.statusContainer.style.display="none";l.statusContainer.style.margin="0px";l.statusContainer.style.padding="6px 0px";l.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";l.statusContainer.style.display="inline-block";l.statusContainer.style.textOverflow=
+"ellipsis";l.buttonContainer.style.position="";l.buttonContainer.style.paddingRight="0px";l.buttonContainer.style.display="inline-block";var ia=mxUtils.bind(this,function(){function a(a,b,c){null!=b&&a.setAttribute("title",b);a.style.cursor=null!=c?c:"default";a.style.margin="2px 0px";Y.appendChild(a);mxUtils.br(Y);return a}function b(b,c,e){b=d("",b.funct,null,c,b,e);b.style.width="40px";return a(b,null,"pointer")}Y.innerHTML="";a(l.sidebar.createVertexTemplate("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;",
40,20,"Text",mxResources.get("text"),!0,!0,null,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");a(l.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;sketch=1;shadow=1;size=20;fontSize=24;jiggle=2;pointerEvents=1;",140,160,"",mxResources.get("note"),!0,!0,null,!0),mxResources.get("note"));a(l.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",
-160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");a(l.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;curved=1;rounded=0;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;");b.geometry.setTerminalPoint(new mxPoint(0,
-0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;a(l.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));b=b.clone();b.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=a(l.sidebar.createEdgeTemplateFromCells([b],
+160,80,"",mxResources.get("rectangle"),!0,!0,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");a(l.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!0,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,p.defaultEdgeLength,0),"edgeStyle=none;curved=1;rounded=0;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;sourcePerimeterSpacing=8;targetPerimeterSpacing=8;fontSize=16;");b.geometry.setTerminalPoint(new mxPoint(0,
+0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;a(l.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!1,null,!0),mxResources.get("line"));b=b.clone();b.style+="shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=p.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=a(l.sidebar.createEdgeTemplateFromCells([b],
b.geometry.width,40,mxResources.get("arrow"),!1,null,!0),mxResources.get("arrow"));b.style.borderBottom="1px solid lightgray";b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(l.actions.get("insertFreehand"),mxResources.get("freehand"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTQuNSw4YzEuMDQsMCwyLjM0LTEuNSw0LjI1LTEuNWMxLjUyLDAsMi43NSwxLjIzLDIuNzUsMi43NWMwLDIuMDQtMS45OSwzLjE1LTMuOTEsNC4yMkM1LjQyLDE0LjY3LDQsMTUuNTcsNCwxNyBjMCwxLjEsMC45LDIsMiwydjJjLTIuMjEsMC00LTEuNzktNC00YzAtMi43MSwyLjU2LTQuMTQsNC42Mi01LjI4YzEuNDItMC43OSwyLjg4LTEuNiwyLjg4LTIuNDdjMC0wLjQxLTAuMzQtMC43NS0wLjc1LTAuNzUgQzcuNSw4LjUsNi4yNSwxMCw0LjUsMTBDMy4xMiwxMCwyLDguODgsMiw3LjVDMiw1LjQ1LDQuMTcsMi44Myw1LDJsMS40MSwxLjQxQzUuNDEsNC40Miw0LDYuNDMsNCw3LjVDNCw3Ljc4LDQuMjIsOCw0LjUsOHogTTgsMjEgbDMuNzUsMGw4LjA2LTguMDZsLTMuNzUtMy43NUw4LDE3LjI1TDgsMjF6IE0xMCwxOC4wOGw2LjA2LTYuMDZsMC45MiwwLjkyTDEwLjkyLDE5TDEwLDE5TDEwLDE4LjA4eiBNMjAuMzcsNi4yOSBjLTAuMzktMC4zOS0xLjAyLTAuMzktMS40MSwwbC0xLjgzLDEuODNsMy43NSwzLjc1bDEuODMtMS44M2MwLjM5LTAuMzksMC4zOS0xLjAyLDAtMS40MUwyMC4zNyw2LjI5eiIvPjwvc3ZnPg==");
-b(l.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==");var c=l.actions.get("toggleShapes");
-b(c,mxResources.get("shapes")+" ("+c.shortcut+")",D)});ka();l.addListener("darkModeChanged",mxUtils.bind(this,function(){ka()}))}else l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus())}));if(null!=F){var ha=function(){n.popupMenuHandler.hideMenu();var a=n.view.scale,b=n.view.translate.x,c=n.view.translate.y;l.actions.get("resetView").funct();1E-5>Math.abs(a-n.view.scale)&&b==n.view.translate.x&&c==n.view.translate.y&&l.actions.get(n.pageVisible?
-"fitPage":"fitWindow").funct()},ca=l.actions.get("zoomIn"),na="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
-V=l.actions.get("zoomOut"),P="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
-oa=l.actions.get("resetView"),T=l.actions.get("fullscreen"),da=l.actions.get("toggleDarkMode"),la="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
+var c=l.actions.get("toggleShapes");b(c,mxResources.get("shapes")+" ("+c.shortcut+")",E);b(l.actions.get("insertTemplate"),mxResources.get("template"),"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==")});
+ia();l.addListener("darkModeChanged",mxUtils.bind(this,function(){ia()}))}else l.editor.addListener("statusChanged",mxUtils.bind(this,function(){l.setStatusText(l.editor.getStatus())}));if(null!=F){var fa=function(){p.popupMenuHandler.hideMenu();var a=p.view.scale,b=p.view.translate.x,c=p.view.translate.y;l.actions.get("resetView").funct();1E-5>Math.abs(a-p.view.scale)&&b==p.view.translate.x&&c==p.view.translate.y&&l.actions.get(p.pageVisible?"fitPage":"fitWindow").funct()},ba=l.actions.get("zoomIn"),
+na="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=",
+V=l.actions.get("zoomOut"),Q="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==",
+oa=l.actions.get("resetView"),T=l.actions.get("fullscreen"),ca=l.actions.get("toggleDarkMode"),ja="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==",
ra="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+",
-O=l.actions.get("undo"),ia=l.actions.get("redo"),fa=d("",O.funct,null,mxResources.get("undo")+" ("+O.shortcut+")",O,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),R=d("",ia.funct,null,mxResources.get("redo")+
-" ("+ia.shortcut+")",ia,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),ya=d("",ha,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",oa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
-oa=d("",T.funct,null,mxResources.get("fullscreen"),T,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg==");if(null!=U){Y.appendChild(fa);Y.appendChild(R);F=function(){fa.style.display=0<l.editor.undoManager.history.length||
-n.isEditing()?"inline-block":"none";R.style.display=fa.style.display;fa.style.opacity=O.enabled?"0.4":"0.1";R.style.opacity=ia.enabled?"0.4":"0.1"};O.addListener("stateChanged",F);ia.addListener("stateChanged",F);F();T.visible&&(oa.style.opacity="0.4",U.appendChild(oa));T=d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,P);T.style.opacity="0.4";U.appendChild(T);var N=document.createElement("div");N.innerHTML="100%";N.setAttribute("title",mxResources.get("fitWindow")+
-"/"+mxResources.get("resetView"));N.style.display="inline-block";N.style.cursor="pointer";N.style.textAlign="center";N.style.whiteSpace="nowrap";N.style.paddingRight="10px";N.style.textDecoration="none";N.style.verticalAlign="top";N.style.padding="6px 0";N.style.fontSize="14px";N.style.width="40px";N.style.opacity="0.4";U.appendChild(N);mxEvent.addListener(N,"click",ha);ha=d("",ca.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ca,na);ha.style.opacity="0.4";U.appendChild(ha);
-var ba=this.createPageMenuTab(!1);ba.style.display="none";ba.style.position="";ba.style.marginLeft="";ba.style.top="";ba.style.left="";ba.style.height="100%";ba.style.lineHeight="";ba.style.borderStyle="none";ba.style.padding="3px 0";ba.style.margin="0px";ba.style.background="";ba.style.border="";ba.style.boxShadow="none";ba.style.verticalAlign="top";ba.firstChild.style.height="100%";ba.firstChild.style.opacity="0.6";ba.firstChild.style.margin="0px";U.appendChild(ba);var qa=d("",da.funct,null,mxResources.get("dark"),
-da,Editor.isDarkMode()?ra:la);qa.style.opacity="0.4";U.appendChild(qa);l.addListener("darkModeChanged",mxUtils.bind(this,function(){qa.style.backgroundImage="url("+(Editor.isDarkMode()?ra:la)+")"}));l.addListener("fileDescriptorChanged",function(){ba.style.display="1"==urlParams.pages||null!=l.pages&&1<l.pages.length?"inline-block":"none"});l.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:20px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";
-Y.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";U.style.cssText="position:absolute;right:20px;bottom:20px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;background-color:#fff;";C.appendChild(Y);C.appendChild(U);Z.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 10px 6px;white-space:nowrap;background-color:#fff;transform:translate(0, -50%);top:50%;";
-C.appendChild(Z);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(C)}else p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;",this.tabContainer.style.right="70px",N=t.addMenu("100%",F.funct),N.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)"),N.style.whiteSpace="nowrap",N.style.paddingRight="10px",N.style.textDecoration="none",N.style.textDecoration="none",N.style.overflow="hidden",N.style.visibility=
-"hidden",N.style.textAlign="center",N.style.cursor="pointer",N.style.height=parseInt(l.tabContainerHeight)-1+"px",N.style.lineHeight=parseInt(l.tabContainerHeight)+1+"px",N.style.position="absolute",N.style.display="block",N.style.fontSize="12px",N.style.width="59px",N.style.right="0px",N.style.bottom="0px",N.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",N.style.backgroundPosition="right 6px center",N.style.backgroundRepeat="no-repeat",C.appendChild(N);Y=mxUtils.bind(this,function(){N.innerHTML=
-Math.round(100*l.editor.graph.view.scale)+"%"});l.editor.graph.view.addListener(mxEvent.EVENT_SCALE,Y);l.editor.addListener("resetGraphView",Y);l.editor.addListener("pageSelected",Y);var sa=l.setGraphEnabled;l.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(N.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==U?this.tabContainerHeight+"px":"0px")}}C.appendChild(p);C.appendChild(l.diagramContainer);
-k.appendChild(C);l.updateTabContainer();null==U&&C.appendChild(l.tabContainer);var ta=null;g();mxEvent.addListener(window,"resize",function(){g();null!=l.sidebarWindow&&l.sidebarWindow.window.fit();null!=l.formatWindow&&l.formatWindow.window.fit();null!=l.actions.outlineWindow&&l.actions.outlineWindow.window.fit();null!=l.actions.layersWindow&&l.actions.layersWindow.window.fit();null!=l.menus.tagsWindow&&l.menus.tagsWindow.window.fit();null!=l.menus.findWindow&&l.menus.findWindow.window.fit();null!=
-l.menus.findReplaceWindow&&l.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();DrawioComment=function(a,b,e,d,n,l,t){this.file=a;this.id=b;this.content=e;this.modifiedDate=d;this.createdDate=n;this.isResolved=l;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,e,d,n){b()};DrawioComment.prototype.editComment=function(a,b,e){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,e,d,n){this.id=a;this.email=b;this.displayName=e;this.pictureUrl=d;this.locale=n};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About \naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified. Do you want to synchronize those changes?\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\npickGDriveFile=Pick Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occured during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "\'{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#ffffff"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
+O=l.actions.get("undo"),ga=l.actions.get("redo"),ea=d("",O.funct,null,mxResources.get("undo")+" ("+O.shortcut+")",O,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),S=d("",ga.funct,null,mxResources.get("redo")+
+" ("+ga.shortcut+")",ga,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),ya=d("",fa,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",oa,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
+oa=d("",T.funct,null,mxResources.get("fullscreen"),T,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg==");if(null!=U){X.appendChild(ea);X.appendChild(S);F=function(){ea.style.display=0<l.editor.undoManager.history.length||
+p.isEditing()?"inline-block":"none";S.style.display=ea.style.display;ea.style.opacity=O.enabled?"0.4":"0.1";S.style.opacity=ga.enabled?"0.4":"0.1"};O.addListener("stateChanged",F);ga.addListener("stateChanged",F);F();T.visible&&(oa.style.opacity="0.4",U.appendChild(oa));T=d("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",V,Q);T.style.opacity="0.4";U.appendChild(T);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+
+"/"+mxResources.get("resetView"));P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";U.appendChild(P);mxEvent.addListener(P,"click",fa);fa=d("",ba.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ba,na);fa.style.opacity="0.4";U.appendChild(fa);
+var aa=this.createPageMenuTab(!1);aa.style.display="none";aa.style.position="";aa.style.marginLeft="";aa.style.top="";aa.style.left="";aa.style.height="100%";aa.style.lineHeight="";aa.style.borderStyle="none";aa.style.padding="3px 0";aa.style.margin="0px";aa.style.background="";aa.style.border="";aa.style.boxShadow="none";aa.style.verticalAlign="top";aa.firstChild.style.height="100%";aa.firstChild.style.opacity="0.6";aa.firstChild.style.margin="0px";U.appendChild(aa);var qa=d("",ca.funct,null,mxResources.get("dark"),
+ca,Editor.isDarkMode()?ra:ja);qa.style.opacity="0.4";U.appendChild(qa);l.addListener("darkModeChanged",mxUtils.bind(this,function(){qa.style.backgroundImage="url("+(Editor.isDarkMode()?ra:ja)+")"}));l.addListener("fileDescriptorChanged",function(){aa.style.display="1"==urlParams.pages||null!=l.pages&&1<l.pages.length?"inline-block":"none"});l.tabContainer.style.visibility="hidden";q.style.cssText="position:absolute;right:20px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";
+X.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;background-color:#fff;overflow:hidden;";U.style.cssText="position:absolute;right:20px;bottom:20px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;background-color:#fff;";A.appendChild(X);A.appendChild(U);Y.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 10px 6px;white-space:nowrap;background-color:#fff;transform:translate(0, -50%);top:50%;";
+A.appendChild(Y);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(A)}else q.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;",this.tabContainer.style.right="70px",P=u.addMenu("100%",F.funct),P.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)"),P.style.whiteSpace="nowrap",P.style.paddingRight="10px",P.style.textDecoration="none",P.style.textDecoration="none",P.style.overflow="hidden",P.style.visibility=
+"hidden",P.style.textAlign="center",P.style.cursor="pointer",P.style.height=parseInt(l.tabContainerHeight)-1+"px",P.style.lineHeight=parseInt(l.tabContainerHeight)+1+"px",P.style.position="absolute",P.style.display="block",P.style.fontSize="12px",P.style.width="59px",P.style.right="0px",P.style.bottom="0px",P.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")",P.style.backgroundPosition="right 6px center",P.style.backgroundRepeat="no-repeat",A.appendChild(P);X=mxUtils.bind(this,function(){P.innerHTML=
+Math.round(100*l.editor.graph.view.scale)+"%"});l.editor.graph.view.addListener(mxEvent.EVENT_SCALE,X);l.editor.addListener("resetGraphView",X);l.editor.addListener("pageSelected",X);var sa=l.setGraphEnabled;l.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==U?this.tabContainerHeight+"px":"0px")}}A.appendChild(q);A.appendChild(l.diagramContainer);
+k.appendChild(A);l.updateTabContainer();null==U&&A.appendChild(l.tabContainer);var ta=null;g();mxEvent.addListener(window,"resize",function(){g();null!=l.sidebarWindow&&l.sidebarWindow.window.fit();null!=l.formatWindow&&l.formatWindow.window.fit();null!=l.actions.outlineWindow&&l.actions.outlineWindow.window.fit();null!=l.actions.layersWindow&&l.actions.layersWindow.window.fit();null!=l.menus.tagsWindow&&l.menus.tagsWindow.window.fit();null!=l.menus.findWindow&&l.menus.findWindow.window.fit();null!=
+l.menus.findReplaceWindow&&l.menus.findReplaceWindow.window.fit()})}}};(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();DrawioComment=function(a,b,e,d,l,m,u){this.file=a;this.id=b;this.content=e;this.modifiedDate=d;this.createdDate=l;this.isResolved=m;this.user=u;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(a){null!=a&&this.replies.push(a)};DrawioComment.prototype.addReply=function(a,b,e,d,l){b()};DrawioComment.prototype.editComment=function(a,b,e){b()};DrawioComment.prototype.deleteComment=function(a,b){a()};DrawioUser=function(a,b,e,d,l){this.id=a;this.email=b;this.displayName=e;this.pictureUrl=d;this.locale=l};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About \naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified. Do you want to synchronize those changes?\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\npickGDriveFile=Pick Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occured during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "\'{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#ffffff"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#2a2a2a"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,b,e){this.init(a,b,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://app.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
GraphViewer.prototype.center=!1;GraphViewer.prototype.allowZoomIn=!1;GraphViewer.prototype.allowZoomOut=!0;GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;GraphViewer.prototype.responsive=!1;
GraphViewer.prototype.init=function(a,b,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.autoCrop=null!=this.graphConfig["auto-crop"]?this.graphConfig["auto-crop"]:this.autoCrop;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.center=null!=this.graphConfig.center?
@@ -3901,61 +3903,61 @@ b,this.xml=mxUtils.getXml(b),null!=a)){var d=mxUtils.bind(this,function(){this.g
"border-box";d.style.overflow="visible";this.graph.fit=function(){};this.graph.sizeDidChange=function(){var a=this.view.graphBounds,b=this.view.translate;d.setAttribute("viewBox",a.x+b.x-this.panDx+" "+(a.y+b.y-this.panDy)+" "+(a.width+1)+" "+(a.height+1));this.container.style.backgroundColor=d.style.backgroundColor;this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))}}this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");
this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);1==this.graphConfig["toolbar-nohide"]&&(this.editor.defaultGraphOverflow="visible");this.xmlNode=this.editor.extractGraphModel(this.xmlNode,!0);this.xmlNode!=b&&(this.xml=mxUtils.getXml(this.xmlNode),this.xmlDocument=this.xmlNode.ownerDocument);var e=this;this.graph.getImageFromBundles=
function(a){return e.getImageUrl(a)};mxClient.IS_SVG&&this.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==this.xmlNode.nodeName){var c=this.xmlNode.getElementsByTagName("diagram");if(0<c.length){if(null!=this.pageId)for(var f=0;f<c.length;f++)if(this.pageId==c[f].getAttribute("id")){this.currentPage=f;break}var g=this.graph.getGlobalVariable,e=this;this.graph.getGlobalVariable=function(a){var b=c[e.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(e.currentPage+
-1):"pagenumber"==a?e.currentPage+1:"pagecount"==a?c.length:g.apply(this,arguments)}}}this.diagrams=[];var m=null;this.selectPage=function(a){this.handlingResize||(this.currentPage=mxUtils.mod(a,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==a){this.selectPage(c);b=!0;break}return b};f=mxUtils.bind(this,function(){if(null==this.xmlNode||
-"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=m&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),m=this.xmlNode)});this.addListener("xmlNodeChanged",f);f();urlParams.page=e.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.view.scale=this.graphConfig.zoom||1,this.responsive||(this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8)}finally{this.graph.getModel().endUpdate()}this.responsive||
+1):"pagenumber"==a?e.currentPage+1:"pagecount"==a?c.length:g.apply(this,arguments)}}}this.diagrams=[];var k=null;this.selectPage=function(a){this.handlingResize||(this.currentPage=mxUtils.mod(a,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==a){this.selectPage(c);b=!0;break}return b};f=mxUtils.bind(this,function(){if(null==this.xmlNode||
+"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=k&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),k=this.xmlNode)});this.addListener("xmlNodeChanged",f);f();urlParams.page=e.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.view.scale=this.graphConfig.zoom||1,this.responsive||(this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8)}finally{this.graph.getModel().endUpdate()}this.responsive||
(this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow},this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.panningHandler.ignoreCell=!0,this.graph.panningHandler.usePopupTrigger=!1,this.graph.panningHandler.pinchEnabled=!1);this.graph.setPanning(!1);null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",this.graphConfig.title);
this.responsive||this.addSizeHandler();!this.showLayers(this.graph)||this.layersEnabled&&!this.autoCrop||this.crop();this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};e=this;this.graph.customLinkClicked=function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");e.selectPageById(a.substring(b+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(a);
-return!0};var k=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return k.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var n=this.getObservableParent(a),l=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(l.disconnect(),d())}));l.observe(n,{attributes:!0})}else d()}};
+return!0};var l=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return l.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var l=this.getObservableParent(a),m=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(m.disconnect(),d())}));m.observe(l,{attributes:!0})}else d()}};
GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a};GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};
GraphViewer.prototype.setXmlNode=function(a){a=this.editor.extractGraphModel(a,!0);this.xmlDocument=a.ownerDocument;this.xml=mxUtils.getXml(a);this.xmlNode=a;this.updateGraphXml(a);this.fireEvent(new mxEventObject("xmlNodeChanged"))};GraphViewer.prototype.setFileNode=function(a){null==this.xmlNode&&(this.xmlDocument=a.ownerDocument,this.xml=mxUtils.getXml(a),this.xmlNode=a);this.setGraphXml(a)};GraphViewer.prototype.updateGraphXml=function(a){this.setGraphXml(a);this.fireEvent(new mxEventObject("graphChanged"))};
GraphViewer.prototype.setGraphXml=function(a){null!=this.graph&&(this.graph.view.translate=new mxPoint,this.graph.view.scale=1,this.graph.getModel().clear(),this.editor.setGraphXml(a),this.responsive||(this.widthIsEmpty?(this.graph.container.style.width="",this.graph.container.style.height=""):this.graph.container.style.width=this.initialWidth,this.positionGraph()),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale})};
GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow=1!=this.graphConfig["toolbar-nohide"]?"hidden":"visible";var d=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=1!=this.graphConfig["toolbar-nohide"]?b.width+2*this.graph.border>a.offsetWidth-2?"auto":"hidden":"visible";if(null!=this.toolbar&&1!=this.graphConfig["toolbar-nohide"]){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),
c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},b={left:b.left-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}else null!=
-this.toolbar&&(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px");this.treeCellFolded&&(this.treeCellFolded=!1,this.positionGraph(this.graph.view.translate),this.graph.initialViewState.translate=this.graph.view.translate.clone());e=!1}}),n=null;this.handlingResize=!1;this.fitGraph=mxUtils.bind(this,function(b){var c=a.offsetWidth;c==n||this.handlingResize||(this.handlingResize=!0,"auto"==a.style.overflow&&(a.style.overflow="hidden"),this.graph.maxFitScale=null!=b?b:this.graphConfig.zoom||
-(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,null,!0),(this.center||0==this.graphConfig.resize&&""!=a.style.height)&&this.graph.center(),this.graph.maxFitScale=null,0==this.graphConfig.resize&&""!=a.style.height||this.updateContainerHeight(a,Math.max(this.minHeight,this.graph.getGraphBounds().height+2*this.graph.border+1)),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},n=c,window.setTimeout(mxUtils.bind(this,function(){this.handlingResize=
+this.toolbar&&(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px");this.treeCellFolded&&(this.treeCellFolded=!1,this.positionGraph(this.graph.view.translate),this.graph.initialViewState.translate=this.graph.view.translate.clone());e=!1}}),l=null;this.handlingResize=!1;this.fitGraph=mxUtils.bind(this,function(b){var c=a.offsetWidth;c==l||this.handlingResize||(this.handlingResize=!0,"auto"==a.style.overflow&&(a.style.overflow="hidden"),this.graph.maxFitScale=null!=b?b:this.graphConfig.zoom||
+(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,null,!0),(this.center||0==this.graphConfig.resize&&""!=a.style.height)&&this.graph.center(),this.graph.maxFitScale=null,0==this.graphConfig.resize&&""!=a.style.height||this.updateContainerHeight(a,Math.max(this.minHeight,this.graph.getGraphBounds().height+2*this.graph.border+1)),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},l=c,window.setTimeout(mxUtils.bind(this,function(){this.handlingResize=
!1}),0))});GraphViewer.useResizeSensor&&(9>=document.documentMode?(mxEvent.addListener(window,"resize",d),this.graph.addListener("size",d)):new ResizeSensor(this.graph.container,d));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,this.minWidth,this.minHeight),this.graph.resizeContainer=!0;else if(!this.widthIsEmpty||""!=a.style.height&&this.autoFit||this.updateContainerWidth(a,b.width+2*this.graph.border),
-0==this.graphConfig.resize&&""!=a.style.height||this.updateContainerHeight(a,Math.max(this.minHeight,b.height+2*this.graph.border+1)),!this.zoomEnabled&&this.autoFit){var l=n=null,d=mxUtils.bind(this,function(){window.clearTimeout(l);this.handlingResize||(l=window.setTimeout(mxUtils.bind(this,this.fitGraph),100))});GraphViewer.useResizeSensor&&(9>=document.documentMode?mxEvent.addListener(window,"resize",d):new ResizeSensor(this.graph.container,d))}else 9>=document.documentMode||this.graph.addListener("size",
-d);var t=mxUtils.bind(this,function(d){var c=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");var e=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=a.style.height&&this.autoFit?a.offsetHeight:void 0;0<a.offsetWidth&&null==d&&this.allowZoomOut&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>e)?(d=null,null!=e&&b.height+2*this.graph.border>e-2&&(d=(e-2*this.graph.border-2)/b.height),this.fitGraph(d)):this.widthIsEmpty||
-null!=d||0!=this.graphConfig.resize||""==a.style.height?(d=null!=d?d:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-b.x/this.graph.view.scale)+d.x,Math.floor(this.graph.border-b.y/this.graph.view.scale)+d.y),n=a.offsetWidth):this.graph.center((!this.widthIsEmpty||b.width<this.minWidth)&&1!=this.graphConfig.resize);a.style.minWidth=c});8==document.documentMode?window.setTimeout(t,0):t();this.positionGraph=function(a){b=this.graph.getGraphBounds();n=null;t(a)}};
+0==this.graphConfig.resize&&""!=a.style.height||this.updateContainerHeight(a,Math.max(this.minHeight,b.height+2*this.graph.border+1)),!this.zoomEnabled&&this.autoFit){var m=l=null,d=mxUtils.bind(this,function(){window.clearTimeout(m);this.handlingResize||(m=window.setTimeout(mxUtils.bind(this,this.fitGraph),100))});GraphViewer.useResizeSensor&&(9>=document.documentMode?mxEvent.addListener(window,"resize",d):new ResizeSensor(this.graph.container,d))}else 9>=document.documentMode||this.graph.addListener("size",
+d);var u=mxUtils.bind(this,function(d){var c=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");var e=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=a.style.height&&this.autoFit?a.offsetHeight:void 0;0<a.offsetWidth&&null==d&&this.allowZoomOut&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>e)?(d=null,null!=e&&b.height+2*this.graph.border>e-2&&(d=(e-2*this.graph.border-2)/b.height),this.fitGraph(d)):this.widthIsEmpty||
+null!=d||0!=this.graphConfig.resize||""==a.style.height?(d=null!=d?d:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-b.x/this.graph.view.scale)+d.x,Math.floor(this.graph.border-b.y/this.graph.view.scale)+d.y),l=a.offsetWidth):this.graph.center((!this.widthIsEmpty||b.width<this.minWidth)&&1!=this.graphConfig.resize);a.style.minWidth=c});8==document.documentMode?window.setTimeout(u,0):u();this.positionGraph=function(a){b=this.graph.getGraphBounds();l=null;u(a)}};
GraphViewer.prototype.crop=function(){var a=this.graph,b=a.getGraphBounds(),e=a.border,d=a.view.scale;a.view.setTranslate(null!=b.x?Math.floor(a.view.translate.x-b.x/d+e):e,null!=b.y?Math.floor(a.view.translate.y-b.y/d+e):e)};GraphViewer.prototype.updateContainerWidth=function(a,b){a.style.width=b+"px"};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||8==document.documentMode)a.style.height=b+"px"};
-GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],d=this.graphConfig.layerIds,n=null!=d&&0<d.length,l=!1;if(0<e.length||n||null!=b){var l=null!=b?b.getModel():null,t=a.getModel();t.beginUpdate();try{for(var q=t.getChildCount(t.root),c=0;c<q;c++)t.setVisible(t.getChildAt(t.root,c),null!=b?l.isVisible(l.getChildAt(l.root,c)):!1);if(null==l)if(n)for(c=0;c<d.length;c++)t.setVisible(t.getCell(d[c]),!0);else for(c=0;c<e.length;c++)t.setVisible(t.getChildAt(t.root,
-parseInt(e[c])),!0)}finally{t.endUpdate()}l=!0}return l};
+GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],d=this.graphConfig.layerIds,l=null!=d&&0<d.length,m=!1;if(0<e.length||l||null!=b){var m=null!=b?b.getModel():null,u=a.getModel();u.beginUpdate();try{for(var q=u.getChildCount(u.root),c=0;c<q;c++)u.setVisible(u.getChildAt(u.root,c),null!=b?m.isVisible(m.getChildAt(m.root,c)):!1);if(null==m)if(l)for(c=0;c<d.length;c++)u.setVisible(u.getCell(d[c]),!0);else for(c=0;c<e.length;c++)u.setVisible(u.getChildAt(u.root,
+parseInt(e[c])),!0)}finally{u.endUpdate()}m=!0}return m};
GraphViewer.prototype.addToolbar=function(){function a(a,b,c,d){var f=document.createElement("div");f.style.borderRight="1px solid #d0d0d0";f.style.padding="3px 6px 3px 6px";mxEvent.addListener(f,"click",a);null!=c&&f.setAttribute("title",c);f.style.display="inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==d||d?(mxEvent.addListener(f,"mouseenter",function(){f.style.backgroundColor="#ddd"}),mxEvent.addListener(f,"mouseleave",function(){f.style.backgroundColor=
"#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);e.appendChild(f);g++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";e.style.whiteSpace="nowrap";e.style.textAlign=
-"left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var d=null,n=null,l=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,0);d=
-null;n=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";n=null}),100)}),a||200)}),t=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(t(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":"mousemove",
-function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){t(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){t(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||t(30)}));var q=this.graph,c=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=q.container.scrollLeft;
-this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<c&&Math.abs(this.scrollTop-q.container.scrollTop)<c&&Math.abs(this.startX-b.getGraphX())<c&&Math.abs(this.startY-b.getGraphY())<c&&(0<parseFloat(e.style.opacity||0)?l():t(30))}})}for(var f=this.toolbarItems,g=0,m=null,k=null,p=0;p<f.length;p++){var u=f[p];if("pages"==u){k=b.ownerDocument.createElement("div");k.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";
-mxUtils.setOpacity(k,70);var A=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");A.style.borderRightStyle="none";A.style.paddingLeft="0px";A.style.paddingRight="0px";e.appendChild(k);var F=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");F.style.paddingLeft="0px";F.style.paddingRight="0px";u=mxUtils.bind(this,function(){k.innerHTML=
-"";mxUtils.write(k,this.currentPage+1+" / "+this.diagrams.length);k.style.display=1<this.diagrams.length?"inline-block":"none";A.style.display=k.style.display;F.style.display=k.style.display});this.addListener("graphChanged",u);u()}else if("zoom"==u)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,
-function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==u){if(this.layersEnabled){var z=this.graph.getModel(),y=a(mxUtils.bind(this,function(a){if(null!=m)m.parentNode.removeChild(m),m=null;else{m=this.graph.createLayersDialog(mxUtils.bind(this,function(){this.autoCrop&&this.crop()}));mxEvent.addListener(m,"mouseleave",function(){m.parentNode.removeChild(m);
-m=null});a=y.getBoundingClientRect();m.style.width="140px";m.style.padding="2px 0px 2px 0px";m.style.border="1px solid #d0d0d0";m.style.backgroundColor="#eee";m.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";m.style.fontSize="11px";m.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(m,80);var b=mxUtils.getDocumentScrollOrigin(document);m.style.left=b.x+a.left+"px";m.style.top=b.y+a.bottom+"px";document.body.appendChild(m)}}),Editor.layersImage,mxResources.get("layers")||"Layers");
-z.addListener(mxEvent.CHANGE,function(){y.style.display=1<z.getChildCount(z.root)?"inline-block":"none"});y.style.display=1<z.getChildCount(z.root)?"inline-block":"none"}}else"lightbox"==u?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(u=this.graphConfig["toolbar-buttons"][u],null!=u&&a(null==u.enabled||u.enabled?u.handler:function(){},u.image,u.title,u.enabled))}null!=this.graph.minimumContainerSize&&
-(this.graph.minimumContainerSize.width=34*g);null!=this.graphConfig.title&&(f=b.ownerDocument.createElement("div"),f.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",f.setAttribute("title",this.graphConfig.title),mxUtils.write(f,this.graphConfig.title),mxUtils.setOpacity(f,70),e.appendChild(f),this.filename=f);this.minToolbarWidth=34*g;var M=b.style.border,L=mxUtils.bind(this,function(){e.style.width=
+"left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var d=null,l=null,m=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=l&&(window.clearTimeout(l),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,0);d=
+null;l=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";l=null}),100)}),a||200)}),u=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=l&&(window.clearTimeout(l),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(u(30),m())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":"mousemove",
+function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){u(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){u(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||u(30)}));var q=this.graph,c=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=q.container.scrollLeft;
+this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<c&&Math.abs(this.scrollTop-q.container.scrollTop)<c&&Math.abs(this.startX-b.getGraphX())<c&&Math.abs(this.startY-b.getGraphY())<c&&(0<parseFloat(e.style.opacity||0)?m():u(30))}})}for(var f=this.toolbarItems,g=0,k=null,p=null,t=0;t<f.length;t++){var v=f[t];if("pages"==v){p=b.ownerDocument.createElement("div");p.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";
+mxUtils.setOpacity(p,70);var A=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");A.style.borderRightStyle="none";A.style.paddingLeft="0px";A.style.paddingRight="0px";e.appendChild(p);var F=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");F.style.paddingLeft="0px";F.style.paddingRight="0px";v=mxUtils.bind(this,function(){p.innerHTML=
+"";mxUtils.write(p,this.currentPage+1+" / "+this.diagrams.length);p.style.display=1<this.diagrams.length?"inline-block":"none";A.style.display=p.style.display;F.style.display=p.style.display});this.addListener("graphChanged",v);v()}else if("zoom"==v)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,
+function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==v){if(this.layersEnabled){var y=this.graph.getModel(),z=a(mxUtils.bind(this,function(a){if(null!=k)k.parentNode.removeChild(k),k=null;else{k=this.graph.createLayersDialog(mxUtils.bind(this,function(){this.autoCrop&&this.crop()}));mxEvent.addListener(k,"mouseleave",function(){k.parentNode.removeChild(k);
+k=null});a=z.getBoundingClientRect();k.style.width="140px";k.style.padding="2px 0px 2px 0px";k.style.border="1px solid #d0d0d0";k.style.backgroundColor="#eee";k.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";k.style.fontSize="11px";k.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(k,80);var b=mxUtils.getDocumentScrollOrigin(document);k.style.left=b.x+a.left+"px";k.style.top=b.y+a.bottom+"px";document.body.appendChild(k)}}),Editor.layersImage,mxResources.get("layers")||"Layers");
+y.addListener(mxEvent.CHANGE,function(){z.style.display=1<y.getChildCount(y.root)?"inline-block":"none"});z.style.display=1<y.getChildCount(y.root)?"inline-block":"none"}}else"lightbox"==v?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(v=this.graphConfig["toolbar-buttons"][v],null!=v&&a(null==v.enabled||v.enabled?v.handler:function(){},v.image,v.title,v.enabled))}null!=this.graph.minimumContainerSize&&
+(this.graph.minimumContainerSize.width=34*g);null!=this.graphConfig.title&&(f=b.ownerDocument.createElement("div"),f.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",f.setAttribute("title",this.graphConfig.title),mxUtils.write(f,this.graphConfig.title),mxUtils.setOpacity(f,70),e.appendChild(f),this.filename=f);this.minToolbarWidth=34*g;var L=b.style.border,M=mxUtils.bind(this,function(){e.style.width=
"inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";"bottom"==this.graphConfig["toolbar-position"]?
-e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==M&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=m&&(m.parentNode.removeChild(m),m=null);b.style.border=M});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==
-b||a==e||a==m)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})}else e.style.top=-this.toolbarHeight+"px",b.appendChild(e)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(b,"mouseenter",L):L();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&L()})).observe(b)};
-GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,d){if(null==d)for(var n=mxEvent.getSource(e);n!=a.container&&null!=n&&null==d;)"a"==n.nodeName.toLowerCase()&&(d=n.getAttribute("href")),n=n.parentNode;null!=b?null==d||a.isCustomLink(d)?mxEvent.consume(e):a.isExternalProtocol(d)||a.isBlankLink(d)||window.setTimeout(function(){b.destroy()},0):null!=d&&null==b&&a.isCustomLink(d)&&
+e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==L&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=k&&(k.parentNode.removeChild(k),k=null);b.style.border=L});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==
+b||a==e||a==k)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})}else e.style.top=-this.toolbarHeight+"px",b.appendChild(e)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(b,"mouseenter",M):M();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&M()})).observe(b)};
+GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,d){if(null==d)for(var l=mxEvent.getSource(e);l!=a.container&&null!=l&&null==d;)"a"==l.nodeName.toLowerCase()&&(d=l.getAttribute("href")),l=l.parentNode;null!=b?null==d||a.isCustomLink(d)?mxEvent.consume(e):a.isExternalProtocol(d)||a.isBlankLink(d)||window.setTimeout(function(){b.destroy()},0):null!=d&&null==b&&a.isCustomLink(d)&&
(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(d)&&(mxUtils.clearSelection(),mxEvent.consume(e))}),mxUtils.bind(this,function(a){null!=b||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))};
GraphViewer.prototype.showLightbox=function(a,b,e){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){a=null!=a?a:null!=this.graphConfig.editable?this.graphConfig.editable:!0;e={client:1,target:null!=e?e:"blank"};a&&(e.edit=this.graphConfig.edit||"_blank");if(null!=b?b:1)e.close=1;this.layersEnabled&&(e.layers=1);null!=this.graphConfig&&0!=this.graphConfig.nav&&(e.nav=1);null!=this.graphConfig&&null!=this.graphConfig.highlight&&
(e.highlight=this.graphConfig.highlight.substring(1));null!=this.currentPage&&0<this.currentPage&&(e.page=this.currentPage);"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?null==this.lightboxWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(a){"ready"==a.data&&a.source==this.lightboxWindow&&this.lightboxWindow.postMessage(this.xml,"*")})):e.data=encodeURIComponent(this.xml);"1"==urlParams.dev&&(e.dev="1");this.lightboxWindow=
window.open(("1"!=urlParams.dev?EditorUi.lightboxHost:"https://test.draw.io")+"/#P"+encodeURIComponent(JSON.stringify(e)))}else this.lightboxWindow.focus();else this.showLocalLightbox()};
GraphViewer.prototype.showLocalLightbox=function(){mxUtils.getDocumentScrollOrigin(document);var a=document.createElement("div");a.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";a.style.zIndex=this.lightboxZIndex;a.style.backgroundColor="#000000";mxUtils.setOpacity(a,70);document.body.appendChild(a);var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Editor.closeImage);b.style.cssText="position:fixed;top:32px;right:32px;";b.style.cursor="pointer";mxEvent.addListener(b,
"click",function(){d.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams["page-id"]=this.graphConfig.pageId;urlParams["layer-ids"]=null!=this.graphConfig.layerIds&&0<this.graphConfig.layerIds.length?this.graphConfig.layerIds.join(" "):null;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode||10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;
-EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};var e=Graph.prototype.shadowId;Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);d.editor.editBlankUrl=this.editBlankUrl;d.editor.graph.shadowId="lightboxDropShadow";Graph.prototype.shadowId=e;d.refresh=function(){};var n=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),
-l=d.destroy;d.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",n);document.body.removeChild(a);document.body.removeChild(b);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var t=d.editor.graph,q=t.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",n)):(a.style.display="none",b.style.display="none");var c=this;
-t.getImageFromBundles=function(a){return c.getImageUrl(a)};var f=d.createTemporaryGraph;d.createTemporaryGraph=function(){var a=f.apply(this,arguments);a.getImageFromBundles=function(a){return c.getImageUrl(a)};return a};this.graphConfig.move&&(t.isMoveCellsEvent=function(a){return!0});mxUtils.setPrefixedStyle(q.style,"border-radius","4px");q.style.position="fixed";GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow="hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,
-"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(t,d);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;b.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(b);d.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom="60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;
-document.body.appendChild(d.chromelessToolbar);d.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});d.lightboxFit();d.chromelessResize();this.showLayers(t,this.graph);mxEvent.addListener(a,"click",function(){d.destroy()})}),0);return d};
+EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};var e=Graph.prototype.shadowId;Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);d.editor.editBlankUrl=this.editBlankUrl;d.editor.graph.shadowId="lightboxDropShadow";Graph.prototype.shadowId=e;d.refresh=function(){};var l=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),
+m=d.destroy;d.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",l);document.body.removeChild(a);document.body.removeChild(b);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;m.apply(this,arguments)};var u=d.editor.graph,q=u.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",l)):(a.style.display="none",b.style.display="none");var c=this;
+u.getImageFromBundles=function(a){return c.getImageUrl(a)};var f=d.createTemporaryGraph;d.createTemporaryGraph=function(){var a=f.apply(this,arguments);a.getImageFromBundles=function(a){return c.getImageUrl(a)};return a};this.graphConfig.move&&(u.isMoveCellsEvent=function(a){return!0});mxUtils.setPrefixedStyle(q.style,"border-radius","4px");q.style.position="fixed";GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow="hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,
+"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(u,d);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;b.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(b);d.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom="60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;
+document.body.appendChild(d.chromelessToolbar);d.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});d.lightboxFit();d.chromelessResize();this.showLayers(u,this.graph);mxEvent.addListener(a,"click",function(){d.destroy()})}),0);return d};
GraphViewer.prototype.updateTitle=function(a){a=a||"";this.showTitleAsTooltip&&null!=this.graph&&null!=this.graph.container&&this.graph.container.setAttribute("title",a);null!=this.filename&&(this.filename.innerHTML="",mxUtils.write(this.filename,a),this.filename.setAttribute("title",a))};
GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){a.innerHTML=e.message,null!=window.console&&console.error(e)}})};
-GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var b=document.getElementsByClassName(a);a=[];for(var e=0;e<b.length;e++)a.push(b[e]);return a}for(var d=document.getElementsByTagName("*"),b=[],e=0;e<d.length;e++){var n=d[e].className;null!=n&&0<n.length&&(n=n.split(" "),0<=mxUtils.indexOf(n,a)&&b.push(d[e]))}return b};
-GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var d=JSON.parse(e),n=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,d);null!=b&&b(e)};null!=d.url?GraphViewer.getUrl(d.url,function(a){n(a)}):n(d.xml)}};
+GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var b=document.getElementsByClassName(a);a=[];for(var e=0;e<b.length;e++)a.push(b[e]);return a}for(var d=document.getElementsByTagName("*"),b=[],e=0;e<d.length;e++){var l=d[e].className;null!=l&&0<l.length&&(l=l.split(" "),0<=mxUtils.indexOf(l,a)&&b.push(d[e]))}return b};
+GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var d=JSON.parse(e),l=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,d);null!=b&&b(e)};null!=d.url?GraphViewer.getUrl(d.url,function(a){l(a)}):l(d.xml)}};
GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type="text/css";a.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(a)}catch(b){}};
GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,e){if(null!=GraphViewer.cachedUrls[a])b(GraphViewer.cachedUrls[a]);else{var d=null!=navigator.userAgent&&0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;d.open("GET",a);d.onload=function(){b(null!=d.getText?d.getText():d.responseText)};d.onerror=e;d.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
-(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,d){function n(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function l(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function t(b,c){if(!b.resizedAttached)b.resizedAttached=
-new n,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
-b.appendChild(b.resizeSensor);"static"==l(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var k=!1,m=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(m))};a(m);var q,t,I,G,K=function(){if((I=b.offsetWidth)!=q||(G=b.offsetHeight)!=t)k=!0,q=I,t=G;g()},E=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};E(d,"scroll",K);E(f,"scroll",K)}var q=function(){GraphViewer.resizeSensorEnabled&&d()},c=Object.prototype.toString.call(e),f="[object Array]"===c||"[object NodeList]"===c||"[object HTMLCollection]"===c||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(f)for(var c=0,g=e.length;c<g;c++)t(e[c],q);else t(e,q);this.detach=function(){if(f)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
+(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,d){function l(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function m(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function u(b,c){if(!b.resizedAttached)b.resizedAttached=
+new l,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
+b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var k=!1,p=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(p))};a(p);var q,u,G,J,H=function(){if((G=b.offsetWidth)!=q||(J=b.offsetHeight)!=u)k=!0,q=G,u=J;g()},D=function(a,b,c){a.attachEvent?
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};D(d,"scroll",H);D(f,"scroll",H)}var q=function(){GraphViewer.resizeSensorEnabled&&d()},c=Object.prototype.toString.call(e),f="[object Array]"===c||"[object NodeList]"===c||"[object HTMLCollection]"===c||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(f)for(var c=0,g=e.length;c<g;c++)u(e[c],q);else u(e,q);this.detach=function(){if(f)for(var a=0,c=e.length;a<c;a++)b.detach(e[a]);else b.detach(e)}};
b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();
(function(){Editor.initMath();GraphViewer.initCss();if(null!=window.onDrawioViewerLoad)window.onDrawioViewerLoad();else GraphViewer.processElements()})();
diff --git a/src/main/webapp/mxgraph/mxClient.js b/src/main/webapp/mxgraph/mxClient.js
index 989d804f..cdbeba2f 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"14.6.9",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
+var mxClient={VERSION:"14.6.10",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||
0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),
@@ -384,9 +384,10 @@ mxShape.prototype.paint=function(a){var b=!1;if(null!=a&&this.outline){var c=a.s
null!=this.stencil&&this.stencilPointerEvents){var n=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(m=this.createTransparentSvgRectangle(n.x,n.y,n.width,n.height),this.node.appendChild(m)):(e=a.createRect("rect",n.x/e,n.y/e,n.width/e,n.height/e),e.appendChild(a.createTransparentFill()),e.stroked="false",a.root.appendChild(e))}null!=this.stencil?this.stencil.drawShape(a,this,f,g,k,l):(a.setStrokeWidth(this.strokewidth),e=this.getWaypoints(),null!=e?1<e.length&&this.paintEdgeShape(a,
e):this.paintVertexShape(a,f,g,k,l));null!=m&&null!=a.state&&null!=a.state.transform&&m.setAttribute("transform",a.state.transform);null!=a&&this.outline&&!b&&(a.rect(f,g,k,l),a.stroke())};mxShape.prototype.getWaypoints=function(){var a=this.points,b=null;if(null!=a&&(b=[],0<a.length)){var c=this.scale,d=Math.max(c,1),e=a[0];b.push(new mxPoint(e.x/c,e.y/c));for(var f=1;f<a.length;f++){var g=a[f];(Math.abs(e.x-g.x)>=d||Math.abs(e.y-g.y)>=d)&&b.push(new mxPoint(g.x/c,g.y/c));e=g}}return b};
mxShape.prototype.configureCanvas=function(a,b,c,d,e){var f=null;null!=this.style&&(f=this.style.dashPattern);a.setAlpha(this.opacity/100);a.setFillAlpha(this.fillOpacity/100);a.setStrokeAlpha(this.strokeOpacity/100);null!=this.isShadow&&a.setShadow(this.isShadow);null!=this.isDashed&&a.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);null!=f&&a.setDashPattern(f);null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?
-(b=this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke);null==this.style||null!=this.fill&&this.fill!=mxConstants.NONE||"0"!=mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||(a.pointerEvents=!1)};mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};
-mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),this.paintForeground(a,b,c,d,e))};mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};
-mxShape.prototype.paintEdgeShape=function(a,b){};mxShape.prototype.getArcSize=function(a,b){var c;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?c=Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.min(a*c,b*c));return c};
+(b=this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke);this.configurePointerEvents(a)};mxShape.prototype.configurePointerEvents=function(a){null==this.style||null!=this.fill&&this.fill!=mxConstants.NONE||"0"!=mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||(a.pointerEvents=!1)};
+mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),this.paintForeground(a,b,c,d,e))};
+mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};mxShape.prototype.paintEdgeShape=function(a,b){};
+mxShape.prototype.getArcSize=function(a,b){var c;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?c=Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.min(a*c,b*c));return c};
mxShape.prototype.paintGlassEffect=function(a,b,c,d,e,f){var g=Math.ceil(this.strokewidth/2);a.setGradient("#ffffff","#ffffff",b,c,d,.6*e,"south",.9,.1);a.begin();f+=2*g;this.isRounded?(a.moveTo(b-g+f,c-g),a.quadTo(b-g,c-g,b-g,c-g+f),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g+f),a.quadTo(b+d+g,c-g,b+d+g-f,c-g)):(a.moveTo(b-g,c-g),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g));a.close();a.fill()};
mxShape.prototype.addPoints=function(a,b,c,d,e,f,g){if(null!=b&&0<b.length){g=null!=g?g:!0;var k=b[b.length-1];if(e&&c){b=b.slice();var l=b[0],l=new mxPoint(k.x+(l.x-k.x)/2,k.y+(l.y-k.y)/2);b.splice(0,0,l)}var m=b[0],l=1;for(g?a.moveTo(m.x,m.y):a.lineTo(m.x,m.y);l<(e?b.length:b.length-1);){g=b[mxUtils.mod(l,b.length)];var n=m.x-g.x,m=m.y-g.y;if(c&&(0!=n||0!=m)&&(null==f||0>mxUtils.indexOf(f,l-1))){var p=Math.sqrt(n*n+m*m);a.lineTo(g.x+n*Math.min(d,p/2)/p,g.y+m*Math.min(d,p/2)/p);for(m=b[mxUtils.mod(l+
1,b.length)];l<b.length-2&&0==Math.round(m.x-g.x)&&0==Math.round(m.y-g.y);)m=b[mxUtils.mod(l+2,b.length)],l++;n=m.x-g.x;m=m.y-g.y;p=Math.max(1,Math.sqrt(n*n+m*m));n=g.x+n*Math.min(d,p/2)/p;m=g.y+m*Math.min(d,p/2)/p;a.quadTo(g.x,g.y,n,m);g=new mxPoint(n,m)}else a.lineTo(g.x,g.y);m=g;l++}e?a.close():a.lineTo(k.x,k.y)}};
@@ -449,7 +450,7 @@ mxArrowConnector.prototype.isMarkerStart=function(){return mxUtils.getValue(this
function mxText(a,b,c,d,e,f,g,k,l,m,n,p,q,t,r,u,x,y,B,A,z){mxShape.call(this);this.value=a;this.bounds=b;this.color=null!=e?e:"black";this.align=null!=c?c:mxConstants.ALIGN_CENTER;this.valign=null!=d?d:mxConstants.ALIGN_MIDDLE;this.family=null!=f?f:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(m||0);this.spacingRight=this.spacing+parseInt(n||0);
this.spacingBottom=this.spacing+parseInt(p||0);this.spacingLeft=this.spacing+parseInt(q||0);this.horizontal=null!=t?t:!0;this.background=r;this.border=u;this.wrap=null!=x?x:!1;this.clipped=null!=y?y:!1;this.overflow=null!=B?B:"visible";this.labelPadding=null!=A?A:0;this.textDirection=z;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;
mxText.prototype.replaceLinefeeds=!0;mxText.prototype.verticalTextRotation=-90;mxText.prototype.ignoreClippedStringSize=!0;mxText.prototype.ignoreStringSize=!1;mxText.prototype.textWidthPadding=8!=document.documentMode||mxClient.IS_EM?3:4;mxText.prototype.lastValue=null;mxText.prototype.cacheEnabled=!0;mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode||mxClient.IS_EM};mxText.prototype.getSvgScreenOffset=function(){return 0};
-mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};
+mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};mxText.prototype.configurePointerEvents=function(a){};
mxText.prototype.paint=function(a,b){var c=this.scale,d=this.bounds.x/c,e=this.bounds.y/c,f=this.bounds.width/c,c=this.bounds.height/c;this.updateTransform(a,d,e,f,c);this.configureCanvas(a,d,e,f,c);if(b)a.updateText(d,e,f,c,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node);else{var g=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,k=g?"html":"",l=this.value;g||"html"!=k||(l=mxUtils.htmlEntities(l,!1));"html"!=k||mxUtils.isNode(this.value)||
(l=mxUtils.replaceTrailingNewlines(l,"<div><br></div>"));var l=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==k?l.replace(/\n/g,"<br/>"):l,m=this.textDirection;m!=mxConstants.TEXT_DIRECTION_AUTO||g||(m=this.getAutoDirection());m!=mxConstants.TEXT_DIRECTION_LTR&&m!=mxConstants.TEXT_DIRECTION_RTL&&(m=null);a.text(d,e,f,c,l,this.align,this.valign,this.wrap,k,this.overflow,this.clipped,this.getTextRotation(),m)}};
mxText.prototype.redraw=function(){if(this.visible&&this.checkBounds()&&this.cacheEnabled&&this.lastValue==this.value&&(mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML))if("DIV"==this.node.nodeName)mxClient.IS_SVG?this.redrawHtmlShapeWithCss3():(this.updateSize(this.node,null==this.state||null==this.state.view.textDiv),mxClient.IS_IE&&(null==document.documentMode||8>=document.documentMode)?this.updateHtmlFilter():this.updateHtmlTransform()),this.updateBoundingBox();else{var a=
@@ -1223,9 +1224,9 @@ mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST][mxUtils.mod(a,4)]};mxGra
mxGraph.prototype.getImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_IMAGE]:null};mxGraph.prototype.isTransparentState=function(a){var b=!1;if(null!=a)var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),b=b==mxConstants.NONE&&c==mxConstants.NONE&&null==this.getImage(a);return b};
mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};
mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};
-mxGraph.prototype.isSwimlane=function(a,b){return null==a||this.model.getParent(a)==this.model.getRoot()||this.model.isEdge(a)?!1:this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};mxGraph.prototype.setEnabled=function(a){this.enabled=a};
-mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};
-mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
+mxGraph.prototype.isSwimlane=function(a,b){return null==a||this.model.getParent(a)==this.model.getRoot()||this.model.isEdge(a)?!1:this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};
+mxGraph.prototype.setEnabled=function(a){this.enabled=a;this.fireEvent(new mxEventObject("enabledChanged","enabled",a))};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};
+mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
mxGraph.prototype.isCellCloneable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};
mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};
mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};mxGraph.prototype.isCellDeletable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};
diff --git a/src/main/webapp/resources/dia_ar.txt b/src/main/webapp/resources/dia_ar.txt
index 0ba3c9c2..59b94499 100644
--- a/src/main/webapp/resources/dia_ar.txt
+++ b/src/main/webapp/resources/dia_ar.txt
@@ -2,30 +2,30 @@
# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE
about=‫عن تطبيق ‬
aboutDrawio=‫عن تطبيق draw.io‬
-accessDenied=Access Denied
-action=Action
+accessDenied=‫غير مسموح بالدخول‬
+action=‫فعل‬
actualSize=‫الحجم الحقيقي‬
add=‫إضافة‬
-addAccount=Add account
-addedFile=Added {1}
+addAccount=‫إضافة حساب‬
+addedFile=‫الملفات المضافة‬
addImages=‫إضافة صور‬
addImageUrl=‫إضافة رابط صورة‬
addLayer=‫إضافة طبقة‬
addProperty=‫إضافة خاصية‬
-address=Address
+address=‫عنوان‬
addToExistingDrawing=‫أضف إلى الرسم الحالي‬
addWaypoint=‫أضف نقطة على المسار‬
-adjustTo=Adjust to
+adjustTo=‫ضبط الي‬
advanced=‫متقدم‬
align=‫صُف‬
alignment=‫محاذاة‬
allChangesLost=‫سيتم فقد جميع التغييرات‬
-allPages=All Pages
-allProjects=All Projects
-allSpaces=All Spaces
-allTags=All Tags
-anchor=Anchor
-android=Android
+allPages=‫كل الصفحات‬
+allProjects=‫كل المشاريع‬
+allSpaces=‫كل المساحات‬
+allTags=‫كل الواصفات‬
+anchor=‫مرساة‬
+android=‫آلي‬
angle=‫زاوية‬
arc=Arc
areYouSure=‫هل أنت متأكد؟‬
@@ -33,7 +33,7 @@ ensureDataSaved=‫المرجو التحقق من حفظ البيانات قبل
allChangesSaved=‫تم حفظ جميع التغييرات‬
allChangesSavedInDrive=‫تم حفظ جميع التغييرات إلى Drive‬
allowPopups=‫السماح للنوافذ لتفادي هذه النافذة‬
-allowRelativeUrl=Allow relative URL
+allowRelativeUrl=‫اسمح بالوصلات الشقيقة‬
alreadyConnected=‫العقد متصلة مسبقا‬
apply=‫نفذ‬
archiMate21=ArchiMate 2.1
@@ -42,7 +42,7 @@ arrow=‫سهم‬
arrows=‫أسهم‬
asNew=‫كجديد‬
atlas=‫أطلس‬
-author=Author
+author=‫المخول‬
authorizationRequired=‫الترخيص ضروري‬
authorizeThisAppIn=‫الترخيص لهذا التطبيق في {1}‬
authorize=‫ترخيص‬
@@ -50,11 +50,11 @@ authorizing=‫بصدد الترخيص‬
automatic=‫تلقائي‬
autosave=‫حفظ تلقائي‬
autosize=‫تحجيم تلقائي‬
-attachments=Attachments
-aws=AWS
-aws3d=AWS 3D
-azure=Azure
-back=Back
+attachments=‫الملحقات‬
+aws=‫خدمات أمازون السحابية‬
+aws3d=‫خدمات أمازون السحابية ثلاثية الابعاد‬
+azure=‫خدممة ميكروسوفت السحابية‬
+back=‫للخلف‬
background=‫خلفية‬
backgroundColor=‫لون الخلفية‬
backgroundImage=‫صورة الخلفية‬
@@ -63,10 +63,10 @@ blankDrawing=‫تصميم فارغ‬
blankDiagram=‫مخطط فارغ‬
block=‫كتلة‬
blockquote=‫اقتباس‬
-blog=Blog
+blog=‫مدونة‬
bold=‫تغليظ الخط‬
bootstrap=Bootstrap
-border=Border
+border=‫حد‬
borderColor=‫لون الحد‬
borderWidth=‫عرض الحد‬
bottom=‫أسفل‬
diff --git a/src/main/webapp/resources/dia_es.txt b/src/main/webapp/resources/dia_es.txt
index ccc99285..30ee7fb1 100644
--- a/src/main/webapp/resources/dia_es.txt
+++ b/src/main/webapp/resources/dia_es.txt
@@ -431,7 +431,7 @@ lastChange=El último cambio fue hace {1}
lessThanAMinute=menos de un minuto
licensingError=Error de licencia
licenseHasExpired=La licencia para {1} ha expirado en {2}. Haga clic aquí.
-licenseRequired=This feature requires draw.io to be licensed.
+licenseRequired=Esta funcionalidad requiere una licencia de draw.io.
licenseWillExpire=La licencia para {1} expirará en {2}. Haga clic aquí.
lineJumps=Saltos de línea
linkAccountRequired=Se requiere una cuenta de Google para ver el enlace si el diagrama no es público.
@@ -564,9 +564,9 @@ paperSize=Tamaño del papel
pattern=Patrón
parallels=Parallels
paste=Pegar
-pasteData=Paste Data
+pasteData=Pegar datos
pasteHere=Pegar aquí
-pasteSize=Paste Size
+pasteSize=Pegar tamaño
pasteStyle=Pegar estilo
perimeter=Perímetro
permissionAnyone=Cualquiera puede editar
@@ -961,10 +961,10 @@ confALibPageDesc=Ésta página contiene librerias personalizadas adjuntas
confATempPageDesc=Ésta página contiene plantillas personalizadas adjuntas
working=Trabajando
confAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates
-confANoCustLib=No Custom Libraries
-delFailed=Delete failed!
-showID=Show ID
-confAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.
+confANoCustLib=Sin Librerias Personalizadas
+delFailed=¡La eliminiación falló!
+showID=Mostrar ID
+confAIncorrectLibFileType=Formato de archivo incorrecto. Las librerias deberían ser archivos XML.
uploading=Uploading
confALibExist=This library already exists
confAUploadSucc=Uploaded successfully
diff --git a/src/main/webapp/resources/dia_eu.txt b/src/main/webapp/resources/dia_eu.txt
index b33a8afc..695544af 100644
--- a/src/main/webapp/resources/dia_eu.txt
+++ b/src/main/webapp/resources/dia_eu.txt
@@ -109,7 +109,7 @@ diagramPngDesc=Edita daitekeen bitmap irudia
diagramSvgDesc=Edita daitekeen bektore irudia
didYouMeanToExportToPdf=PDF-era esportatzea nahi?
draftFound={1}'-ren zirriborro bat aurkitu da. Kargatu editorean edo baztertu segitzeko.
-draftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.
+draftRevisionMismatch=Diagramaren bertsio desberdin bat dago orrialde honen zirriborro partekatuan. Editatu zirriborroaren diagrama azken bertsioarekin lanean ari zarela ziurtatzeko.
selectDraft=Aukeratu zirriborro bat editatzen jarraitzeko:
dragAndDropNotSupported=Arrastatu eta jaregitea ez da onartzen irudientzat. Nahi al duzu inportatzea hala ere?
dropboxCharsNotAllowed=Honako karaktereak ez dira onartzen: \ / : ? * " |
@@ -431,7 +431,7 @@ lastChange=Azken aldaketa {1} lehenago egina
lessThanAMinute=minututxo bat
licensingError=Lizentzia errorea
licenseHasExpired={1}-ren lizentzia {2}-an iraungi da.
-licenseRequired=This feature requires draw.io to be licensed.
+licenseRequired=Ezaugarri honek draw.io lizentzia izatea eskatzen du.
licenseWillExpire={1}-ren lizentzia {2}-an iraungiko da. Egin klik hemen.
lineJumps=Lerro-jausia
linkAccountRequired=Googleren kontu bat behar da esteka hau ikusteko diagrama publikoa ez bada.
@@ -1136,6 +1136,6 @@ confACheckPagesWEmbed=Bilatzen draw.io diagramak kaptsulatuta dituzten orriak
confADelBrokenEmbedDiagLnk=kaptsulatutako diagramen esteka apurtuak kentzen
replaceWith=Ordeztu honekin
replaceAll=Ordeztu denak
-confASkipDiagModified=Skipped "{1}" as it was modified after initial import
-replFind=Replace/Find
-matchesRepl={1} matches replaced
+confASkipDiagModified="{1}" saltatu da hasierako inportazioaren ondoren aldatu zen bezala
+replFind=ordeztu/bilatu
+matchesRepl={1} bat egite ordeztu dira
diff --git a/src/main/webapp/resources/dia_it.txt b/src/main/webapp/resources/dia_it.txt
index 51d2a444..a9a14127 100644
--- a/src/main/webapp/resources/dia_it.txt
+++ b/src/main/webapp/resources/dia_it.txt
@@ -3,10 +3,10 @@
about=Informazioni su
aboutDrawio=Informazioni su draw.io
accessDenied=Accesso negato
-action=Action
+action=Azione
actualSize=Dimensioni attuali
add=Aggiungi
-addAccount=Add account
+addAccount=Aggiungi account
addedFile=Aggiunto
addImages=Aggiungi immagini
addImageUrl=Aggiungi immagine da URL
@@ -27,13 +27,13 @@ allTags=Tutti i tags
anchor=Ancora
android=Android
angle=Angolo
-arc=Arc
+arc=Arco
areYouSure=Sei sicuro?
ensureDataSaved=Assicurati di aver salvato il tuo lavoro prima di chiudere.
allChangesSaved=Tutte le modifiche sono state salvate
allChangesSavedInDrive=Tutte le modifiche sono state salvate sul Drive
allowPopups=Autorizzare i pop-up per non vedere questa finestra di dialogo
-allowRelativeUrl=Allow relative URL
+allowRelativeUrl=Consenti URL relativi
alreadyConnected=Nodi già connessi
apply=Applica
archiMate21=ArchiMate 2.1
@@ -54,7 +54,7 @@ attachments=Allegati
aws=AWS
aws3d=AWS 3D
azure=Azure
-back=Back
+back=Indietro
background=Sfondo
backgroundColor=Colore sfondo
backgroundImage=Immagine di sfondo
@@ -66,7 +66,7 @@ blockquote=Blocchi di testo
blog=Blog
bold=Grassetto
bootstrap=Bootstrap
-border=Border
+border=Bordo/contorno
borderColor=Colore bordo
borderWidth=Spessore bordo
bottom=In basso
@@ -89,7 +89,7 @@ changeOrientation=Cambia orientamento
changeUser=Cambia utente
changeStorage=Change storage
changesNotSaved=Le modifiche non sono state salvate
-classDiagram=Class Diagram
+classDiagram=Classe Diagramma
userJoined={1} è entrato
userLeft={1} è uscito
chatWindowTitle=Chat
@@ -102,11 +102,11 @@ commitMessage=Invia il messaggio
configLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!
configLinkConfirm=Click OK to configure and restart draw.io.
csv=CSV
-dark=Dark
-diagramXmlDesc=XML File
-diagramHtmlDesc=HTML File
-diagramPngDesc=Editable Bitmap Image
-diagramSvgDesc=Editable Vector Image
+dark=Scuro
+diagramXmlDesc=File XML
+diagramHtmlDesc=File HTML
+diagramPngDesc=Immagine Bitmap modificabile
+diagramSvgDesc=Immagine Vettoriale modificabile
didYouMeanToExportToPdf=Did you mean to export to PDF?
draftFound=È stata trovata una bozza per '{1}'. Caricala nell'editor o scartala per continuare.
draftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.
@@ -122,7 +122,7 @@ clearDefaultStyle=Cancellare lo stile di default
clearWaypoints=Cancellare i punti di passaggio
clipart=Clipart
close=Chiudi
-closingFile=Closing file
+closingFile=Chiusura file
collaborator=Collaboratore
collaborators=Collaboratori
collapse=Riduci
@@ -132,7 +132,7 @@ collapsible=Riducibile
comic=Comic
comment=Commento
commentsNotes=Commenti/Note
-compress=Compress
+compress=Comprimi
configuration=Configuration
connect=Connetti
connecting=Connessione
@@ -191,7 +191,7 @@ discardChanges=Scarta le modifiche
disconnected=Disconnesso
distribute=Distribuire
done=Fatto
-doNotShowAgain=Do not show again
+doNotShowAgain=Non mostrare più
dotted=Puntato
doubleClickOrientation=Doppio click per cambiare orientamento
doubleClickTooltip=Doppio click per inserire il testo
@@ -237,7 +237,7 @@ embed=Integra
embedImages=Integra immagini
mainEmbedNotice=Incolla nella pagina
electrical=Elettrico
-ellipse=Ellipse
+ellipse=Ellisse
embedNotice=Aggiungi questo oggetto alla fine della pagina una singola volta
enterGroup=Inserisci gruppo
enterName=Inserisci nome
@@ -257,7 +257,7 @@ errorSavingFileUnknown=Errore nell'autorizzazione dei server di Google. Aggiorna
errorSavingFileForbidden=Errore nel salvataggio del file. Diritti di accesso non sufficienti.
errorSavingFileNameConflict=Impossibile salvare il diagramma. La pagina corrente contiene già un file con questo nome '{1}'
errorSavingFileNotFound=Errore nel salvataggio del file. Il file non è stato trovato
-errorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.
+errorSavingFileReadOnlyMode=Impossibile salvare il diagramma quando la modalità sola lettura è attivata.
errorSavingFileSessionTimeout=La tua sessione è terminata. Perfavore <a target='_blank' href='{1}'>{2}</a> e ritorna su questa scheda per riprovare a salvare
errorSendingFeedback=Errore nell'invio del feedback
errorUpdatingPreview=Errore nell'aggiornamento dell'anteprima
@@ -279,13 +279,13 @@ feedbackSent=Feedback inviato con successo
floorplans=Piantine
file=File
fileChangedOverwriteDialog=Il file è stato cambiato. Vuoi sovrascrivere le modifiche?
-fileChangedSyncDialog=The file has been modified. Do you want to synchronize those changes?
-fileChangedSync=The file has been modified. Click here to synchronize.
+fileChangedSyncDialog=Il file è stato modificato. Vuoi sincronizzare i cambiamenti?
+fileChangedSync=Il file è stato modificato. Clicca qui per sincronizzare i cambiamenti.
overwrite=Sovrascrivi
-synchronize=Synchronize
+synchronize=Sincronizza
filename=Nome del file
fileExists=Il file esiste già
-fileMovedToTrash=File was moved to trash
+fileMovedToTrash=Il file è stato spostato nel cestino
fileNearlyFullSeeFaq=File quasi pieno. Perfavore fai riferimento al nostro FAQ
fileNotFound=File non trovato
repositoryNotFound=Deposito non trovato
@@ -353,14 +353,14 @@ github=GitHub
gitlab=GitLab
gliffy=Gliffy
global=Globale
-googleDocs=Google Docs
+googleDocs=Google Documenti
googleDrive=Google Drive
googleGadget=Google Gadget
googlePlus=Google+
googleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:
-googleSlides=Google Slides
+googleSlides=Google Presentazioni
googleSites=Google Sites
-googleSheets=Google Sheets
+googleSheets=Google Fogli
gradient=Gradiente
gradientColor=Colore
grid=Griglia
@@ -411,7 +411,7 @@ insertRowBefore=Inserisci riga sopra
insertRowAfter=Inserisci riga sotto
insertText=Inserisci testo
inserting=Inserimento in corso
-installApp=Install App
+installApp=Installa app
invalidFilename=Il nome del diagramma non può contenere i seguenti caratteri: \ / | : ; { } < > & + ? = "
invalidLicenseSeeThisPage=La tua licenza è invalida. Perfavore leggi questo <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.
invalidInput=Invalid input
@@ -465,18 +465,18 @@ loggedOut=Uscito
logIn=Accedi
loveIt=Mi piace draw.io
lucidchart=Lucidchart
-maps=Maps
+maps=Mappe
mathematicalTypesetting=Parametri di scrittura matematica
makeCopy=Fai una copia
manual=Manuale
-merge=Merge
+merge=Unisci
mermaid=Mermaid
microsoftOffice=Microsoft Office
microsoftExcel=Microsoft Excel
microsoftPowerPoint=Microsoft PowerPoint
microsoftWord=Microsoft Word
middle=Al centro
-minimal=Minimal
+minimal=Minimale
misc=Miscellanea
mockups=Modello
modificationDate=Data di modifica
@@ -566,7 +566,7 @@ parallels=Parallels
paste=Incolla
pasteData=Paste Data
pasteHere=Incolla qui
-pasteSize=Paste Size
+pasteSize=Incolla dimensione
pasteStyle=Incolla stile
perimeter=Perimetro
permissionAnyone=Chiunque può modificare
@@ -600,7 +600,7 @@ readOnly=Sola lettura
reconnecting=Riconessione
recentlyUpdated=Aggiornato di recente
recentlyViewed=Visto di recente
-rectangle=Rectangle
+rectangle=Rettangolo
redirectToNewApp=Questo file è stato creato o modificato in draw.io pro. Sarai reindirizzato ora.
realtimeTimeout=Sembra che tu abbia fatto alcune modifiche mentre eri offline. Purtroppo queste modifiche non possono essere salvate.
redo=Ripeti
@@ -667,7 +667,7 @@ selectFile=Seleziona file
selectFolder=Seleziona cartella
selectFont=Scegli un font
selectNone=Nessuna selezione
-selectTemplate=Select Template
+selectTemplate=Seleziona template
selectVertices=Seleziona vertici
sendMessage=Invia
sendYourFeedback=Invia il tuo feedback
@@ -680,7 +680,7 @@ shape=Forma
shapes=Forme
share=Condividi
shareLink=Link per la modifica condivisa
-sharingAvailable=Sharing available for Google Drive and OneDrive files.
+sharingAvailable=Condivisione disponibile per file su Google Drive e OneDrive.
sharp=Nitidezza
show=Mostra
showStartScreen=Mostra la schermata d'inizio
@@ -700,7 +700,7 @@ space=Spazio
spacing=Spaziatura
specialLink=Link speciale
standard=Normale
-startDrawing=Start drawing
+startDrawing=Inizia disegno
stopDrawing=Stop drawing
starting=Avvio in corso
straight=Diritta
@@ -730,7 +730,7 @@ to=A
toBack=Porta dietro
toFront=Porta davanti
tooLargeUseDownload=Too large, use download instead.
-toolbar=Toolbar
+toolbar=Barra degli strumenti
tooltips=Strumento di informazione
top=In alto
topAlign=Allinea in alto
@@ -761,14 +761,14 @@ updatingPreview=Aggiornamento dell'anteprima in corso. Ti preghiamo di attendere
updatingSelection=Aggiornamento della selezione in corso. Ti preghiamo di attendere...
upload=Carica
url=URL
-useOffline=Use Offline
+useOffline=Utilizza offline
useRootFolder=Use root folder?
userManual=Manuale d'uso
vertical=Verticale
verticalFlow=Flusso verticale
verticalTree=Albero verticale
view=Visualizza
-viewerSettings=Viewer Settings
+viewerSettings=Impostazioni visualizzatore
viewUrl=Link per visualizzare: {1}
voiceAssistant=Voce di assistenza (beta)
warning=Avviso
@@ -799,33 +799,33 @@ venndiagrams=Diagrammi di Venn
webEmailOrOther=Web, email o qualsiasi altro indirizzo internet
webLink=Link web
wireframes=Rappresentazione in 3D
-property=Property
-value=Value
-showMore=Show More
-showLess=Show Less
-myDiagrams=My Diagrams
-allDiagrams=All Diagrams
+property=Proprietà
+value=Valore
+showMore=Visualizza di più
+showLess=Visualizza di meno
+myDiagrams=I miei diagrammi
+allDiagrams=Tutti i diagrammi
recentlyUsed=Recently used
listView=List view
gridView=Grid view
-resultsFor=Results for '{1}'
-oneDriveCharsNotAllowed=The following characters are not allowed: ~ " # % * : < > ? / \ { | }
-oneDriveInvalidDeviceName=The specified device name is invalid
+resultsFor=Risultati per '{1}'
+oneDriveCharsNotAllowed=I seguenti caratteri non sono accettati: ~ " # % * : < > ? / \ { | }
+oneDriveInvalidDeviceName=Il nome del dispositivo specificato non è valido
officeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.
officeSelectSingleDiag=Please select a single draw.io diagram only without other contents.
officeSelectDiag=Please select a draw.io diagram.
officeCannotFindDiagram=Cannot find a draw.io diagram in the selection
-noDiagrams=No diagrams found
-authFailed=Authentication failed
+noDiagrams=Nessun diagramma trovato
+authFailed=Autenticazione fallita
officeFailedAuthMsg=Unable to successfully authenticate user or authorize application.
-convertingDiagramFailed=Converting diagram failed
+convertingDiagramFailed=Conversione diagramma fallita
officeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.
-insertingImageFailed=Inserting image failed
+insertingImageFailed=Inserimento immagine fallito
officeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.
-folderEmpty=Folder is empty
-recent=Recent
-sharedWithMe=Shared With Me
-sharepointSites=Sharepoint Sites
+folderEmpty=La cartella è vuota
+recent=Recenti
+sharedWithMe=Condivisi con me
+sharepointSites=Siti Sharepoint
errorFetchingFolder=Error fetching folder items
errorAuthOD=Error authenticating to OneDrive
officeMainHeader=Adds draw.io diagrams to your document.
@@ -835,30 +835,30 @@ officeStep2=Select a draw.io diagram.
officeStep3=Insert the diagram into the document.
officeAuthPopupInfo=Please complete the authentication in the pop-up window.
officeSelDiag=Select draw.io Diagram:
-files=Files
-shared=Shared
+files=File
+shared=Condivisi
sharepoint=Sharepoint
officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
officeClickToEdit=Click icon to start editing:
-pasteDiagram=Paste draw.io diagram here
-connectOD=Connect to OneDrive
+pasteDiagram=Incolla diagramma draw.io qui
+connectOD=Connetti a OneDrive
selectChildren=Select Children
selectSiblings=Select Siblings
selectParent=Select Parent
selectDescendants=Select Descendants
lastSaved=Last saved {1} ago
-resolve=Resolve
-reopen=Re-open
-showResolved=Show Resolved
-reply=Reply
-objectNotFound=Object not found
-reOpened=Re-opened
-markedAsResolved=Marked as resolved
-noCommentsFound=No comments found
-comments=Comments
-timeAgo={1} ago
+resolve=Risolvi
+reopen=Riapri
+showResolved=Visualizza risolti
+reply=Rispondi
+objectNotFound=Oggetto non trovato
+reOpened=Riaperto
+markedAsResolved=Segnato come risolto
+noCommentsFound=Nessun commento trovato
+comments=Commenti
+timeAgo={1} fa
confluenceCloud=Confluence Cloud
-libraries=Libraries
+libraries=Librerie
confAnchor=Confluence Page Anchor
confTimeout=The connection has timed out
confSrvTakeTooLong=The server at {1} is taking too long to respond.
@@ -866,41 +866,41 @@ confCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page
confSaveTry=Please save the page and try again.
confCannotGetID=Unable to determine page ID
confContactAdmin=Please contact your Confluence administrator.
-readErr=Read Error
-editingErr=Editing Error
+readErr=Errore di lettura
+editingErr=Errore di modifica
confExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page
confEditedExt=Diagram/Page edited externally
-diagNotFound=Diagram Not Found
+diagNotFound=Diagramma non trovato
confEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.
confCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.
-retBack=Return back
+retBack=Torna indietro
confDiagNotPublished=The diagram does not belong to a published page
createdByDraw=Created by draw.io
-filenameShort=Filename too short
-invalidChars=Invalid characters
-alreadyExst={1} already exists
-draftReadErr=Draft Read Error
-diagCantLoad=Diagram cannot be loaded
-draftWriteErr=Draft Write Error
-draftCantCreate=Draft could not be created
+filenameShort=Nome del file troppo corto
+invalidChars=Caratteri non validi
+alreadyExst={1} esiste già
+draftReadErr=Errore lettura bozza
+diagCantLoad=Il diagramma non può essere caricato
+draftWriteErr=Errore scrittura bozza
+draftCantCreate=La bozza non può essere creata
confDuplName=Duplicate diagram name detected. Please pick another name.
confSessionExpired=Looks like your session expired. Log in again to keep working.
login=Login
-drawPrev=draw.io preview
-drawDiag=draw.io diagram
+drawPrev=anteprima draw.io
+drawDiag=diagramma draw.io
invalidCallFnNotFound=Invalid Call: {1} not found
invalidCallErrOccured=Invalid Call: An error occurred, {1}
-anonymous=Anonymous
+anonymous=Anonimo
confGotoPage=Go to containing page
-showComments=Show Comments
-confError=Error: {1}
+showComments=Visualizza commenti
+confError=Errore: {1}
gliffyImport=Gliffy Import
gliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.
gliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.
startImport=Start Import
drawConfig=draw.io Configuration
customLib=Custom Libraries
-customTemp=Custom Templates
+customTemp=Template personalizzati
pageIdsExp=Page IDs Export
drawReindex=draw.io re-indexing (beta)
working=Working
@@ -908,13 +908,13 @@ drawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist
createConfSp=Create Config Space
unexpErrRefresh=Unexpected error, please refresh the page and try again.
configJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to
-thisPage=this page
+thisPage=questa pagina
curCustLib=Current Custom Libraries
libName=Library Name
-action=Action
+action=Azione
drawConfID=draw.io Config ID
addLibInst=Click the "Add Library" button to upload a new library.
-addLib=Add Library
+addLib=Aggiungi libreria
customTempInst1=Custom templates are draw.io diagrams saved in children pages of
customTempInst2=For more details, please refer to
tempsPage=Templates page
@@ -953,9 +953,9 @@ confASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!
confADiagUptoDate=Diagram "{1}" is up to date.
confACheckPagesWDraw=Checking pages having draw.io diagrams.
confAErrOccured=An error occurred!
-savedSucc=Saved successfully
+savedSucc=Salvato correttamente
confASaveFailedErr=Saving Failed (Unexpected Error)
-character=Character
+character=Carattere
confAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment
confALibPageDesc=This page contains draw.io custom libraries as attachments
confATempPageDesc=This page contains draw.io custom templates as attachments
@@ -980,10 +980,10 @@ ruler=Ruler
units=Units
points=Points
inches=Inches
-millimeters=Millimeters
+millimeters=Millimetri
confEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.
confDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session's modifications.
-macroNotFound=Macro Not Found
+macroNotFound=Macro non trovata
confAInvalidPageIdsFormat=Incorrect Page IDs file format
confACollectingCurPages=Collecting current pages
confABuildingPagesMap=Building pages mapping
@@ -992,7 +992,7 @@ confAProcessDrawDiagDone=Finished processing imported draw.io diagrams
confAProcessImpPages=Started processing imported pages
confAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"
confAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"
-confAImpDiagram=Importing diagram "{1}"
+confAImpDiagram=Importa diagramma "{1}"
confAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported.
confAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.
confAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.
@@ -1043,38 +1043,38 @@ confAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.
confAErrCheckDrawDiag=Cannot check diagram {1}
confAErrFetchPageList=Error fetching pages list
confADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes
-invalidSel=Invalid selection
-diagNameEmptyErr=Diagram name cannot be empty
-openDiagram=Open Diagram
-newDiagram=New diagram
-editable=Editable
+invalidSel=Selezione non valida
+diagNameEmptyErr=Il nome del diagramma non può essere vuoto
+openDiagram=Apri diagramma
+newDiagram=Nuovo diagramma
+editable=Modificabile
confAReimportStarted=Re-import {1} diagrams started...
spaceFilter=Filter by spaces
curViewState=Current Viewer State
pageLayers=Page and Layers
-customize=Customize
+customize=Personalizza
firstPage=First Page (All Layers)
curEditorState=Current Editor State
noAnchorsFound=No anchors found
-attachment=Attachment
+attachment=Allegato
curDiagram=Current Diagram
-recentDiags=Recent Diagrams
-csvImport=CSV Import
-chooseFile=Choose a file...
-choose=Choose
+recentDiags=Diagrammi recenti
+csvImport=Importa CSV
+chooseFile=Scegli un file...
+choose=Scegli
gdriveFname=Google Drive filename
widthOfViewer=Width of the viewer (px)
heightOfViewer=Height of the viewer (px)
autoSetViewerSize=Automatically set the size of the viewer
-thumbnail=Thumbnail
+thumbnail=Miniatura
prevInDraw=Preview in draw.io
onedriveFname=OneDrive filename
diagFname=Diagram filename
-diagUrl=Diagram URL
+diagUrl=URL diagramma
showDiag=Show Diagram
diagPreview=Diagram Preview
csvFileUrl=CSV File URL
-generate=Generate
+generate=Genera
selectDiag2Insert=Please select a diagram to insert it.
errShowingDiag=Unexpected error. Cannot show diagram
noRecentDiags=No recent diagrams found
diff --git a/src/main/webapp/resources/dia_ru.txt b/src/main/webapp/resources/dia_ru.txt
index 06cf44fd..4d72abf9 100644
--- a/src/main/webapp/resources/dia_ru.txt
+++ b/src/main/webapp/resources/dia_ru.txt
@@ -105,12 +105,12 @@ csv=CSV
dark=Темная
diagramXmlDesc=XML File
diagramHtmlDesc=HTML File
-diagramPngDesc=Editable Bitmap Image
-diagramSvgDesc=Editable Vector Image
-didYouMeanToExportToPdf=Did you mean to export to PDF?
+diagramPngDesc=Редактируемое растровое изображение
+diagramSvgDesc=Редактируемое векторное изображение
+didYouMeanToExportToPdf=Вы хотели экспортирвоать в PDF?
draftFound=Был обнаружен черновик '{1}'. Загрузите его в редактор или откажитесь, чтобы продолжить.
draftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.
-selectDraft=Select a draft to continue editing:
+selectDraft=Выберите черновик, чтобы продолжить редактирование
dragAndDropNotSupported=Перетаскивание изображений не поддерживается. Импортировать изображение?
dropboxCharsNotAllowed=Следующие символы не допускаются: \ / : ? * " |
check=Проверить
@@ -835,30 +835,30 @@ officeStep2=Select a draw.io diagram.
officeStep3=Insert the diagram into the document.
officeAuthPopupInfo=Please complete the authentication in the pop-up window.
officeSelDiag=Select draw.io Diagram:
-files=Files
+files=Файлы
shared=Shared
sharepoint=Sharepoint
officeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.
-officeClickToEdit=Click icon to start editing:
-pasteDiagram=Paste draw.io diagram here
-connectOD=Connect to OneDrive
+officeClickToEdit=Нажмите на значок, чтобы начать редактирование
+pasteDiagram=Вставьте диаграмму draw.io здесь
+connectOD=Соединить с OneDrive
selectChildren=Select Children
selectSiblings=Select Siblings
selectParent=Select Parent
selectDescendants=Select Descendants
lastSaved=Last saved {1} ago
resolve=Resolve
-reopen=Re-open
+reopen=Переоткрыть
showResolved=Show Resolved
-reply=Reply
-objectNotFound=Object not found
-reOpened=Re-opened
+reply=Ответить
+objectNotFound=Объект не найден
+reOpened=Переоткрыт
markedAsResolved=Marked as resolved
noCommentsFound=No comments found
-comments=Comments
-timeAgo={1} ago
+comments=Комментарии
+timeAgo={1} назад
confluenceCloud=Confluence Cloud
-libraries=Libraries
+libraries=Библиотеки
confAnchor=Confluence Page Anchor
confTimeout=The connection has timed out
confSrvTakeTooLong=The server at {1} is taking too long to respond.
@@ -870,22 +870,22 @@ readErr=Read Error
editingErr=Editing Error
confExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page
confEditedExt=Diagram/Page edited externally
-diagNotFound=Diagram Not Found
+diagNotFound=Диаграмма не найдена
confEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.
confCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.
-retBack=Return back
+retBack=Вернуться
confDiagNotPublished=The diagram does not belong to a published page
createdByDraw=Created by draw.io
filenameShort=Filename too short
-invalidChars=Invalid characters
+invalidChars=Недопустимые символы
alreadyExst={1} already exists
draftReadErr=Draft Read Error
-diagCantLoad=Diagram cannot be loaded
-draftWriteErr=Draft Write Error
-draftCantCreate=Draft could not be created
-confDuplName=Duplicate diagram name detected. Please pick another name.
-confSessionExpired=Looks like your session expired. Log in again to keep working.
-login=Login
+diagCantLoad=Диаграмма не может быть загружена
+draftWriteErr=Ошибка записи в черновик
+draftCantCreate=Черновик не может быть создан
+confDuplName=Имя диаграммы уже используется. Пожалуйста, выберите другое имя
+confSessionExpired=Кажется, время вашей сессии истекло. Войдите снова, чтобы продолжить работу
+login=Войти
drawPrev=draw.io preview
drawDiag=draw.io diagram
invalidCallFnNotFound=Invalid Call: {1} not found
@@ -893,11 +893,11 @@ invalidCallErrOccured=Invalid Call: An error occurred, {1}
anonymous=Anonymous
confGotoPage=Go to containing page
showComments=Show Comments
-confError=Error: {1}
+confError=Ошибка: {1}
gliffyImport=Gliffy Import
gliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.
gliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.
-startImport=Start Import
+startImport=Начать импорт
drawConfig=draw.io Configuration
customLib=Custom Libraries
customTemp=Custom Templates
diff --git a/src/main/webapp/resources/dia_th.txt b/src/main/webapp/resources/dia_th.txt
index d771ee89..9bc17fd3 100644
--- a/src/main/webapp/resources/dia_th.txt
+++ b/src/main/webapp/resources/dia_th.txt
@@ -12,7 +12,7 @@ addImages=เพิ่มรูปภาพ
addImageUrl=เพิ่ม URL รูปภาพ
addLayer=เพิ่มชั้น
addProperty=เพิ่มคุณสมบัติ
-address=Address
+address=ที่อยู่
addToExistingDrawing=เพิ่มเข้าสู่การวาดปัจจุบัน
addWaypoint=เพิ่มการวางตำแหน่ง
adjustTo=แก้ไขไป
@@ -37,7 +37,7 @@ allowRelativeUrl=Allow relative URL
alreadyConnected=ปุ่มเชื่อมต่อเรียบร้อยแล้ว
apply=นำไปใช้งาน
archiMate21=ArchiMate 2.1
-arrange=จัดการ
+arrange=จัดเรียง
arrow=ลูกศร
arrows=ลูกศร
asNew=เหมือนใหม่
@@ -54,7 +54,7 @@ attachments=สิ่งที่แนบมา
aws=AWS
aws3d=AWS สามมิติ
azure=สีฟ้า
-back=Back
+back=ย้อนกลับ
background=พื้นหลัง
backgroundColor=สีพื้นหลัง
backgroundImage=รูปภาพพื้นหลัง
@@ -66,7 +66,7 @@ blockquote=ปิดกั้นการอ้างอิง
blog=บล็อก
bold=ตัวหนา
bootstrap=ชุดคำสั่งพัฒนาเว็บไซต์
-border=Border
+border=ขอบ
borderColor=สีเส้นขอบ
borderWidth=ความกว้างเส้นขอบ
bottom=ด้านล่าง
@@ -159,7 +159,7 @@ crop=คร็อป
curved=รูปร่างโค้ง
custom=เลือกตามความต้องการ
current=ปัจจุบัน
-currentPage=Current page
+currentPage=หน้าปัจจุบัน
cut=ตัด
dashed=เส้นประ
decideLater=ตัดสินใจทีหลัง
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index 08ae22c8..4862a8cf 100644
--- a/src/main/webapp/service-worker.js
+++ b/src/main/webapp/service-worker.js
@@ -1,2 +1,2 @@
-if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let i=Promise.resolve();return r[e]||(i=new Promise((async i=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},i=(i,r)=>{Promise.all(i.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(i)};self.define=(i,a,c)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(a.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-f163abaa"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"e7e1935fd594220db5f349ac22f97c9d"},{url:"js/extensions.min.js",revision:"bd4cf4a4671aba5d4a64205ecd44250a"},{url:"js/stencils.min.js",revision:"4e7448cd52e7be7804236973ff1c37b0"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"6d4fee0a8111a8faf43063d25ceea2dc"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"b83ab40a56fdf706d7e633e7c30db289"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"87d5d01385c5d0f0c4c4f5d0f3532826"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"d82b9c14d7a069efabef719a8a5f3975"},{url:"js/viewer-static.min.js",revision:"e8a166988d431323cc0adc6950a5a2a5"},{url:"connect/jira/editor-1-3-3.html",revision:"fb7e91ab8890425d55f0122a01cc5b20"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"9020fb8d69a51d0162b8dfd938315259"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"c58a7c55a335f49d84bc4b1aac9885aa"},{url:"connect/jira/viewerPanel.js",revision:"32763e62c3a7498a8ee479fee8a55bb7"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"435d01373a459c134b05b6640c88c327"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"bd97b40b9dc692b1b696b188263799ff"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"159835ebab73810cc3f4fea9d904fab6"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"e88b96bfc81ee9278c804f67b5f96b04"},{url:"connect/new_common/cac.js",revision:"b1eb16ac1824f26824c748e8b8028e30"},{url:"connect/gdrive_common/gac.js",revision:"06a30c8936357c186240e9a18a1cd34c"},{url:"connect/onedrive_common/ac.js",revision:"994c3113d437180945c51e63e6a9b106"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"8527f67e207375c0654e19df4cb977cc"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c154ee66bab65cd0e476c1d64c64cb8d"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"689fa63fd3a384662b4199f6e4a5b5c1"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"259248f0077c6506703d5b4ecaff36dc"},{url:"connect/confluence/includeDiagram.html",revision:"9f0658477ece6384b7fb75eb769e54bc"},{url:"connect/confluence/macro-editor.js",revision:"9b1c5395a3c3ee9b7d41873f37fc7875"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_am.txt",revision:"319cda81e8094a9c7c5c71a575412878"},{url:"resources/dia_ar.txt",revision:"1e0e03a12d8271f3c76fc9706a3b05f2"},{url:"resources/dia_bg.txt",revision:"3fcebf558a853aa5525df756d14c911e"},{url:"resources/dia_bn.txt",revision:"112e4e442c4c5e106f56f20916df0991"},{url:"resources/dia_bs.txt",revision:"9aadd9262e43328c24c39e10fb9e07b8"},{url:"resources/dia_ca.txt",revision:"8e27654b5bccb25fd64bd5ca25dd457d"},{url:"resources/dia_cs.txt",revision:"ff23418a1fc72c3dc823c8a36ef045cb"},{url:"resources/dia_da.txt",revision:"2d595423e7cae28aa40c5fb446f6c607"},{url:"resources/dia_de.txt",revision:"67811638a22c88cadbeb70888ee70c97"},{url:"resources/dia_el.txt",revision:"b7874896dc88731e1a4539e2692e25eb"},{url:"resources/dia_eo.txt",revision:"ad3e60c28997ac53d81668657c270658"},{url:"resources/dia_es.txt",revision:"3e3936e8a46103a970caa6700b2cfee9"},{url:"resources/dia_et.txt",revision:"b5deb9abd85d94ac3e46277417f35759"},{url:"resources/dia_eu.txt",revision:"ccc06c8170ee20db44723b4614be4007"},{url:"resources/dia_fa.txt",revision:"3b20a335c50dbe4a47ea8af0128d0073"},{url:"resources/dia_fi.txt",revision:"806b7c2722ba3cacd4cd3c2df50628a6"},{url:"resources/dia_fil.txt",revision:"afa78012fb16c8047e6bb3b125e7e3f8"},{url:"resources/dia_fr.txt",revision:"2fcf905f2477fe678174f59fc4566386"},{url:"resources/dia_gl.txt",revision:"40c344f29c0c7549293726ea2a32e43e"},{url:"resources/dia_gu.txt",revision:"3455765ac051d47f0d6cef77e6275021"},{url:"resources/dia_he.txt",revision:"c4ca85c6f25ef6988c368c604c577571"},{url:"resources/dia_hi.txt",revision:"40daf9d70cafafcccad4bdb2c87f45ea"},{url:"resources/dia_hr.txt",revision:"3d5d2e46e04888fe98a675e7fff45b8c"},{url:"resources/dia_hu.txt",revision:"6675468a6d69212cc91ca93868040757"},{url:"resources/dia_id.txt",revision:"5f205ce5f703ac8ea5a698bd56c51f93"},{url:"resources/dia_it.txt",revision:"d68fe388d8eb7c515421b4d6aeec8e53"},{url:"resources/dia_ja.txt",revision:"ea686c92f9d42f908a4488a9d5814a1f"},{url:"resources/dia_kn.txt",revision:"78d66867fb8ffd7003f73bbd62334bb8"},{url:"resources/dia_ko.txt",revision:"6362bcb7a531ba3bde5e52d61b4336f8"},{url:"resources/dia_lt.txt",revision:"1b55f2713d7492ff703016ce0d90058b"},{url:"resources/dia_lv.txt",revision:"b79c9f33c8192f4b30926705706095ed"},{url:"resources/dia_ml.txt",revision:"ed7251d27f886385f1e5245fb58a1675"},{url:"resources/dia_mr.txt",revision:"811a4568743ea874ee2f72337c76b6cb"},{url:"resources/dia_ms.txt",revision:"1f4491f409b4863abf97682f1a141c18"},{url:"resources/dia_my.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_nl.txt",revision:"a74e5a89ad9b7aa6cdd18ed906376b11"},{url:"resources/dia_no.txt",revision:"9e4f174a779f84547eab04845b10959c"},{url:"resources/dia_pl.txt",revision:"892b36582564c1c5f0a58900ef06c0ff"},{url:"resources/dia_pt-br.txt",revision:"f259a247d5bc5ff41b12350311d2a1ba"},{url:"resources/dia_pt.txt",revision:"0d587498ac46c75f71ad3344e671efd4"},{url:"resources/dia_ro.txt",revision:"e4061120e72f2ce7cd2e42b0d804e2ef"},{url:"resources/dia_ru.txt",revision:"14dd08d0eeed63dd9d77fa4c2cdca1d9"},{url:"resources/dia_si.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_sk.txt",revision:"23fe3b51393d6215ce1d1cec197013cf"},{url:"resources/dia_sl.txt",revision:"06ef097b79b01e95d63229ca54d6121b"},{url:"resources/dia_sr.txt",revision:"a9b05944d2b1dc81b45dbf81ccbe43dc"},{url:"resources/dia_sv.txt",revision:"23cc1ef6bdd68e8ffa7a22be808dcfcb"},{url:"resources/dia_sw.txt",revision:"a10933a009fabc446dd1a73b7b3ee5d6"},{url:"resources/dia_ta.txt",revision:"161437618c5c5178ff4f37cf7a41cc43"},{url:"resources/dia_te.txt",revision:"7348773221051ac18ad4d7bc10a1b7f6"},{url:"resources/dia_th.txt",revision:"1bfd4e88904fba7ead063f2db6a75590"},{url:"resources/dia_tr.txt",revision:"6e5deb8e8e688794155ed347ce31128f"},{url:"resources/dia_uk.txt",revision:"8d6dad2deb405bc51eda95a24e25a07c"},{url:"resources/dia_vi.txt",revision:"4a1991dcd8eb6a5fbe29f340a3be529e"},{url:"resources/dia_zh-tw.txt",revision:"33a98fb737c582518c6c1a762b715f45"},{url:"resources/dia_zh.txt",revision:"df7266a624e3a967e9bcd09c94dfbba3"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"38b32aefe5d1456144ae00d2c67aab46"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
+if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let i=Promise.resolve();return r[e]||(i=new Promise((async i=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=i}else importScripts(e),i()}))),i.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},i=(i,r)=>{Promise.all(i.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(i)};self.define=(i,a,c)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(a.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=c(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-f163abaa"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"js/app.min.js",revision:"69b98d82c1dff6131c20bbca8b49512e"},{url:"js/extensions.min.js",revision:"63cd63b173d18730929fb832c396e2ce"},{url:"js/stencils.min.js",revision:"4e7448cd52e7be7804236973ff1c37b0"},{url:"js/shapes-14-6-5.min.js",revision:"2a45abd06dfe78e69135e9f87f9b78d3"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"6d4fee0a8111a8faf43063d25ceea2dc"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"b83ab40a56fdf706d7e633e7c30db289"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"87d5d01385c5d0f0c4c4f5d0f3532826"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"d82b9c14d7a069efabef719a8a5f3975"},{url:"js/viewer-static.min.js",revision:"67e27e7bc8a6d9f267b224520fd7ac68"},{url:"connect/jira/editor-1-3-3.html",revision:"fb7e91ab8890425d55f0122a01cc5b20"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"9020fb8d69a51d0162b8dfd938315259"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"c58a7c55a335f49d84bc4b1aac9885aa"},{url:"connect/jira/viewerPanel.js",revision:"32763e62c3a7498a8ee479fee8a55bb7"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"435d01373a459c134b05b6640c88c327"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"bd97b40b9dc692b1b696b188263799ff"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"159835ebab73810cc3f4fea9d904fab6"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"e88b96bfc81ee9278c804f67b5f96b04"},{url:"connect/new_common/cac.js",revision:"b1eb16ac1824f26824c748e8b8028e30"},{url:"connect/gdrive_common/gac.js",revision:"06a30c8936357c186240e9a18a1cd34c"},{url:"connect/onedrive_common/ac.js",revision:"994c3113d437180945c51e63e6a9b106"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"8527f67e207375c0654e19df4cb977cc"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c154ee66bab65cd0e476c1d64c64cb8d"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"689fa63fd3a384662b4199f6e4a5b5c1"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"259248f0077c6506703d5b4ecaff36dc"},{url:"connect/confluence/includeDiagram.html",revision:"9f0658477ece6384b7fb75eb769e54bc"},{url:"connect/confluence/macro-editor.js",revision:"9b1c5395a3c3ee9b7d41873f37fc7875"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_am.txt",revision:"319cda81e8094a9c7c5c71a575412878"},{url:"resources/dia_ar.txt",revision:"51b81c0e5be37b236fbad205bd705e28"},{url:"resources/dia_bg.txt",revision:"3fcebf558a853aa5525df756d14c911e"},{url:"resources/dia_bn.txt",revision:"112e4e442c4c5e106f56f20916df0991"},{url:"resources/dia_bs.txt",revision:"9aadd9262e43328c24c39e10fb9e07b8"},{url:"resources/dia_ca.txt",revision:"8e27654b5bccb25fd64bd5ca25dd457d"},{url:"resources/dia_cs.txt",revision:"ff23418a1fc72c3dc823c8a36ef045cb"},{url:"resources/dia_da.txt",revision:"2d595423e7cae28aa40c5fb446f6c607"},{url:"resources/dia_de.txt",revision:"67811638a22c88cadbeb70888ee70c97"},{url:"resources/dia_el.txt",revision:"b7874896dc88731e1a4539e2692e25eb"},{url:"resources/dia_eo.txt",revision:"ad3e60c28997ac53d81668657c270658"},{url:"resources/dia_es.txt",revision:"6573b9fc17d5790e3657f1951d6c1401"},{url:"resources/dia_et.txt",revision:"b5deb9abd85d94ac3e46277417f35759"},{url:"resources/dia_eu.txt",revision:"dbb688e823a11c189d1e303208367ee4"},{url:"resources/dia_fa.txt",revision:"3b20a335c50dbe4a47ea8af0128d0073"},{url:"resources/dia_fi.txt",revision:"806b7c2722ba3cacd4cd3c2df50628a6"},{url:"resources/dia_fil.txt",revision:"afa78012fb16c8047e6bb3b125e7e3f8"},{url:"resources/dia_fr.txt",revision:"2fcf905f2477fe678174f59fc4566386"},{url:"resources/dia_gl.txt",revision:"40c344f29c0c7549293726ea2a32e43e"},{url:"resources/dia_gu.txt",revision:"3455765ac051d47f0d6cef77e6275021"},{url:"resources/dia_he.txt",revision:"c4ca85c6f25ef6988c368c604c577571"},{url:"resources/dia_hi.txt",revision:"40daf9d70cafafcccad4bdb2c87f45ea"},{url:"resources/dia_hr.txt",revision:"3d5d2e46e04888fe98a675e7fff45b8c"},{url:"resources/dia_hu.txt",revision:"6675468a6d69212cc91ca93868040757"},{url:"resources/dia_id.txt",revision:"5f205ce5f703ac8ea5a698bd56c51f93"},{url:"resources/dia_it.txt",revision:"e81fb84f34d06de17610143daa6a3429"},{url:"resources/dia_ja.txt",revision:"ea686c92f9d42f908a4488a9d5814a1f"},{url:"resources/dia_kn.txt",revision:"78d66867fb8ffd7003f73bbd62334bb8"},{url:"resources/dia_ko.txt",revision:"6362bcb7a531ba3bde5e52d61b4336f8"},{url:"resources/dia_lt.txt",revision:"1b55f2713d7492ff703016ce0d90058b"},{url:"resources/dia_lv.txt",revision:"b79c9f33c8192f4b30926705706095ed"},{url:"resources/dia_ml.txt",revision:"ed7251d27f886385f1e5245fb58a1675"},{url:"resources/dia_mr.txt",revision:"811a4568743ea874ee2f72337c76b6cb"},{url:"resources/dia_ms.txt",revision:"1f4491f409b4863abf97682f1a141c18"},{url:"resources/dia_my.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_nl.txt",revision:"a74e5a89ad9b7aa6cdd18ed906376b11"},{url:"resources/dia_no.txt",revision:"9e4f174a779f84547eab04845b10959c"},{url:"resources/dia_pl.txt",revision:"892b36582564c1c5f0a58900ef06c0ff"},{url:"resources/dia_pt-br.txt",revision:"f259a247d5bc5ff41b12350311d2a1ba"},{url:"resources/dia_pt.txt",revision:"0d587498ac46c75f71ad3344e671efd4"},{url:"resources/dia_ro.txt",revision:"e4061120e72f2ce7cd2e42b0d804e2ef"},{url:"resources/dia_ru.txt",revision:"4eda1973968106bf8b8d2ddb6146b265"},{url:"resources/dia_si.txt",revision:"de246c361e16f1912e18183e3a4920f2"},{url:"resources/dia_sk.txt",revision:"23fe3b51393d6215ce1d1cec197013cf"},{url:"resources/dia_sl.txt",revision:"06ef097b79b01e95d63229ca54d6121b"},{url:"resources/dia_sr.txt",revision:"a9b05944d2b1dc81b45dbf81ccbe43dc"},{url:"resources/dia_sv.txt",revision:"23cc1ef6bdd68e8ffa7a22be808dcfcb"},{url:"resources/dia_sw.txt",revision:"a10933a009fabc446dd1a73b7b3ee5d6"},{url:"resources/dia_ta.txt",revision:"161437618c5c5178ff4f37cf7a41cc43"},{url:"resources/dia_te.txt",revision:"7348773221051ac18ad4d7bc10a1b7f6"},{url:"resources/dia_th.txt",revision:"d8fbd10e5331b2fb11401ebdd3c0a09b"},{url:"resources/dia_tr.txt",revision:"6e5deb8e8e688794155ed347ce31128f"},{url:"resources/dia_uk.txt",revision:"8d6dad2deb405bc51eda95a24e25a07c"},{url:"resources/dia_vi.txt",revision:"4a1991dcd8eb6a5fbe29f340a3be529e"},{url:"resources/dia_zh-tw.txt",revision:"33a98fb737c582518c6c1a762b715f45"},{url:"resources/dia_zh.txt",revision:"df7266a624e3a967e9bcd09c94dfbba3"},{url:"favicon.ico",revision:"fab2d88b37c72d83607527573de45281"},{url:"images/manifest.json",revision:"c6236bde53ed79aaaec60a1aca8ee2ef"},{url:"images/logo.png",revision:"89630b64b911ebe0daa3dfe442087cfa"},{url:"images/drawlogo.svg",revision:"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},{url:"images/drawlogo48.png",revision:"8b13428373aca67b895364d025f42417"},{url:"images/drawlogo-gray.svg",revision:"0aabacbc0873816e1e09e4736ae44c7d"},{url:"images/drawlogo-text-bottom.svg",revision:"f6c438823ab31f290940bd4feb8dd9c2"},{url:"images/logo-flat-small.png",revision:"4b178e59ff499d6dd1894fc498b59877"},{url:"images/apple-touch-icon.png",revision:"73da7989a23ce9a4be565ec65658a239"},{url:"images/favicon-16x16.png",revision:"1a79d5461a5d2bf21f6652e0ac20d6e5"},{url:"images/favicon-32x32.png",revision:"e3b92da2febe70bad5372f6f3474b034"},{url:"images/android-chrome-196x196.png",revision:"38b32aefe5d1456144ae00d2c67aab46"},{url:"images/android-chrome-512x512.png",revision:"959b5fac2453963ff6d60fb85e4b73fd"},{url:"images/delete.png",revision:"5f2350f2fd20f1a229637aed32ed8f29"},{url:"images/droptarget.png",revision:"bbf7f563fb6784de1ce96f329519b043"},{url:"images/help.png",revision:"9266c6c3915bd33c243d80037d37bf61"},{url:"images/download.png",revision:"35418dd7bd48d87502c71b578cc6c37f"},{url:"images/logo-flat.png",revision:"038070ab43aee6e54a791211859fc67b"},{url:"images/google-drive-logo.svg",revision:"5d9f2f5bbc7dcc252730a0072bb23059"},{url:"images/onedrive-logo.svg",revision:"3645b344ec0634c1290dd58d7dc87b97"},{url:"images/dropbox-logo.svg",revision:"e6be408c77cf9c82d41ac64fa854280a"},{url:"images/github-logo.svg",revision:"a1a999b69a275eac0cb918360ac05ae1"},{url:"images/gitlab-logo.svg",revision:"0faea8c818899e58533e153c44b10517"},{url:"images/trello-logo.svg",revision:"006fd0d7d70d7e95dc691674cb12e044"},{url:"images/osa_drive-harddisk.png",revision:"b954e1ae772087c5b4c6ae797e1f9649"},{url:"images/osa_database.png",revision:"c350d9d9b95f37b6cfe798b40ede5fb0"},{url:"images/google-drive-logo-white.svg",revision:"f329d8b1be7778515a85b93fc35d9f26"},{url:"images/dropbox-logo-white.svg",revision:"4ea8299ac3bc31a16f199ee3aec223bf"},{url:"images/onedrive-logo-white.svg",revision:"b3602fa0fc947009cff3f33a581cff4d"},{url:"images/github-logo-white.svg",revision:"537b1127b3ca0f95b45782d1304fb77a"},{url:"images/gitlab-logo-white.svg",revision:"5fede9ac2f394c716b8c23e3fddc3910"},{url:"images/trello-logo-white-orange.svg",revision:"e2a0a52ba3766682f138138d10a75eb5"},{url:"images/logo-confluence.png",revision:"ed1e55d44ae5eba8f999aba2c93e8331"},{url:"images/logo-jira.png",revision:"f8d460555a0d1f87cfd901e940666629"},{url:"images/clear.gif",revision:"db13c778e4382e0b55258d0f811d5d70"},{url:"images/spin.gif",revision:"487cbb40b9ced439aa1ad914e816d773"},{url:"images/checkmark.gif",revision:"ba764ce62f2bf952df5bbc2bb4d381c5"},{url:"images/hs.png",revision:"fefa1a03d92ebad25c88dca94a0b63db"},{url:"images/aui-wait.gif",revision:"5a474bcbd8d2f2826f03d10ea44bf60e"},{url:"mxgraph/css/common.css",revision:"b5b7280ec98671bb6c3847a36bc7ea12"},{url:"mxgraph/images/expanded.gif",revision:"2b67c2c035af1e9a5cc814f0d22074cf"},{url:"mxgraph/images/collapsed.gif",revision:"73cc826da002a3d740ca4ce6ec5c1f4a"},{url:"mxgraph/images/maximize.gif",revision:"5cd13d6925493ab51e876694cc1c2ec2"},{url:"mxgraph/images/minimize.gif",revision:"8957741b9b0f86af9438775f2aadbb54"},{url:"mxgraph/images/close.gif",revision:"8b84669812ac7382984fca35de8da48b"},{url:"mxgraph/images/resize.gif",revision:"a6477612b3567a34033f9cac6184eed3"},{url:"mxgraph/images/separator.gif",revision:"7819742ff106c97da7a801c2372bbbe5"},{url:"mxgraph/images/window.gif",revision:"fd9a21dd4181f98052a202a0a01f18ab"},{url:"mxgraph/images/window-title.gif",revision:"3fb1d6c43246cdf991a11dfe826dfe99"},{url:"mxgraph/images/button.gif",revision:"00759bdc3ad218fa739f584369541809"},{url:"mxgraph/images/point.gif",revision:"83a43717b284902442620f61bc4e9fa6"}],{ignoreURLParametersMatching:[/.*/]})}));
//# sourceMappingURL=service-worker.js.map
diff --git a/src/main/webapp/service-worker.js.map b/src/main/webapp/service-worker.js.map
index 057d3b17..ba15e71f 100644
--- a/src/main/webapp/service-worker.js.map
+++ b/src/main/webapp/service-worker.js.map
@@ -1 +1 @@
-{"version":3,"file":"service-worker.js","sources":["../../../../../../private/var/folders/cv/_wml09cx4cd5ryt_r7z2tjjm0000gn/T/4983e0fc9fd5797e18920be6a2ff27fe/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/local/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"e7e1935fd594220db5f349ac22f97c9d\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"bd4cf4a4671aba5d4a64205ecd44250a\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"4e7448cd52e7be7804236973ff1c37b0\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"2a45abd06dfe78e69135e9f87f9b78d3\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"6d4fee0a8111a8faf43063d25ceea2dc\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"b83ab40a56fdf706d7e633e7c30db289\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"87d5d01385c5d0f0c4c4f5d0f3532826\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"d82b9c14d7a069efabef719a8a5f3975\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"e8a166988d431323cc0adc6950a5a2a5\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"fb7e91ab8890425d55f0122a01cc5b20\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"9020fb8d69a51d0162b8dfd938315259\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"c58a7c55a335f49d84bc4b1aac9885aa\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"32763e62c3a7498a8ee479fee8a55bb7\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"435d01373a459c134b05b6640c88c327\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"bd97b40b9dc692b1b696b188263799ff\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"159835ebab73810cc3f4fea9d904fab6\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"e88b96bfc81ee9278c804f67b5f96b04\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"b1eb16ac1824f26824c748e8b8028e30\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"06a30c8936357c186240e9a18a1cd34c\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"994c3113d437180945c51e63e6a9b106\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"8527f67e207375c0654e19df4cb977cc\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c154ee66bab65cd0e476c1d64c64cb8d\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"689fa63fd3a384662b4199f6e4a5b5c1\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"259248f0077c6506703d5b4ecaff36dc\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"9f0658477ece6384b7fb75eb769e54bc\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"9b1c5395a3c3ee9b7d41873f37fc7875\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"319cda81e8094a9c7c5c71a575412878\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"1e0e03a12d8271f3c76fc9706a3b05f2\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"3fcebf558a853aa5525df756d14c911e\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"112e4e442c4c5e106f56f20916df0991\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"9aadd9262e43328c24c39e10fb9e07b8\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"8e27654b5bccb25fd64bd5ca25dd457d\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"ff23418a1fc72c3dc823c8a36ef045cb\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"2d595423e7cae28aa40c5fb446f6c607\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"67811638a22c88cadbeb70888ee70c97\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"b7874896dc88731e1a4539e2692e25eb\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"ad3e60c28997ac53d81668657c270658\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"3e3936e8a46103a970caa6700b2cfee9\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"b5deb9abd85d94ac3e46277417f35759\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"ccc06c8170ee20db44723b4614be4007\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"3b20a335c50dbe4a47ea8af0128d0073\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"806b7c2722ba3cacd4cd3c2df50628a6\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"afa78012fb16c8047e6bb3b125e7e3f8\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"2fcf905f2477fe678174f59fc4566386\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"40c344f29c0c7549293726ea2a32e43e\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"3455765ac051d47f0d6cef77e6275021\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"c4ca85c6f25ef6988c368c604c577571\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"40daf9d70cafafcccad4bdb2c87f45ea\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"3d5d2e46e04888fe98a675e7fff45b8c\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"6675468a6d69212cc91ca93868040757\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"5f205ce5f703ac8ea5a698bd56c51f93\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"d68fe388d8eb7c515421b4d6aeec8e53\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"ea686c92f9d42f908a4488a9d5814a1f\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"78d66867fb8ffd7003f73bbd62334bb8\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"6362bcb7a531ba3bde5e52d61b4336f8\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"1b55f2713d7492ff703016ce0d90058b\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"b79c9f33c8192f4b30926705706095ed\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"ed7251d27f886385f1e5245fb58a1675\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"811a4568743ea874ee2f72337c76b6cb\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"1f4491f409b4863abf97682f1a141c18\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"a74e5a89ad9b7aa6cdd18ed906376b11\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"9e4f174a779f84547eab04845b10959c\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"892b36582564c1c5f0a58900ef06c0ff\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"f259a247d5bc5ff41b12350311d2a1ba\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"0d587498ac46c75f71ad3344e671efd4\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"e4061120e72f2ce7cd2e42b0d804e2ef\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"14dd08d0eeed63dd9d77fa4c2cdca1d9\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"23fe3b51393d6215ce1d1cec197013cf\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"06ef097b79b01e95d63229ca54d6121b\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"a9b05944d2b1dc81b45dbf81ccbe43dc\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"23cc1ef6bdd68e8ffa7a22be808dcfcb\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"a10933a009fabc446dd1a73b7b3ee5d6\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"161437618c5c5178ff4f37cf7a41cc43\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"7348773221051ac18ad4d7bc10a1b7f6\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"1bfd4e88904fba7ead063f2db6a75590\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"6e5deb8e8e688794155ed347ce31128f\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"8d6dad2deb405bc51eda95a24e25a07c\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"4a1991dcd8eb6a5fbe29f340a3be529e\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"33a98fb737c582518c6c1a762b715f45\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"df7266a624e3a967e9bcd09c94dfbba3\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"38b32aefe5d1456144ae00d2c67aab46\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file
+{"version":3,"file":"service-worker.js","sources":["../../../../../../private/var/folders/cv/_wml09cx4cd5ryt_r7z2tjjm0000gn/T/dd9a2bc3b0ee87fa7ea17d8d3d558337/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/usr/local/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"69b98d82c1dff6131c20bbca8b49512e\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"63cd63b173d18730929fb832c396e2ce\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"4e7448cd52e7be7804236973ff1c37b0\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"2a45abd06dfe78e69135e9f87f9b78d3\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"6d4fee0a8111a8faf43063d25ceea2dc\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"b83ab40a56fdf706d7e633e7c30db289\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"87d5d01385c5d0f0c4c4f5d0f3532826\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"d82b9c14d7a069efabef719a8a5f3975\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"67e27e7bc8a6d9f267b224520fd7ac68\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"fb7e91ab8890425d55f0122a01cc5b20\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"9020fb8d69a51d0162b8dfd938315259\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"c58a7c55a335f49d84bc4b1aac9885aa\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"32763e62c3a7498a8ee479fee8a55bb7\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"435d01373a459c134b05b6640c88c327\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"bd97b40b9dc692b1b696b188263799ff\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"159835ebab73810cc3f4fea9d904fab6\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"e88b96bfc81ee9278c804f67b5f96b04\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"b1eb16ac1824f26824c748e8b8028e30\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"06a30c8936357c186240e9a18a1cd34c\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"994c3113d437180945c51e63e6a9b106\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"8527f67e207375c0654e19df4cb977cc\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c154ee66bab65cd0e476c1d64c64cb8d\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"689fa63fd3a384662b4199f6e4a5b5c1\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"259248f0077c6506703d5b4ecaff36dc\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"9f0658477ece6384b7fb75eb769e54bc\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"9b1c5395a3c3ee9b7d41873f37fc7875\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"319cda81e8094a9c7c5c71a575412878\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"51b81c0e5be37b236fbad205bd705e28\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"3fcebf558a853aa5525df756d14c911e\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"112e4e442c4c5e106f56f20916df0991\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"9aadd9262e43328c24c39e10fb9e07b8\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"8e27654b5bccb25fd64bd5ca25dd457d\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"ff23418a1fc72c3dc823c8a36ef045cb\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"2d595423e7cae28aa40c5fb446f6c607\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"67811638a22c88cadbeb70888ee70c97\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"b7874896dc88731e1a4539e2692e25eb\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"ad3e60c28997ac53d81668657c270658\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"6573b9fc17d5790e3657f1951d6c1401\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"b5deb9abd85d94ac3e46277417f35759\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"dbb688e823a11c189d1e303208367ee4\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"3b20a335c50dbe4a47ea8af0128d0073\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"806b7c2722ba3cacd4cd3c2df50628a6\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"afa78012fb16c8047e6bb3b125e7e3f8\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"2fcf905f2477fe678174f59fc4566386\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"40c344f29c0c7549293726ea2a32e43e\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"3455765ac051d47f0d6cef77e6275021\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"c4ca85c6f25ef6988c368c604c577571\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"40daf9d70cafafcccad4bdb2c87f45ea\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"3d5d2e46e04888fe98a675e7fff45b8c\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"6675468a6d69212cc91ca93868040757\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"5f205ce5f703ac8ea5a698bd56c51f93\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"e81fb84f34d06de17610143daa6a3429\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"ea686c92f9d42f908a4488a9d5814a1f\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"78d66867fb8ffd7003f73bbd62334bb8\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"6362bcb7a531ba3bde5e52d61b4336f8\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"1b55f2713d7492ff703016ce0d90058b\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"b79c9f33c8192f4b30926705706095ed\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"ed7251d27f886385f1e5245fb58a1675\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"811a4568743ea874ee2f72337c76b6cb\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"1f4491f409b4863abf97682f1a141c18\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"a74e5a89ad9b7aa6cdd18ed906376b11\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"9e4f174a779f84547eab04845b10959c\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"892b36582564c1c5f0a58900ef06c0ff\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"f259a247d5bc5ff41b12350311d2a1ba\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"0d587498ac46c75f71ad3344e671efd4\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"e4061120e72f2ce7cd2e42b0d804e2ef\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"4eda1973968106bf8b8d2ddb6146b265\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"de246c361e16f1912e18183e3a4920f2\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"23fe3b51393d6215ce1d1cec197013cf\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"06ef097b79b01e95d63229ca54d6121b\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"a9b05944d2b1dc81b45dbf81ccbe43dc\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"23cc1ef6bdd68e8ffa7a22be808dcfcb\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"a10933a009fabc446dd1a73b7b3ee5d6\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"161437618c5c5178ff4f37cf7a41cc43\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"7348773221051ac18ad4d7bc10a1b7f6\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"d8fbd10e5331b2fb11401ebdd3c0a09b\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"6e5deb8e8e688794155ed347ce31128f\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"8d6dad2deb405bc51eda95a24e25a07c\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"4a1991dcd8eb6a5fbe29f340a3be529e\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"33a98fb737c582518c6c1a762b715f45\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"df7266a624e3a967e9bcd09c94dfbba3\"\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"fab2d88b37c72d83607527573de45281\"\n },\n {\n \"url\": \"images/manifest.json\",\n \"revision\": \"c6236bde53ed79aaaec60a1aca8ee2ef\"\n },\n {\n \"url\": \"images/logo.png\",\n \"revision\": \"89630b64b911ebe0daa3dfe442087cfa\"\n },\n {\n \"url\": \"images/drawlogo.svg\",\n \"revision\": \"4bf4d14ebcf072d8bd4c5a1c89e88fc6\"\n },\n {\n \"url\": \"images/drawlogo48.png\",\n \"revision\": \"8b13428373aca67b895364d025f42417\"\n },\n {\n \"url\": \"images/drawlogo-gray.svg\",\n \"revision\": \"0aabacbc0873816e1e09e4736ae44c7d\"\n },\n {\n \"url\": \"images/drawlogo-text-bottom.svg\",\n \"revision\": \"f6c438823ab31f290940bd4feb8dd9c2\"\n },\n {\n \"url\": \"images/logo-flat-small.png\",\n \"revision\": \"4b178e59ff499d6dd1894fc498b59877\"\n },\n {\n \"url\": \"images/apple-touch-icon.png\",\n \"revision\": \"73da7989a23ce9a4be565ec65658a239\"\n },\n {\n \"url\": \"images/favicon-16x16.png\",\n \"revision\": \"1a79d5461a5d2bf21f6652e0ac20d6e5\"\n },\n {\n \"url\": \"images/favicon-32x32.png\",\n \"revision\": \"e3b92da2febe70bad5372f6f3474b034\"\n },\n {\n \"url\": \"images/android-chrome-196x196.png\",\n \"revision\": \"38b32aefe5d1456144ae00d2c67aab46\"\n },\n {\n \"url\": \"images/android-chrome-512x512.png\",\n \"revision\": \"959b5fac2453963ff6d60fb85e4b73fd\"\n },\n {\n \"url\": \"images/delete.png\",\n \"revision\": \"5f2350f2fd20f1a229637aed32ed8f29\"\n },\n {\n \"url\": \"images/droptarget.png\",\n \"revision\": \"bbf7f563fb6784de1ce96f329519b043\"\n },\n {\n \"url\": \"images/help.png\",\n \"revision\": \"9266c6c3915bd33c243d80037d37bf61\"\n },\n {\n \"url\": \"images/download.png\",\n \"revision\": \"35418dd7bd48d87502c71b578cc6c37f\"\n },\n {\n \"url\": \"images/logo-flat.png\",\n \"revision\": \"038070ab43aee6e54a791211859fc67b\"\n },\n {\n \"url\": \"images/google-drive-logo.svg\",\n \"revision\": \"5d9f2f5bbc7dcc252730a0072bb23059\"\n },\n {\n \"url\": \"images/onedrive-logo.svg\",\n \"revision\": \"3645b344ec0634c1290dd58d7dc87b97\"\n },\n {\n \"url\": \"images/dropbox-logo.svg\",\n \"revision\": \"e6be408c77cf9c82d41ac64fa854280a\"\n },\n {\n \"url\": \"images/github-logo.svg\",\n \"revision\": \"a1a999b69a275eac0cb918360ac05ae1\"\n },\n {\n \"url\": \"images/gitlab-logo.svg\",\n \"revision\": \"0faea8c818899e58533e153c44b10517\"\n },\n {\n \"url\": \"images/trello-logo.svg\",\n \"revision\": \"006fd0d7d70d7e95dc691674cb12e044\"\n },\n {\n \"url\": \"images/osa_drive-harddisk.png\",\n \"revision\": \"b954e1ae772087c5b4c6ae797e1f9649\"\n },\n {\n \"url\": \"images/osa_database.png\",\n \"revision\": \"c350d9d9b95f37b6cfe798b40ede5fb0\"\n },\n {\n \"url\": \"images/google-drive-logo-white.svg\",\n \"revision\": \"f329d8b1be7778515a85b93fc35d9f26\"\n },\n {\n \"url\": \"images/dropbox-logo-white.svg\",\n \"revision\": \"4ea8299ac3bc31a16f199ee3aec223bf\"\n },\n {\n \"url\": \"images/onedrive-logo-white.svg\",\n \"revision\": \"b3602fa0fc947009cff3f33a581cff4d\"\n },\n {\n \"url\": \"images/github-logo-white.svg\",\n \"revision\": \"537b1127b3ca0f95b45782d1304fb77a\"\n },\n {\n \"url\": \"images/gitlab-logo-white.svg\",\n \"revision\": \"5fede9ac2f394c716b8c23e3fddc3910\"\n },\n {\n \"url\": \"images/trello-logo-white-orange.svg\",\n \"revision\": \"e2a0a52ba3766682f138138d10a75eb5\"\n },\n {\n \"url\": \"images/logo-confluence.png\",\n \"revision\": \"ed1e55d44ae5eba8f999aba2c93e8331\"\n },\n {\n \"url\": \"images/logo-jira.png\",\n \"revision\": \"f8d460555a0d1f87cfd901e940666629\"\n },\n {\n \"url\": \"images/clear.gif\",\n \"revision\": \"db13c778e4382e0b55258d0f811d5d70\"\n },\n {\n \"url\": \"images/spin.gif\",\n \"revision\": \"487cbb40b9ced439aa1ad914e816d773\"\n },\n {\n \"url\": \"images/checkmark.gif\",\n \"revision\": \"ba764ce62f2bf952df5bbc2bb4d381c5\"\n },\n {\n \"url\": \"images/hs.png\",\n \"revision\": \"fefa1a03d92ebad25c88dca94a0b63db\"\n },\n {\n \"url\": \"images/aui-wait.gif\",\n \"revision\": \"5a474bcbd8d2f2826f03d10ea44bf60e\"\n },\n {\n \"url\": \"mxgraph/css/common.css\",\n \"revision\": \"b5b7280ec98671bb6c3847a36bc7ea12\"\n },\n {\n \"url\": \"mxgraph/images/expanded.gif\",\n \"revision\": \"2b67c2c035af1e9a5cc814f0d22074cf\"\n },\n {\n \"url\": \"mxgraph/images/collapsed.gif\",\n \"revision\": \"73cc826da002a3d740ca4ce6ec5c1f4a\"\n },\n {\n \"url\": \"mxgraph/images/maximize.gif\",\n \"revision\": \"5cd13d6925493ab51e876694cc1c2ec2\"\n },\n {\n \"url\": \"mxgraph/images/minimize.gif\",\n \"revision\": \"8957741b9b0f86af9438775f2aadbb54\"\n },\n {\n \"url\": \"mxgraph/images/close.gif\",\n \"revision\": \"8b84669812ac7382984fca35de8da48b\"\n },\n {\n \"url\": \"mxgraph/images/resize.gif\",\n \"revision\": \"a6477612b3567a34033f9cac6184eed3\"\n },\n {\n \"url\": \"mxgraph/images/separator.gif\",\n \"revision\": \"7819742ff106c97da7a801c2372bbbe5\"\n },\n {\n \"url\": \"mxgraph/images/window.gif\",\n \"revision\": \"fd9a21dd4181f98052a202a0a01f18ab\"\n },\n {\n \"url\": \"mxgraph/images/window-title.gif\",\n \"revision\": \"3fb1d6c43246cdf991a11dfe826dfe99\"\n },\n {\n \"url\": \"mxgraph/images/button.gif\",\n \"revision\": \"00759bdc3ad218fa739f584369541809\"\n },\n {\n \"url\": \"mxgraph/images/point.gif\",\n \"revision\": \"83a43717b284902442620f61bc4e9fa6\"\n }\n], {\n \"ignoreURLParametersMatching\": [/.*/]\n});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAmBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gCACK,oCAEd,KACS,8BACK,oCAEd,KACS,mCACK,oCAEd,KACS,4BACK,oCAEd,KACS,sBACK,oCAEd,KACS,qBACK,oCAEd,KACS,kCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,sCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,mCACK,oCAEd,KACS,0CACK,oCAEd,KACS,gDACK,oCAEd,KACS,oDACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kDACK,oCAEd,KACS,6CACK,oCAEd,KACS,kCACK,oCAEd,KACS,qCACK,oCAEd,KACS,kCACK,oCAEd,KACS,oDACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,6CACK,oCAEd,KACS,wCACK,oCAEd,KACS,iDACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,kDACK,oCAEd,KACS,8CACK,oCAEd,KACS,2BACK,oCAEd,KACS,8CACK,oCAEd,KACS,qDACK,oCAEd,KACS,sDACK,oCAEd,KACS,+DACK,oCAEd,KACS,2EACK,oCAEd,KACS,wEACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,iCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,mCACK,oCAEd,KACS,gCACK,oCAEd,KACS,uBACK,oCAEd,KACS,gCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,iCACK,oCAEd,KACS,oCACK,oCAEd,KACS,2CACK,oCAEd,KACS,sCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,oCACK,oCAEd,KACS,6CACK,oCAEd,KACS,6CACK,oCAEd,KACS,6BACK,oCAEd,KACS,iCACK,oCAEd,KACS,2BACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,oCACK,oCAEd,KACS,mCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,kCACK,oCAEd,KACS,yCACK,oCAEd,KACS,mCACK,oCAEd,KACS,8CACK,oCAEd,KACS,yCACK,oCAEd,KACS,0CACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,+CACK,oCAEd,KACS,sCACK,oCAEd,KACS,gCACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,+BACK,oCAEd,KACS,kCACK,oCAEd,KACS,uCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,wCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,qCACK,oCAEd,KACS,oCACK,qCAEb,6BAC8B,CAAC"} \ No newline at end of file